xiaohongshu
xiaohongshu
memegen-templates
Generate classic meme images using 207+ templates from memegen.link. Use when creating memes with popular formats like Drake, Distracted Boyfriend, This is Fine, or any classic internet meme template.
Full skill instructions
Generate classic internet memes using 207+ popular meme templates from memegen.link.
This Skill provides access to all classic meme formats:
from src.memegen_api import MemegenAPI
api = MemegenAPI()
# Generate Drake meme
meme_url = api.generate_meme(
template="drake",
top_text="Manually creating memes",
bottom_text="Using memegen templates"
)
print(f"Meme URL: {meme_url}")
# https://api.memegen.link/images/drake/Manually_creating_memes/Using_memegen_templates.png
# Generate and download
image = api.generate_and_download(
template="drake",
top_text="Old way",
bottom_text="New way"
)
# Save to file
image.save("my_meme.png")
| Template | Name | Format |
|---|---|---|
drake | Drake Hotline Bling | Top = No, Bottom = Yes |
distracted | Distracted Boyfriend | Left/Center/Right text |
iw | Inhaling Seagull | Top/Bottom |
ants | Do You Want Ants? | Top/Bottom |
afraid | Afraid to Ask Andy | Top/Bottom |
fine | This is Fine | Top/Bottom |
expanding | Expanding Brain | Multi-level |
buzz | Buzz and Woody | Left/Right |
both | Why Not Both? | Top/Bottom |
captain | Captain Phillips | Top/Bottom |
wonka | Condescending Wonka | Top/Bottom |
xy | X, X Everywhere | Top/Bottom |
awesome | Socially Awesome Penguin | Top/Bottom |
awkward | Socially Awkward Penguin | Top/Bottom |
ive | I Should Buy a Boat | Top/Bottom |
disastergirl | Disaster Girl | Top/Bottom |
odi | One Does Not Simply | Top/Bottom |
blb | Bad Luck Brian | Top/Bottom |
yuno | Y U No | Top/Bottom |
success | Success Kid | Top/Bottom |
Full list: See TEMPLATE_LIST.md for all 207 templates
api = MemegenAPI()
# Classic Drake format
meme = api.generate_meme(
template="drake",
top_text="Complicated setup",
bottom_text="One-line API call"
)
Output:
Drake rejecting: "Complicated setup"
Drake approving: "One-line API call"
# Three-part meme
meme = api.generate_meme(
template="distracted",
texts=["Boyfriend", "Girlfriend", "Other Girl"]
)
# Texts: [Left (boyfriend), Center (girlfriend), Right (other girl)]
# Multi-level intelligence meme
meme = api.generate_meme(
template="expanding",
texts=[
"Small brain idea",
"Medium brain idea",
"Big brain idea",
"Galaxy brain idea"
]
)
# Classic "This is Fine" dog
meme = api.generate_meme(
template="fine",
top_text="Everything is fine",
bottom_text="*server is on fire*"
)
# With custom styling
meme = api.generate_meme(
template="drake",
top_text="Normal memes",
bottom_text="Customized memes",
style={
"font": "impact",
"color": "white",
"stroke": "black"
}
)
# Use custom background image
meme = api.generate_with_background(
template="drake",
top_text="Stock templates",
bottom_text="Custom backgrounds",
background_url="https://example.com/custom-bg.jpg"
)
# Text with line breaks
meme = api.generate_meme(
template="drake",
top_text="Single_line_text",
bottom_text="Multi~nline~ntext" # ~n = newline
)
# Handle special characters
meme = api.generate_meme(
template="drake",
top_text="Text with spaces",
bottom_text="Text_with_underscores"
)
# Spaces → underscores in URL
# Use ~s for literal spaces
# Generate multiple memes
templates = ["drake", "distracted", "fine"]
texts = [
("Option A", "Option B"),
("Thing 1", "Thing 2", "Thing 3"),
("Before", "After")
]
memes = []
for template, text in zip(templates, texts):
meme = api.generate_meme(template=template, texts=text)
memes.append(meme)
insanity - Insanity Wolfsuccess - Success Kidawkward - Socially Awkward Penguinawesome - Socially Awesome Penguinblb - Bad Luck Brianfry - Futurama Fryscumbag - Scumbag Stevedrake - Drake Hotline Blingdistracted - Distracted Boyfriendbuzz - Buzz and Woodyboth - Why Not Both?ants - Do You Want Ants?fine - This is Fineexpanding - Expanding Brainjetpack - Jetpack Memetroll - Troll Faceyuno - Y U Nood - Overly Attached Girlfriendwonka - Condescending Wonkamorpheus - Matrix Morpheuscaptain - Captain Phillipstrek - Star Trekmini - Austin Powers Mini-Meclass MemegenAPI:
def generate_meme(
self,
template: str,
top_text: str = "",
bottom_text: str = "",
texts: list = None,
style: dict = None
) -> str:
"""
Generate meme URL.
Args:
template: Template name (e.g., "drake")
top_text: Top text (optional)
bottom_text: Bottom text (optional)
texts: List of texts for multi-part memes
style: Custom styling options
Returns:
URL to generated meme image
"""
def generate_and_download(self, ...) -> PIL.Image:
"""Generate meme and download as PIL Image"""
def list_templates(self) -> list:
"""List all available templates"""
def get_template_info(self, template: str) -> dict:
"""Get template metadata"""
# Generate for Twitter/Instagram
meme = api.generate_and_download(
template="drake",
top_text="Boring posts",
bottom_text="Meme posts"
)
meme.save("social_media_post.png")
# Add humor to presentations
meme = api.generate_meme(
template="expanding",
texts=[
"Basic approach",
"Optimized approach",
"Over-engineered approach",
"Actually using memegen.link"
]
)
# Internal team memes
meme = api.generate_meme(
template="fine",
top_text="Production is down",
bottom_text="This is fine"
)
# Blog posts, videos, etc.
meme = api.generate_meme(
template="distracted",
texts=["Old method", "Current workflow", "New shiny tool"]
)
| Character | Encoding | Example |
|---|---|---|
| Space | _ or ~s | Hello_World |
| Newline | ~n | Line1~nLine2 |
| Underscore | __ | Snake__case |
| Dash | - or ~- | Hyphen-ated |
| Question | ~q | Why~q |
| Percent | ~p | 100~p |
| Hash | ~h | ~htag |
| Slash | ~f | and~for |
# Multi-line text
api.generate_meme(
template="drake",
top_text="Single line",
bottom_text="Line 1~nLine 2~nLine 3"
)
# Special characters
api.generate_meme(
template="drake",
top_text="100~p normal",
bottom_text="200~p meme power"
)
try:
meme = api.generate_meme(
template="invalid_template",
top_text="Test"
)
except ValueError as e:
print(f"Invalid template: {e}")
try:
meme = api.generate_meme(
template="drake",
top_text="", # Empty text
bottom_text=""
)
except ValueError as e:
print(f"Invalid text: {e}")
# In Lark bot command
def handle_memegen_command(template, top, bottom):
api = MemegenAPI()
image = api.generate_and_download(
template=template,
top_text=top,
bottom_text=bottom
)
upload_to_lark(image)
# Generate and post to Twitter
api = MemegenAPI()
meme = api.generate_and_download("drake", "Old way", "New way")
twitter_client.post_with_image(
text="Choose wisely!",
image=meme
)
# Combine with Milady memes
from skills.milady_meme_generator.src.meme_generator_v2 import MemeGeneratorV2
# Generate Milady
milady_gen = MemeGeneratorV2()
milady_img = milady_gen.generate_meme(nft_id=5050)
# Generate classic meme
memegen_api = MemegenAPI()
classic_meme = memegen_api.generate_and_download("drake", "NFTs", "Milady NFTs")
# Combine or use separately
Template not found:
# Check available templates
templates = api.list_templates()
print(templates)
Image not loading:
# Use download instead of URL
image = api.generate_and_download(...) # More reliable
Text formatting issues:
# Use encoding helper
text = api.encode_text("Hello, World!") # Handles special chars
Cost: FREE (memegen.link is a free service)
API Docs: https://memegen.link/
xiaohongshu
technical spec
product ux expert
database patterns
Conduct multi-agent task orchestration and workflow coordination.
Initialize project with Conductor artifacts (product definition,
Expert in web animations, transitions, and motion design using Framer Motion and CSS
Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...
PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.
Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...
Display project status, active tracks, and next actions
Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.
Generate, edit, and beat-sync AI video with leading models in one workspace.
The world's fastest calendar for remote work
Transform Your Design with AI Designer by ImgCreator.ai
Revolutionizing Video Production with AI-Powered Creativity
Extend an image past the frame and let AI fill the new aspect ratio.
Discover your celebrity doppelgänger with StarByFace!
ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.
Opus.ai: Revolutionize Your Web Experience