본문으로 건너뛰기
cccskills
무료GitHub에 공개

meme-generation

Generate real meme images by picking a template and overlaying text with Pillow. Produces actual .png meme files.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md5.4 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Meme Generation

Generate actual meme images from a topic. Picks a template, writes captions, and renders a real .png file with text overlay.

When to Use

  • User asks you to make or generate a meme
  • User wants a meme about a specific topic, situation, or frustration
  • User says "meme this" or similar

Available Templates

The script supports any of the ~100 popular imgflip templates by name or ID, plus 10 curated templates with hand-tuned text positioning.

Curated Templates (custom text placement)

IDNameFieldsBest for
this-is-fineThis is Finetop, bottomchaos, denial
drakeDrake Hotline Blingreject, approverejecting/preferring
distracted-boyfriendDistracted Boyfrienddistraction, current, persontemptation, shifting priorities
two-buttonsTwo Buttonsleft, right, personimpossible choice
expanding-brainExpanding Brain4 levelsescalating irony
change-my-mindChange My Mindstatementhot takes
woman-yelling-at-catWoman Yelling at Catwoman, catarguments
one-does-not-simplyOne Does Not Simplytop, bottomdeceptively hard things
grus-planGru's Planstep1-3, realizationplans that backfire
batman-slapping-robinBatman Slapping Robinrobin, batmanshutting down bad ideas

Dynamic Templates (from imgflip API)

Any template not in the curated list can be used by name or imgflip ID. These get smart default text positioning (top/bottom for 2-field, evenly spaced for 3+). Search with:

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

Procedure

Mode 1: Classic Template (default)

  1. Read the user's topic and identify the core dynamic (chaos, dilemma, preference, irony, etc.)
  2. Pick the template that best matches. Use the "Best for" column, or search with --search.
  3. Write short captions for each field (8-12 words max per field, shorter is better).
  4. Find the skill's script directory:
    SKILL_DIR=$(dirname "$(find ~/.hermes/skills -path '*/meme-generation/SKILL.md' 2>/dev/null | head -1)")
    
  5. Run the generator:
    python "$SKILL_DIR/scripts/generate_meme.py" <template_id> /tmp/meme.png "caption 1" "caption 2" ...
    
  6. Return the image with MEDIA:/tmp/meme.png

Mode 2: Custom AI Image (when image_generate is available)

Use this when no classic template fits, or when the user wants something original.

  1. Write the captions first.
  2. Use image_generate to create a scene that matches the meme concept. Do NOT include any text in the image prompt — text will be added by the script. Describe only the visual scene.
  3. Find the generated image path from the image_generate result URL. Download it to a local path if needed.
  4. Run the script with --image to overlay text, choosing a mode:
    • Overlay (text directly on image, white with black outline):
      python "$SKILL_DIR/scripts/generate_meme.py" --image /path/to/scene.png /tmp/meme.png "top text" "bottom text"
      
    • Bars (black bars above/below with white text — cleaner, always readable):
      python "$SKILL_DIR/scripts/generate_meme.py" --image /path/to/scene.png --bars /tmp/meme.png "top text" "bottom text"
      
    Use --bars when the image is busy/detailed and text would be hard to read on top of it.
  5. Verify with vision (if vision_analyze is available): Check the result looks good:
    vision_analyze(image_url="/tmp/meme.png", question="Is the text legible and well-positioned? Does the meme work visually?")
    
    If the vision model flags issues (text hard to read, bad placement, etc.), try the other mode (switch between overlay and bars) or regenerate the scene.
  6. Return the image with MEDIA:/tmp/meme.png

Examples

"debugging production at 2 AM":

python generate_meme.py this-is-fine /tmp/meme.png "SERVERS ARE ON FIRE" "This is fine"

"choosing between sleep and one more episode":

python generate_meme.py drake /tmp/meme.png "Getting 8 hours of sleep" "One more episode at 3 AM"

"the stages of a Monday morning":

python generate_meme.py expanding-brain /tmp/meme.png "Setting an alarm" "Setting 5 alarms" "Sleeping through all alarms" "Working from bed"

Listing Templates

To see all available templates:

python generate_meme.py --list

Pitfalls

  • Keep captions SHORT. Memes with long text look terrible.
  • Match the number of text arguments to the template's field count.
  • Pick the template that fits the joke structure, not just the topic.
  • Do not generate hateful, abusive, or personally targeted content.
  • The script caches template images in scripts/.cache/ after first download.

Verification

The output is correct if:

  • A .png file was created at the output path
  • Text is legible (white with black outline) on the template
  • The joke lands — caption matches the template's intended structure
  • File can be delivered via MEDIA: path

🔗 Связи

  • [[000 - Map of Maps]] — REPO_DOCS
  • [[000 - Map of Maps]] — Map of Maps

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

1password

무료

Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in, and reading/injecting secrets for commands.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ibragimov-oasis/vibe-coder32026년 6월 24일 업데이트

Use this skill when the user requests to review, analyze, critique, or summarize academic papers, research articles, preprints, or scientific publications. Supports comprehensive structured reviews covering methodology assessment, contribution evaluation, literature positioning, and constructive feedback generation. Trigger on queries involving paper URLs, uploaded PDFs, arXiv links, or requests like "review this paper", "analyze this research", "summarize this study", or "write a peer review".

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ibragimov-oasis/vibe-coder32026년 6월 24일 업데이트

Add descriptions for new models from the HuggingFace router to chat-ui configuration. Use when new models are released on the router and need descriptions added to prod.yaml and dev.yaml. Triggers on requests like "add new model descriptions", "update models from router", "sync models", or when explicitly invoking /add-model-descriptions.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ibragimov-oasis/vibe-coder32026년 6월 24일 업데이트

Automates browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to navigate websites, interact with web pages, fill forms, take screenshots, test web applications, or extract information from web pages.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ibragimov-oasis/vibe-coder32026년 6월 24일 업데이트

Master advanced AgentDB features including QUIC synchronization, multi-database management, custom distance metrics, hybrid search, and distributed systems integration. Use when building distributed AI systems, multi-agent coordination, or advanced vector search applications.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ibragimov-oasis/vibe-coder32026년 6월 24일 업데이트

Create and train AI learning plugins with AgentDB's 9 reinforcement learning algorithms. Includes Decision Transformer, Q-Learning, SARSA, Actor-Critic, and more. Use when building self-learning agents, implementing RL, or optimizing agent behavior through experience.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ibragimov-oasis/vibe-coder32026년 6월 24일 업데이트

ibragimov-oasis의 스킬 모두 보기

이 스킬의 문제 신고