跳到主要內容

表情包生成

通過選擇模板並使用 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-fineThis is Finetop, bottom混亂、否認
drakeDrake Hotline Blingreject, approve拒絕/偏好
distracted-boyfriendDistracted Boyfrienddistraction, current, person誘惑、優先級轉移
two-buttonsTwo Buttonsleft, right, person艱難抉擇
expanding-brainExpanding Brain4 levels升級的諷刺
change-my-mindChange My Mindstatement爭議性觀點
woman-yelling-at-catWoman Yelling at Catwoman, cat爭論
one-does-not-simplyOne Does Not Simplytop, bottom看似簡單實則困難的事
grus-planGru's Planstep1-3, realization適得其反的計劃
batman-slapping-robinBatman Slapping Robinrobin, batman制止糟糕的想法

動態模板(來自 imgflip API)

不在精選列表中的任何模板都可以通過名稱或 imgflip ID 使用。這些模板具有智能默認文本位置(2 個字段為頂部/底部,3 個及以上字段為均勻分佈)。搜索方式:

python "$SKILL_DIR/scripts/generate_meme.py" --search "disaster"

流程

模式 1:經典模板(默認)

  1. 閱讀用戶的主題並識別核心動態(混亂、困境、偏好、諷刺等)
  2. 選擇最匹配的模板。使用“適用於”列,或使用 --search 進行搜索。
  3. 為每個字段編寫簡短的標題(每個字段最多 8-12 個單詞,越短越好)。
  4. 查找技能的腳本目錄:
    SKILL_DIR=$(dirname "$(find ~/.hermes/skills -path '*/meme-generation/SKILL.md' 2>/dev/null | head -1)")
  5. 運行生成器:
    python "$SKILL_DIR/scripts/generate_meme.py" <template_id> /tmp/meme.png "caption 1" "caption 2" ...
  6. 返回圖像,路徑為 MEDIA:/tmp/meme.png

模式 2:自定義 AI 圖像(當 image_generate 可用時)

當沒有合適的經典模板,或者用戶想要原創內容時使用此模式。

  1. 首先編寫標題。
  2. 使用 image_generate 創建符合表情包概念的場景。不要在圖像提示中包含任何文本——文本將由腳本添加。僅描述視覺場景。
  3. 從 image_generate 結果 URL 中獲取生成的圖像路徑。如果需要,將其下載到本地路徑。
  4. 使用 --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
  5. 通過視覺驗證(如果 vision_analyze 可用):檢查結果是否良好:
    vision_analyze(image_url="/tmp/meme.png", question="Is the text legible and well-positioned? Does the meme work visually?")
    如果視覺模型標記出問題(文本難以閱讀、位置不佳等),嘗試另一種模式(在疊加和條幅之間切換)或重新生成場景。
  6. 返回圖像,路徑為 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: 路徑交付