Install
$ agentstack add skill-mikefluff-skills-meme-card-maker ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Meme-format graphic generator. Input: top text + bottom text + optional centerpiece (template or user photo). Output: classic meme-aesthetic image with Impact-style typography.
Distinct from quote-card-maker:
- Two text blocks (top + bottom), not one quote + attribution
- Impact-font bold-with-stroke typography (the universal meme look)
- Often references a known meme template (drake, distracted-boyfriend, expanding-brain)
- Aesthetic: meme template, NOT editorial — uglier is often funnier
Distinct from flyer-maker / cover-maker:
- No event details, no creator metadata
- Different aesthetic vocabulary (Impact font, stroke outline, low-fidelity feel)
- Often references specific cultural meme formats
This skill does NOT:
- Generate animated GIF memes — use
gif-makerseparately - Watermark / credit the original meme template creator — that's your responsibility
- Verify cultural appropriateness — your judgment
- Translate meme captions — pass in target language
- Place text at PIXEL-perfect template positions — model approximates
ROLE
Read top text + bottom text + optional template hint + optional base photo → pick visual-integration-strong model → assemble prompt cueing Impact-style typography with stroke, meme aesthetic → batch execute → save PNGs.
PIPELINE
- Resolve text:
--top ""— top caption (≤8 words, ALL CAPS rendered)--bottom ""— bottom caption (≤8 words, ALL CAPS rendered)- At least one of top / bottom required
- Resolve template (optional):
--template drake|distracted-boyfriend|expanding-brain|two-buttons|change-my-mind|customdrake: 2-panel "rejects / approves"distracted-boyfriend: 3-character compositionexpanding-brain: 4-panel ascendingtwo-buttons: sweaty decisionchange-my-mind: seated man with signcustom: just the captions on whatever centerpiece the model generates- Default:
custom
- Resolve base photo (optional):
--base-photo— use user image as centerpiece- Implies
--template custom(template hints are ignored when base photo is provided)
- Pick model:
- With
--base-photo:nano-banana-pro(preserves visual, adds caption layer) - Template-based:
gpt-image-2(best at illustration + text rendering) - Override:
--model
- Compose ONE LLM call — load [
common/visual-prompt-library/system-prompt.md](../../common/visual-prompt-library/system-prompt.md) (shared SYSTEMPROMPT) andbuildUserMessage(opts)withMode=meme-card,N=, top + bottom captions + template + optional base photo. Spawn ONE Agent. Receives JSON{"slides":[{"number":1,"prompt":"..."}]}— 1–3 sentence prompts with template-specific composition + Impact-style typography cues + meme aesthetic ("white text with thick black stroke, all caps, low-fidelity, slight JPEG artifacts"). Captions in double quotes. Seereferences/templates.mdfor template composition. Library styles via [common/visual-prompt-library/styles/_index.md](../../common/visual-prompt-library/styles/index.md).
- Estimate cost + confirm — inherits
SKILLS_CAROUSEL_BUDGET=1.50.
- Batch execute —
common.runners.batch.run_batch().
- Output:
`` ./generated/meme// meme-v1.png meme-v2.png manifest.json prompts.md ``
MODES
Required
meme-card-maker --top ""(top) OR--bottom ""(bottom; at least one required)
Optional content
--template drake|distracted-boyfriend|expanding-brain|two-buttons|change-my-mind|custom--base-photo— user image as centerpiece--context ""— situational context to help the model interpret captions--lang en|ru— language hint (default: en)
Visual
--variants N— variants (default 3)--model auto|— image provider--style-mod ""— append tweak (e.g., "extra pixelated, deepfried meme aesthetic")--aspect square|portrait|landscape— composition aspect (defaultsquare1080×1080)
Execution
--execute— actually generate--output— custom output--parallelism N— concurrent calls (default 2)--yes— skip cost confirmation--resume— retry failed--prompts-only— dry run
REFERENCES (load on demand)
| File | When to load | |---|---| | [references/templates.md](references/templates.md) | Step 2 — meme template anatomy, composition cues per template | | [references/typography.md](references/typography.md) | Step 5 — Impact font conventions, stroke outline rules, when to deviate | | [references/troubleshoot.md](references/troubleshoot.md) | When text doesn't read, template doesn't recognize, etc. |
EXAMPLES
See [examples/before-after.md](examples/before-after.md) — 3 calibration runs: drake template developer joke, custom photo meme, expanding-brain progression.
CONSTRAINTS
- Captions ≤8 words each. Past 8, text overflows; Impact-style bold needs space.
- ALL CAPS rendering. All meme captions auto-uppercase. If you pass lowercase, it's rendered uppercase. Exception:
--lang rukeeps mixed case for Cyrillic readability (Cyrillic ALL CAPS is harder to read).
- Default model is
gpt-image-2. Best at illustration + integrated text.nano-banana-prowhen base photo is provided.
- Template recognition is approximate. "Drake" template is approximated by the model — won't be pixel-identical to the original. For exact template: use a meme generator tool (Imgflip, Memegenerator).
- Cultural sensitivity is YOUR responsibility. The skill doesn't filter. Don't ship punchy memes about sensitive topics without consideration.
- Generated memes can resemble copyrighted templates. Original meme creators rarely enforce, but for commercial use: check the template's original source.
- Cost confirm ONCE per batch. Sum across variants.
- Aspect default is square. Most platforms display memes 1:1 well.
--aspect portraitfor IG portrait posts;--aspect landscapefor Twitter inline.
- Never print API keys. Mask in errors.
INVOCATION HINTS
When the user says any of:
- "make a meme", "meme for X", "meme template Y"
- "drake meme", "expanding brain meme", "distracted boyfriend"
- "сделай мем про X", "мем формат Y"
- "сгенерируй мем"
If the user names a template explicitly, set --template . If unclear, default --template custom (lets the model interpret).
If the user pastes a photo path: --base-photo + --template custom.
Defaults: --variants 3 --aspect square --template custom --model gpt-image-2. Without --execute, returns prompts.
This skill is distinct from:
quote-card-maker— text-dominant editorial cards (single quote + attribution)image-prompt— free-form image gen (no meme conventions)gif-maker— animated content (memes here are static)flyer-maker/cover-maker— structured professional formats
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: Mikefluff
- Source: Mikefluff/skills
- License: MIT
- Homepage: https://www.npmjs.com/package/@mikefluff/skills
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.