Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help


title: “Meme Generation — Create meme PNGs from templates with Pillow text overlay” sidebar_label: “Meme Generation” description: “Create meme PNGs from templates with Pillow text overlay”

{/* 本页面由 website/scripts/generate-skill-docs.py 根据技能的 SKILL.md 文件自动生成。请直接编辑源文件 SKILL.md,而非此页面。 */}

模因生成

利用 Pillow 工具在模板上添加文字,生成模因风格的 PNG 图像。

技能元数据

来源可选 — 通过 hermes skills install official/creative/meme-generation 安装
路径optional-skills/creative\meme-generation
版本2.0.0
开发者adanaleycio
许可协议MIT
支持平台linux、macos、windows
标签creative、memes、humor、images
相关技能ascii-art

参考:完整的 SKILL.md 文件

:::info 以下是 Hermes 在触发该技能时加载的完整技能定义。当技能处于激活状态时,智能体将依据此内容执行操作。
::

模因生成

根据指定主题生成真实的模因图像。系统会自动选择模板、撰写标题,并最终输出带有文字叠加效果的完整 .png 文件。

适用场景

  • 用户要求你创建或生成模因
  • 用户希望针对特定主题、情境或烦恼制作模因
  • 用户说出“把某内容做成模因”之类的指令

可用模板

该脚本支持通过名称或 ID 调用 约 100 种流行的 imgflip 模板,此外还提供 10 种经过精心筛选的模板,其文字位置已优化设置。

精选模板(自定义文字排版)

ID名称字段位置最佳适用场景
this-is-fineThis is Fine顶部、底部混乱状态、拒绝回应
drakeDrake Hotline Bling拒绝、批准做出拒绝或偏好选择
distracted-boyfriendDistracted Boyfriend分散注意力元素、当前对象、相关人物面临诱惑时需要调整优先级
two-buttonsTwo Buttons左侧、右侧、相关人物需要做出两难抉择的情况
expanding-brainExpanding Brain4个层级逐渐加剧的讽刺情境
change-my-mindChange My Mind陈述内容表达激进观点时
woman-yelling-at-catWoman Yelling at Cat女性、猫发生争执的场景
one-does-not-simplyOne Does Not Simply顶部、底部看起来容易实则困难的任务
grus-planGru’s Plan第1-3步、最终醒悟计划最终适得其反的情况
batman-slapping-robinBatman Slapping Robin罗宾、蝙蝠侠需要制止糟糕的主意时

动态模板(来自imgflip API)

任何未列入精选列表的模板,均可通过名称或imgflip ID来调用。这类模板会自动实现智能的默认文本排版(双字段模板位于顶部/底部,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: path 方式进行传输。