On this page Генерируйте настоящие изображения мемов, выбирая шаблон и накладывая текст с помощью Pillow. Создаёт реальные .png-файлы мемов.
Метаданные навыка¶
| Источник | Опциональный — установка: hermes skills install official/creative/meme-generation |
| Путь | optional-skills/creative/meme-generation |
| Версия | 2.0.0 |
| Автор | adanaleycio |
| Лицензия | MIT |
| Теги | creative, memes, humor, images |
| Связанные навыки | ascii-art, generative-widgets |
Справочник: полный SKILL.md¶
info Ниже приведено полное определение навыка, которое Hermes загружает при его активации. Это те инструкции, которые видит агент, когда навык активен.
Генерация мемов¶
Создавайте настоящие изображения мемов по теме. Выбирает шаблон, пишет подписи и рендерит реальный .png-файл с наложением текста.
Когда использовать¶
- Пользователь просит сделать или сгенерировать мем
- Пользователь хочет мем на определённую тему, ситуацию или проблему
- Пользователь говорит «мем это» или что-то подобное
Доступные шаблоны¶
Скрипт поддерживает любые из ~100 популярных шаблонов imgflip по имени или ID, а также 10 курируемых шаблонов с точно настроенным позиционированием текста.
Курируемые шаблоны (пользовательское размещение текста)¶
| ID | Имя | Поля | Лучше всего для |
|---|---|---|---|
this-is-fine |
This is Fine | верх, низ | хаос, отрицание |
drake |
Drake Hotline Bling | отвергаю, одобряю | отвержение/предпочтение |
distracted-boyfriend |
Distracted Boyfriend | отвлечение, текущее, персона | искушение, смена приоритетов |
two-buttons |
Two Buttons | лево, право, персона | невозможный выбор |
expanding-brain |
Expanding Brain | 4 уровня | нарастающая ирония |
change-my-mind |
Change My Mind | утверждение | хот-тейки |
woman-yelling-at-cat |
Woman Yelling at Cat | женщина, кот | споры |
one-does-not-simply |
One Does Not Simply | верх, низ | обманчиво сложные вещи |
grus-plan |
Gru's Plan | шаг1-3, осознание | планы, которые идут не так |
batman-slapping-robin |
Batman Slapping Robin | robin, batman | пресечение плохих идей |
Динамические шаблоны (из imgflip API)¶
Любой шаблон, отсутствующий в курируемом списке, можно использовать по имени или imgflip ID. Они получают интеллектуальное позиционирование текста по умолчанию (верх/низ для 2 полей, равномерно для 3+). Поиск:
[code] python "$SKILL_DIR/scripts/generate_meme.py" --search "disaster"
[/code]
Процедура¶
Режим 1: Классический шаблон (по умолчанию)¶
- Прочитайте тему пользователя и определите основную динамику (хаос, дилемма, предпочтение, ирония и т.д.)
- Выберите наиболее подходящий шаблон. Используйте колонку «Лучше всего для» или поиск с
--search. - Напишите короткие подписи для каждого поля (макс. 8–12 слов на поле, чем короче, тем лучше).
- Найдите директорию скриптов навыка:
[code] SKILL_DIR=$(dirname "$(find ~/.hermes/skills -path '*/meme-generation/SKILL.md' 2>/dev/null | head -1)")
[/code]
- Запустите генератор:
[code] python "$SKILL_DIR/scripts/generate_meme.py"
[/code]
- Верните изображение с помощью
MEDIA:/tmp/meme.png
Режим 2: Пользовательское AI-изображение (когда доступен image_generate)¶
Используйте этот режим, когда ни один классический шаблон не подходит или пользователь хочет что-то оригинальное.
- Сначала напишите подписи.
- Используйте
image_generateдля создания сцены, соответствующей концепции мема. НЕ включайте текст в запрос изображения — текст будет добавлен скриптом. Опишите только визуальную сцену. - Найдите путь к сгенерированному изображению из URL-результата image_generate. При необходимости скачайте его в локальную директорию.
- Запустите скрипт с
--imageдля наложения текста, выбрав режим:- Overlay (текст прямо на изображении, белый с чёрной обводкой):
[code] python "$SKILL_DIR/scripts/generate_meme.py" --image /path/to/scene.png /tmp/meme.png "top text" "bottom text"
[/code]
* **Bars** (чёрные полосы сверху/снизу с белым текстом — чище, всегда читаемо):
[code] python "$SKILL_DIR/scripts/generate_meme.py" --image /path/to/scene.png --bars /tmp/meme.png "top text" "bottom text"
[/code]
Используйте --bars, когда изображение загружено/детализировано и текст поверх него будет плохо читаться.
- Проверьте с помощью vision (если доступен
vision_analyze): убедитесь, что результат выглядит хорошо:
[code] vision_analyze(image_url="/tmp/meme.png", question="Is the text legible and well-positioned? Does the meme work visually?")
[/code]
Если модель vision сообщает о проблемах (текст трудно читать, плохое расположение и т.д.), попробуйте другой режим (переключайтесь между overlay и bars) или создайте новую сцену.
- Верните изображение с помощью
MEDIA:/tmp/meme.png
Примеры¶
«отладка продакшена в 2 часа ночи»:
[code] python generate_meme.py this-is-fine /tmp/meme.png "SERVERS ARE ON FIRE" "This is fine"
[/code]
«выбор между сном и ещё одной серией»:
[code] python generate_meme.py drake /tmp/meme.png "Getting 8 hours of sleep" "One more episode at 3 AM"
[/code]
«этапы утра понедельника»:
[code] python generate_meme.py expanding-brain /tmp/meme.png "Setting an alarm" "Setting 5 alarms" "Sleeping through all alarms" "Working from bed"
[/code]
Список шаблонов¶
Чтобы увидеть все доступные шаблоны:
[code] python generate_meme.py --list
[/code]
Ошибки и советы¶
- Делайте подписи КОРОТКИМИ. Мемы с длинным текстом выглядят ужасно.
- Количество текстовых аргументов должно соответствовать количеству полей шаблона.
- Выбирайте шаблон, который подходит под структуру шутки, а не только под тему.
- Не создавайте оскорбительный, агрессивный или направленный на личность контент.
- Скрипт кэширует изображения шаблонов в
scripts/.cache/после первой загрузки.
Проверка результата¶
Результат корректен, если:
- .png-файл создан по указанному пути вывода
- Текст читаем (белый с чёрной обводкой) на шаблоне
- Шутка срабатывает — подпись соответствует структуре шаблона
-
Файл можно доставить через MEDIA: путь
- Справочник: полный SKILL.md
- Когда использовать
- Доступные шаблоны
- Процедура
- Примеры
- Список шаблонов
- Ошибки и советы
- Проверка результата