Генератор мемов на Python: ИИ и ChatGPT

Программа на Python, описанная ниже, генерирует мемы, используя различные сервисы и API, включая ChatGPT. Она позволяет загрузить изображение и автоматически сгенерировать для него подписи.

Подготовка

Убедитесь, что Python установлен. Скачайте редактор кода (например, Visual Studio Code). Создайте проект и добавьте основной файл. Рекомендуется использовать виртуальное окружение. Создайте его командой python -m venv .venv (или python3 -m venv .venv). Активируйте его командой ..venvScriptsactivate (Windows) или source .venv/bin/activate (Linux/macOS).

Установка библиотек

Установите библиотеку Pillow для работы с изображениями: pip install pillow.

Обработка изображений и добавление текста

Программа состоит из этапов: открытие и обработка изображения, генерация текста, размещение текста на изображении и сохранение результата.

Импортируйте необходимые классы. Загрузите изображение (сохраните шаблон в проекте). Для рисования текста используйте класс ImageDraw. Пример (на английском):

from PIL import Image, ImageDraw, ImageFont

img = Image.open("meme_template.jpg")
draw = ImageDraw.Draw(img)

text_top = "Top text"
text_bottom = "Bottom text"

draw.text((x_top, y_top), text_top, fill="black")
draw.text((x_bottom, y_bottom), text_bottom, fill="black")

img.save("meme.jpg")

Замените x_top, y_top, x_bottom, y_bottom на нужные координаты.

Для кириллицы используйте шрифт с её поддержкой:

from PIL import Image, ImageDraw, ImageFont

font = ImageFont.truetype("arial.ttf", size=30) # Замените "arial.ttf" на путь к вашему шрифту
# ... остальной код ...
draw.text((x_top, y_top), text_top, font=font, fill="black")
draw.text((x_bottom, y_bottom), text_bottom, font=font, fill="black")

Интеграция с ChatGPT

Для генерации текста используйте ChatGPT. Зарегистрируйтесь на OpenAI и получите API ключ. Установите библиотеку openai: pip install openai.

В коде укажите API ключ и создайте функцию:

import openai

openai.api_key = "YOUR_API_KEY"

def generate_meme_text(prompt):
    response = openai.Completion.create(
        engine="text-davinci-003",  # или другая подходящая модель
        prompt=prompt,
        max_tokens=60,
        n=1,
        stop=None,
        temperature=0.7,
    )
    text = response.choices[0].text.strip()
    return text

# Пример использования:
prompt = "Generate two lines of meme text: line 1, line 2"
top_text, bottom_text = generate_meme_text(prompt).split(',')

Подберите эффективный prompt для генерации текста для верхней и нижней частей мема. Разделите результат на две части.

Создание мемов

Используя сгенерированный ChatGPT текст и функцию обработки изображений, создайте автоматическую генерацию мемов. Изменяйте картинки, координаты текста и параметры запроса к ChatGPT.

Полученная программа автоматически генерирует мемы на основе загруженного изображения и текста, сгенерированного ИИ. Это позволяет создавать мемы быстро и эффективно.

Что будем искать? Например,программа