Меню

Искусственный интеллект 

Генерация картинок

С развитием ИИ стало набирать популярность такое направление как ИИ-арт. И сегодня мы попробуем, внимание, подключить, а не создать (хотя создавать мы тоже будем, только немного позже) такую модель в свой проект. 

Модель я брал из сайта https://huggingface.co/

Там есть множество моделей, как для генерации текста, так и для генерации картинок, ну и для многих других целей. 

(Эта модель находится в рубрике первое подключение к API) 

Ладно, погнали кодить, а забыл сказать, мы будем писать telegram бота (хотел в MAX, но он пока глючит, говорит не удалось создать, попробуйте позже):


import os

from dotenv import load_dotenv

from telegram import Update

from telegram.ext import Application, CommandHandler, MessageHandler, filters, ContextTypes

from huggingface_hub import InferenceClient

from PIL import Image

import io


# Загружаем переменные окружения

load_dotenv()


# Инициализация клиента

client = InferenceClient(

    provider="auto",

    api_key="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" # Указываем ключ напрямую

)


async def start_command(update: Update, context: ContextTypes.DEFAULT_TYPE):

    await update.message.reply_text(

        "Привет! Я бот для генерации изображений. Просто отправь мне текстовое описание того, что хочешь увидеть!"

    )


async def help_command(update: Update, context: ContextTypes.DEFAULT_TYPE):

    await update.message.reply_text(

        "Отправь мне текст, и я сгенерирую изображение на основе твоего описания."

    )


async def generate_image(update: Update, context: ContextTypes.DEFAULT_TYPE):

    prompt = update.message.text


    try:

        # Генерируем изображение

        image = client.text_to_image(

            prompt=prompt,

            model="black-forest-labs/FLUX.1-schnell",

            width=512,

            height=512

        )


        # Конвертируем изображение в bytes

        bio = io.BytesIO()

        image.save(bio, format="PNG")

        bio.seek(0)


        # Отправляем изображение пользователю

        await update.message.reply_photo(photo=bio)


    except Exception as e:

        await update.message.reply_text(f"Произошла ошибка: {str(e)}")


def main():

    # Создаем приложение бота

    app = Application.builder().token("Ваш токен").build()


    # Добавляем обработчики команд

    app.add_handler(CommandHandler("start", start_command))

    app.add_handler(CommandHandler("help", help_command))

    app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, generate_image))


    # Запускаем бота

    print("Бот запущен!")

    app.run_polling()


if __name__ == "__main__":

    main()



Настройки файлов cookies
X
Этот сайт использует файлы cookie, чтобы упростить для вас просмотр сайта.
Вы можете принять их все или выбрать типы файлов cookies, которые вы готовы разрешить.
Настройки конфиденциальности
Выберите, какие файлы cookies вы хотите разрешить при просмотре этого сайта. Обратите внимание, что некоторые файлы cookies нельзя отключить, так как без них сайт не будет работать.
Важные
Для предотвращения спама этот сайт использует Google Recaptcha в своих контактных формах.

Этот сайт также может использовать файлы cookies для электронной коммерции и платежных систем, которые необходимы для правильной работы сайта.
Службы Google
Этот сайт использует файлы cookie Google для доступа к таким данным, как страницы, которые вы посещаете, и ваш IP-адрес. Сервисы Google на этом сайте могут включать:

- Карты Google
Основанные на данных
Этот сайт может использовать файлы cookie для записи поведения посетителей, отслеживания рекламных конверсий и создания аудиторий, в том числе из:

- Google Analytics
- Мониторинг конверсий Google Ads
- Facebook (Meta Пиксель)