it Новости Python AI Программа / Мемогенерация с Питоном и ИИ
Python AI Программа / Мемогенерация с Питоном и ИИ

Python AI Программа / Мемогенерация с Питоном и ИИ

7 972
03 февраля 2024 в 16:01

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

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

Курс изучения Python

Можете пройти наш бесплатный курс по изучению Python

Создание проекта

На самом деле, такую программу можно было построить на базе разных языков программирования. Мы выбрали Питон из-за обилия библиотек, что нам пригодятся, а также из-за легкого синтаксиса самого языка.


Прежде чем приступить к разработке, убедитесь что сам Питон установлен на вашем ПК. Также скачайте программу для написания кода, к примеру, Visual Studio Code. В программе создайте новый проект и добавьте основной файл в него.



Дополнительно: дабы все библиотеки скачивались и устанавливать именно в проект, то нам нужно добавить виртуально окружение. Для этого откройте строку с поиском и впишите Python: Create Environment. Это позволит создать виртуальные окружение в проекте.


Библиотека Pillow

Вся наша программа будет сводиться к нескольким моментам: 

  1. открытие и обработка фото
  2. генерация текста
  3. размещения текста на картинке
  4. сохранение картинки в проекте


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


Убедитесь, что у вас установлена эта библиотека. Для этого в терминале пропишите:

pip install Pillow

После установки можем описать код. Ниже представлен набросок кода для открытия фото:

from PIL import Image, ImageDraw, ImageFont

# Открываем изображение
img = Image.open('meme.jpg')

Мы указываем импорт всех классов и говорим какое изображение мы будем открывать. На этом этапе вы можете зайти в Google и скачать любое изображение с шаблонным мемом. Такую шаблонную картинку сохраните в вашем проекте.


Рисуем текст на фото

Теперь опишем код для рисования текста. Создаем объект на основе класса ImageDraw. Создаем две переменные, что будут хранить текст. Пока мы сами придумываем текст, а также указываем его на английском.

# Получаем объект ImageDraw для рисования текста
draw = ImageDraw.Draw(img)

top_text = 'Text'
bottom_text = 'Text'

# Рисуем верхний текст
draw.text((600, 200), top_text, (0, 0, 0))

# Рисуем нижний текст
draw.text((600, 700), bottom_text, (0, 0, 0))

# Сохраняем результат
img.save('me2.jpg')

# Открываем и показываем результат
Image.open('me2.jpg').show()

Обращаемся к объекту draw и указываем в каких координатах, какой текст и с каким цветом мы будем рисовать.


В конце остается лишь сохранить фото и отобразить пользователю. После запуска вы уже заметите как у вас будет работать программа.


Для работы текста на кириллице вам необходимо скачать шрифт с Google. Такой шрифт должен иметь поддержку кириллицы. Добавьте его в проект и опишите его подгрузку:

# Загружаем свой шрифт (укажите путь к вашему ttf файлу)
font_path = 'OpenSans-Bold.ttf'
font = ImageFont.truetype(font_path, size=22)

# Рисуем верхний текст
draw.text((600, 200), top_text, (0, 0, 0), font=font)

# Рисуем нижний текст
draw.text((600, 700), bottom_text, (0, 0, 0), font=font)

Подключение к ChatGPT

А теперь сделаем нашу программу действительно интересной. Для этого нам потребуется ChatGPT и его возможности. Для работы с Чатом нам сперва нужно перейти на их сайт и зарегистрироваться. После регистрации вы сможете зайти на страницу с API ключами и там же получите ключ для интеграции ChatGPT внутрь вашего проекта.


Посмотреть детальнее про работу с ChatGPT можно в нашем отдельном курсе. Он доступен здесь.



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

Генерация мемов

Разработка последующей части проекта доступна в видео ниже. Там же вы найдете полное описание всех необходимых действий:


Посмотреть весь код проекта можна ниже:

from PIL import Image, ImageDraw, ImageFont
from openai import OpenAI

API = 'KEY'
client = OpenAI(api_key=API)

def generate_response(text):
	response = client.completions.create(
		prompt=text,
		model='text-davinci-003'
	)

	if response and response.choices:
		return response.choices[0].text.strip()
	else:
		return None

prompt = 'Тебе нужно придумать каждый раз новый мем на основе картинки. Вот URL фото: https://i.pinimg.com/550x/9b/fd/10/9bfd1059af5d16041b921bb712740e99.jpg Пришли мне только текст для верхней написи и нижней. Ни слова больше кроме текста мема. Не нужно их подписывать, а лишь между первым и вторым текстом поставь символы %% Не пиши Верхняя часть или Нижняя часть, а также не добавляй кавычки'
res = generate_response(prompt)
result = res.split('%%')

# Открываем изображение
img = Image.open('me1.jpg')

# Получаем объект ImageDraw для рисования текста
draw = ImageDraw.Draw(img)

# Загружаем свой шрифт (укажите путь к вашему ttf файлу)
font_path = 'OpenSans-Bold.ttf'
font = ImageFont.truetype(font_path, size=22)

top_text = result[0]
bottom_text = result[1]

# Рисуем верхний текст
draw.text((600, 200), top_text, (0, 0, 0), font=font)

# Рисуем нижний текст
draw.text((600, 700), bottom_text, (0, 0, 0), font=font)

# Сохраняем результат
img.save('me2.jpg')

# Открываем и показываем результат
Image.open('me2.jpg').show()

Курс изучения Python

Можете пройти наш бесплатный курс по изучению Python

Заключительная часть

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


Больше информации

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



В ходе огромной программы обучения вы изучите язык Питон, научитесь на его основе работать с базами данных, создавать мобильные проекты, строить веб сайты при помощи Django, ознакомитесь с REST API и познакомитесь с разработкой схожих интересных программ с использованием ИИ и различных библиотек языка.

Больше интересных новостей

Комментарии (1)
Добавить комментарий

Dmytro 22 января 2026 в 20:24

Хорошая идея!
Ответить