- Регистрация
- 24.12.2024
- Сообщения
- 10
- Благодарностей
- 28
- Баллы
- 3
AI Content Alchemist: ZennoPoster x Gemini Magic
Концепция Кейса
"AI Content Alchemist" — это решение, которое позволяет ZennoPoster, как мощному инструменту автоматизации, взаимодействовать с API искусственного интеллекта Gemini для создания визуального контента. Основная идея заключается в автоматической генерации изображений по текстовым запросам (промптам), что открывает безграничные возможности для создания уникального визуального ряда без ручного дизайна.
Преимущества Кейса:
1. Подготовка Среды и Файлов
1.1. Установка Python и Библиотек:
Убедитесь, что на вашем компьютере установлен Python (рекомендуется версия 3.9+).
Установите необходимые Python-библиотеки с помощью pip:
pip install requests transliterate
1.2. Создание файла api_keys.txt:
Создайте текстовый файл с названием api_keys.txt в той же директории, где будет находиться ваш Python-скрипт. В этот файл вставьте ваши API-ключи Gemini, каждый ключ на новой строке. Это позволит скрипту автоматически ротировать ключи в случае превышения лимитов запросов.
Пример api_keys.txt:
YOUR_API_KEY_1
YOUR_API_KEY_2
YOUR_API_KEY_3
example api_keys.txt file
1.3. Создание файла drawing_details.txt:
Создайте текстовый файл с названием drawing_details.txt в той же директории. Этот файл будет содержать текстовое описание (промпт) для изображения, которое нужно сгенерировать. ZennoPoster может динамически изменять содержимое этого файла перед каждым запуском скрипта.
Пример drawing_details.txt:
Футуристический космический корабль, летящий сквозь туманность, реалистичный, яркая цветовая гамма.
example drawing_details.txt file
1.4. Python-скрипт generate_image.py:
Сохраните предоставленный ниже Python-код в файл с названием generate_image.py в той же директории, что и другие файлы.
2. Описание Python-скрипта
Этот Python-скрипт отвечает за взаимодействие с Gemini API. Он выполняет следующие функции:
3.1. Запуск Проекта и Источник Промптов:
Ваш ZennoPoster проект может получать промпты из разных источников:
3.2. Запись Промпта в drawing_details.txt:
Перед каждым запуском Python-скрипта, ZennoPoster должен записать текущий промпт (из выбранного источника) в файл drawing_details.txt, перезаписывая его содержимое. Для этого используйте действие ZennoPoster "Файл -> Записать в файл".
3.3. Выполнение Python-скрипта:
Добавьте действие "Выполнить программу" (Execute Program) в ваш ZennoPoster проект.
После успешного выполнения Python-скрипта, ZennoPoster может:
Настройте обработку ошибок в ZennoPoster:
Этот Python-скрипт представляет собой мощный инструмент для автоматической генерации фотореалистичных изображений с использованием экспериментальной модели Gemini 2.0 Flash от Google. Он разработан таким образом, чтобы быть надежным и удобным, позволяя вам создавать изображения на основе списка заданных тем, при этом автоматически управляя API-ключами и обработкой ошибок.
Основные функции и возможности:
Представьте, что у вас есть файл drawing_details.txt со списком тем, например:
Закат над океаном с парусником
Городской пейзаж в стиле киберпанк
Лесной водопад осенью
При запуске скрипт:
Концепция Кейса
"AI Content Alchemist" — это решение, которое позволяет ZennoPoster, как мощному инструменту автоматизации, взаимодействовать с API искусственного интеллекта Gemini для создания визуального контента. Основная идея заключается в автоматической генерации изображений по текстовым запросам (промптам), что открывает безграничные возможности для создания уникального визуального ряда без ручного дизайна.
Преимущества Кейса:
- Автоматизация: Полностью автоматизирует процесс создания изображений на основе текстовых описаний.
- Масштабируемость: Возможность генерировать сотни или тысячи уникальных изображений за короткий промежуток времени.
- Уникальность: Каждое изображение генерируется искусственным интеллектом, обеспечивая оригинальность контента.
- Экономия времени и ресурсов: Уменьшает потребность в дизайнерах и времени на ручное создание графики.
- Гибкость: Легко адаптируется под различные потребности, от создания иллюстраций для блогов до генерации рекламных креативов.
- ZennoPoster: Основной инструмент автоматизации, который будет управлять процессом, запускать Python-скрипт, считывать промпты и обрабатывать сгенерированные изображения.
- Python-скрипт: Код, который взаимодействует с Gemini API для отправки запросов на генерацию изображений и сохранения полученных результатов.
- Gemini API: Сервис Google, обеспечивающий функционал генерации изображений на основе искусственного интеллекта.
- Файлы конфигурации: Текстовые файлы для хранения API-ключей и промптов для генерации.
1. Подготовка Среды и Файлов
1.1. Установка Python и Библиотек:
Убедитесь, что на вашем компьютере установлен Python (рекомендуется версия 3.9+).
Установите необходимые Python-библиотеки с помощью pip:
pip install requests transliterate
1.2. Создание файла api_keys.txt:
Создайте текстовый файл с названием api_keys.txt в той же директории, где будет находиться ваш Python-скрипт. В этот файл вставьте ваши API-ключи Gemini, каждый ключ на новой строке. Это позволит скрипту автоматически ротировать ключи в случае превышения лимитов запросов.
Пример api_keys.txt:
YOUR_API_KEY_1
YOUR_API_KEY_2
YOUR_API_KEY_3
example api_keys.txt file
1.3. Создание файла drawing_details.txt:
Создайте текстовый файл с названием drawing_details.txt в той же директории. Этот файл будет содержать текстовое описание (промпт) для изображения, которое нужно сгенерировать. ZennoPoster может динамически изменять содержимое этого файла перед каждым запуском скрипта.
Пример drawing_details.txt:
Футуристический космический корабль, летящий сквозь туманность, реалистичный, яркая цветовая гамма.
example drawing_details.txt file
1.4. Python-скрипт generate_image.py:
Сохраните предоставленный ниже Python-код в файл с названием generate_image.py в той же директории, что и другие файлы.
2. Описание Python-скрипта
Этот Python-скрипт отвечает за взаимодействие с Gemini API. Он выполняет следующие функции:
- Загрузка API-ключей: Считывает API-ключи из файла api_keys.txt.
- Ротация ключей: Автоматически переключается на следующий ключ в случае получения ошибки "Too Many Requests".
- Считывание промпта: Берет описание для генерации изображения из файла drawing_details.txt.
- Формирование запроса к Gemini API: Создает JSON-запрос с полным промптом и параметрами генерации.
- Отправка запроса и обработка ответа: Отправляет запрос к Gemini API, проверяет статус ответа и декодирует полученные данные изображения.
- Сохранение изображения: Сохраняет сгенерированное изображение в формате PNG в папку generated_images, используя транслитерированный промпт и временную метку для уникальности имени файла.
- Обработка ошибок: Включает механизмы обработки ошибок HTTP-запросов, декодирования JSON и ошибок сохранения файлов.
3.1. Запуск Проекта и Источник Промптов:
Ваш ZennoPoster проект может получать промпты из разных источников:
- Из текстового файла (каждая строка — новый промпт).
- Из базы данных.
- Из результатов парсинга веб-сайтов.
- Из другого запроса к LLM через ZennoPoster, который генерирует идеи для изображений.
3.2. Запись Промпта в drawing_details.txt:
Перед каждым запуском Python-скрипта, ZennoPoster должен записать текущий промпт (из выбранного источника) в файл drawing_details.txt, перезаписывая его содержимое. Для этого используйте действие ZennoPoster "Файл -> Записать в файл".
3.3. Выполнение Python-скрипта:
Добавьте действие "Выполнить программу" (Execute Program) в ваш ZennoPoster проект.
- Путь к программе: Укажите полный путь к интерпретатору Python (например, C:\Python39\python.exe).
- Параметры командной строки: Укажите полный путь к вашему скрипту generate_image.py.
Например: C:\Path\To\Your\Script\generate_image.py
ZennoPoster Execute Program action
После успешного выполнения Python-скрипта, ZennoPoster может:
- Переместить/Переименовать: Переместить только что сгенерированное изображение из папки generated_images в другую директорию или переименовать его в соответствии с вашими потребностями.
- Загрузить на ресурс: Загрузить изображение на ваш веб-сайт, в социальные сети (Facebook, Instagram, Pinterest) или в облачное хранилище.
- Добавить в базу данных: Сохранить путь к файлу или даже бинарные данные изображения в базу данных.
- Использовать для других целей: Например, вставить в HTML-шаблон для создания целевой страницы.
Настройте обработку ошибок в ZennoPoster:
- Проверка файла: После запуска Python-скрипта, ZennoPoster может проверить, появился ли новый файл изображения в папке generated_images.
- Выходной код: Если скрипт выведет ошибку в стандартный поток ошибок, ZennoPoster может это зафиксировать.
- Логирование: Настройте логирование в ZennoPoster для записи всех успехов и неудач генерации.
Этот Python-скрипт представляет собой мощный инструмент для автоматической генерации фотореалистичных изображений с использованием экспериментальной модели Gemini 2.0 Flash от Google. Он разработан таким образом, чтобы быть надежным и удобным, позволяя вам создавать изображения на основе списка заданных тем, при этом автоматически управляя API-ключами и обработкой ошибок.
Основные функции и возможности:
- Настройки и Константы:
- API_URL: Адрес API для взаимодействия с моделью Gemini.
- API_KEYS_FILE: Имя файла, где хранятся ваши API-ключи (каждый ключ на новой строке). Это обеспечивает безопасное и гибкое управление ключами.
- MODEL_ID: Идентификатор используемой модели Gemini.
- OUTPUT_DIR: Название папки, куда будут сохраняться сгенерированные изображения. Скрипт автоматически создает эту папку, если ее нет.
- DETAILS_FILE: Файл, содержащий список тем или описаний для генерации изображений, по одному на каждой строке.
- BASE_PROMPT: Основная часть промпта (запроса), которая будет предшествовать каждому описанию из файла DETAILS_FILE, например, "Создай фотореалистичное изображение на тему: ".
- MAX_RETRIES: Максимальное количество попыток повторной отправки запроса в случае временных ошибок, особенно при ошибке "Too Many Requests".
- Управление API-ключами:
- Загрузка ключей (загрузить_api_ключи): Функция читает API-ключи из указанного текстового файла. Каждый ключ должен находиться на новой строке. Это позволяет легко добавлять или удалять ключи без изменения кода.
- Ротация ключей (получить_текущий_ключ, текущий_индекс_ключа): Скрипт поддерживает ротацию API-ключей. Если один ключ достигает лимита запросов (ошибка 429 - Too Many Requests), скрипт автоматически переключается на следующий ключ из списка. Это значительно повышает устойчивость работы скрипта к ограничениям API.
- Обработка входных данных (тем для рисования):
- Чтение деталей (read_drawing_details): Эта функция считывает все строки из файла DETAILS_FILE, каждая из которых является отдельной темой или промптом для генерации изображения.
- Удаление использованных промптов (delete_line_from_file): После успешной генерации изображения по определенной теме, эта строка автоматически удаляется из файла DETAILS_FILE. Это гарантирует, что каждое описание будет обработано только один раз и предотвращает повторную генерацию одинаковых изображений.
- Безопасность и удобство имен файлов:
- Очистка имени файла (sanitize_filename): Функция преобразует текст промпта в безопасное для использования имя файла. Она транслитерирует кириллицу в латиницу, заменяет пробелы на подчеркивания и удаляет недопустимые символы, ограничивая длину имени файла для лучшей совместимости.
- Основная логика генерации изображений (generate_image_with_flash_2_0):
- Эта центральная функция отправляет запрос к API Gemini для генерации изображения.
- Формирование полного промпта: Объединяет BASE_PROMPT с деталями из файла DETAILS_FILE.
- Настройка запроса: Устанавливает необходимые заголовки и формирует JSON-тело запроса, включая generationConfig с параметрами temperature, topP, topK, которые влияют на креативность и качество генерации. Важно, что responseModalities установлен на ["TEXT", "IMAGE"], чтобы получить как текстовый ответ, так и само изображение.
- Обработка ответа:
- Парсит JSON-ответ от API.
- Извлекает закодированные в Base64 данные изображения (inlineData).
- Декодирует данные и сохраняет изображение в формате PNG в папку OUTPUT_DIR с уникальным именем, включающим очищенное описание и временную метку.
- Устойчивость к ошибкам:
- Включает механизм try-except для перехвата различных ошибок HTTP-запросов и проблем с декодированием JSON.
- Обработка ошибки 429 (Too Many Requests): Если API возвращает ошибку 429, скрипт автоматически пытается повторить запрос, используя следующий API-ключ из списка, до MAX_RETRIES раз. Это делает процесс генерации более устойчивым к временным ограничениям API.
- Точка входа (if __name__ == "__main__"
- Это главный блок, который выполняется при запуске скрипта.
- Загружает API-ключи и темы для рисования.
- Если ключи и темы доступны, он берет первую тему из списка, генерирует изображение, а затем удаляет эту тему из файла, чтобы она не обрабатывалась повторно.
- Предоставляет информативные сообщения о ходе выполнения и возможных ошибках.
Представьте, что у вас есть файл drawing_details.txt со списком тем, например:
Закат над океаном с парусником
Городской пейзаж в стиле киберпанк
Лесной водопад осенью
При запуске скрипт:
- Прочитает ваши API-ключи.
- Возьмет "Закат над океаном с парусником".
- Сформирует полный промпт, например, "Создай фотореалистичное изображение на тему: Закат над океаном с парусником".
- Отправит запрос к Gemini.
- Получит изображение и сохранит его как zakant_nad_okeanom_s_parusnikom_YYYYMMDD_HHMMSS.png в папке generated_images.
- Удалит "Закат над океаном с парусником" из файла drawing_details.txt.
- При следующем запуске скрипт возьмет следующую строку ("Городской пейзаж в стиле киберпанк") и повторит процесс.
Вложения
-
15 КБ Просмотры: 6
Последнее редактирование модератором: