表情包生成
通過選擇模板並使用 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
信息
以下是 Hermes 在觸發此技能時加載的完整技能定義。這是技能激活時代理看到的指令。
表情包生成
根據主題生成實際的表情包圖像。選擇模板,編寫標題,並渲染帶有文字疊加的真實 .png 文件。
何時使用
- 用戶要求你製作或生成表情包
- 用戶想要關於特定主題、情境或煩惱的表情包
- 用戶說“把這個做成表情包”或類似內容
可用模板
該腳本支持通過名稱或 ID 使用 任何約 100 種流行的 imgflip 模板,以及 10 個經過手動調整文本位置的精選模板。
精選模板(自定義文本放置)
| ID | 名稱 | 字段 | 適用於 |
|---|---|---|---|
this-is-fine | This is Fine | top, bottom | 混亂、否認 |
drake | Drake Hotline Bling | reject, approve | 拒絕/偏好 |
distracted-boyfriend | Distracted Boyfriend | distraction, current, person | 誘惑、優先級轉移 |
two-buttons | Two Buttons | left, right, person | 艱難抉擇 |
expanding-brain | Expanding Brain | 4 levels | 升級的諷刺 |
change-my-mind | Change My Mind | statement | 爭議性觀點 |
woman-yelling-at-cat | Woman Yelling at Cat | woman, cat | 爭論 |
one-does-not-simply | One Does Not Simply | top, bottom | 看似簡單實則困難的事 |
grus-plan | Gru's Plan | step1-3, realization | 適得其反的計劃 |
batman-slapping-robin | Batman Slapping Robin | robin, batman | 制止糟糕的想法 |
動態模板(來自 imgflip API)
不在精選列表中的任何模板都可以通過名稱或 imgflip ID 使用。這些模板具有智能默認文本位置(2 個字段為頂部/底部,3 個及以上字段為均勻分佈)。搜索方式:
python "$SKILL_DIR/scripts/generate_meme.py" --search "disaster"
流程
模式 1:經典模板(默認)
- 閱讀用戶的主題並識別核心動態(混亂、困境、偏好、諷刺等)
- 選擇最匹配的模板。使用“適用於”列,或使用
--search進行搜索。 - 為每個字段編寫簡短的標題(每個字段最多 8-12 個單詞,越短越好)。
- 查找技能的腳本目錄:
SKILL_DIR=$(dirname "$(find ~/.hermes/skills -path '*/meme-generation/SKILL.md' 2>/dev/null | head -1)") - 運行生成器:
python "$SKILL_DIR/scripts/generate_meme.py" <template_id> /tmp/meme.png "caption 1" "caption 2" ... - 返回圖像,路徑為
MEDIA:/tmp/meme.png
模式 2:自定義 AI 圖像(當 image_generate 可用時)
當沒有合適的經典模板,或者用戶想要原創內容時使用此模式。
- 首先編寫標題。
- 使用
image_generate創建符合表情包概念的場景。不要在圖像提示中包含任何文本——文本將由腳本添加。僅描述視覺場景。 - 從 image_generate 結果 URL 中獲取生成的圖像路徑。如果需要,將其下載到本地路徑。
- 使用
--image運行腳本以疊加文本,選擇一種模式:- 疊加(直接在圖像上添加文本,白色字體帶黑色輪廓):
python "$SKILL_DIR/scripts/generate_meme.py" --image /path/to/scene.png /tmp/meme.png "top text" "bottom text" - 條幅(上下添加黑色條幅,白色文本——更乾淨,始終可讀):
python "$SKILL_DIR/scripts/generate_meme.py" --image /path/to/scene.png --bars /tmp/meme.png "top text" "bottom text"
--bars。 - 疊加(直接在圖像上添加文本,白色字體帶黑色輪廓):
- 通過視覺驗證(如果
vision_analyze可用):檢查結果是否良好:如果視覺模型標記出問題(文本難以閱讀、位置不佳等),嘗試另一種模式(在疊加和條幅之間切換)或重新生成場景。vision_analyze(image_url="/tmp/meme.png", question="Is the text legible and well-positioned? Does the meme work visually?") - 返回圖像,路徑為
MEDIA:/tmp/meme.png
示例
“凌晨 2 點調試生產環境”:
python generate_meme.py this-is-fine /tmp/meme.png "SERVERS ARE ON FIRE" "This is fine"
“在睡覺和再看一集之間選擇”:
python generate_meme.py drake /tmp/meme.png "Getting 8 hours of sleep" "One more episode at 3 AM"
“週一早晨的各個階段”:
python generate_meme.py expanding-brain /tmp/meme.png "Setting an alarm" "Setting 5 alarms" "Sleeping through all alarms" "Working from bed"
列出模板
查看所有可用模板:
python generate_meme.py --list
常見陷阱
- 保持標題簡短。長文本的表情包看起來很糟糕。
- 確保文本參數的數量與模板的字段數量匹配。
- 選擇符合笑話結構的模板,而不僅僅是主題。
- 不要生成仇恨、辱罵或個人針對性內容。
- 腳本會在首次下載後將模板圖像緩存到
scripts/.cache/中。
驗證
如果滿足以下條件,則輸出正確:
- 在輸出路徑創建了 .png 文件
- 模板上的文本清晰可讀(白色字體帶黑色輪廓)
- 笑話效果達成——標題符合模板的預期結構
- 文件可以通過 MEDIA: 路徑交付