A meme is a layout problem disguised as an image problem: two panels, a consistent subject across both, and short captions that have to be spelled correctly. By the end of this you will have a prompt pattern that produces a finished, postable meme in one generation, and a clear idea of where that pattern still breaks.
Why classic diffusion models could not do this
Ask a first-generation Stable Diffusion checkpoint for a meme and you get an image that looks approximately like a meme and reads like nothing at all. Two limitations cause that.
The first is text rendering. Those models were trained to reproduce the appearance of letterforms, not their identity. Text came out as convincing typographic texture — right weight, right placement, wrong glyphs. Short strings sometimes landed by luck; anything longer degraded into pseudo-Latin.
The second is layout. A single denoising pass over one canvas has no notion of panel one versus panel two. You could fake it with regional prompting or by generating each panel separately and compositing, but you were doing the layout work yourself, in an editor, afterwards.
What the instruction-following generation changed
A newer class of image models is wired into a language model rather than sitting behind a short text encoder. Google's Gemini-based image generation, widely known by its Nano Banana nickname since 2025, and OpenAI's GPT-4o image generation, released in March 2025, both work this way, and successors in both lines have kept the same property.
The practical consequences are the ones that matter here:
- Instructions are parsed, not vibed. Top panel and bottom panel are understood as spatial directives, so you can specify a composition instead of hoping for one.
- Text is treated as content. Short quoted strings usually come out correctly spelled, in a font the model chooses to fit the panel.
- Cultural formats are recognised. Naming a well-known meme template gives the model a structural template to fill rather than a style to imitate.
- Edits are conversational. You can say make the bottom caption bigger and get a revision instead of an unrelated new image.
None of this makes them better at photorealism than a dedicated photoreal model. It makes them better at instructions, which is the actual bottleneck for meme work.
The prompt pattern
The pattern has four parts, always in this order: format reference, panel-by-panel description, exact caption text in quotes, and any global style note.
Create a meme in the style of the well-known
"I see no god up here / other than me" format.
Top panel: an anthropomorphic banana plush sitting on top of a tall pole,
shot from below, with the caption "I see no God up here".
Bottom panel: a blurry zoom-in on the same banana plush,
with the caption "Other than ME".
That prompt does a lot of quiet work. The format reference sets the two-panel structure and the punchline rhythm. Each panel gets its own sentence, so the model does not blend them. The captions are in quotes and short, which is the condition under which text rendering is reliable. And the same banana plush in the second panel is an explicit continuity instruction — without it, panel two often shows a different object.
Generalised, it looks like this:
Create a meme in the style of the "<FORMAT NAME>" format.
Top panel: <SUBJECT> <ACTION/POSE>, <CAMERA ANGLE>,
with the caption "<CAPTION 1>".
Bottom panel: <THE SAME SUBJECT> <CHANGED STATE>,
with the caption "<CAPTION 2>".
Style: <flat illustration | photo | 3D render>. Square 1:1 output.
Choices that change the result
| Lever | What to do | Why |
|---|---|---|
| Caption length | Keep under about six words per panel | Long strings are where spelling errors start |
| Aspect ratio | Ask for it explicitly, usually 1:1 or 4:5 | Meme layouts are cropped by the platform otherwise |
| Subject continuity | Repeat the same subject in every panel | Prevents the second panel drifting to a new object |
| Panel count | Two or three | Beyond that, panels start to bleed into each other |
| Style | Name one and only one | Mixed styles across panels break the joke |
| Character identity | Attach a reference image if the subject is specific | Text alone will not hold a face or a mascot steady |
Failure modes
- Long captions misspell. Not occasionally — predictably. If your line genuinely needs fifteen words, generate the artwork clean and set the type in any image editor.
- Panel bleed. Elements from the top panel leak into the bottom one. Fix by describing the divider explicitly: a thin white gap separates the two panels.
- Subject drift. Panel two is a different banana. Fix with an explicit sameness clause, or by feeding the first output back as a reference for the second panel.
- Format recognition gaps. Obscure or very recent templates may not be recognised at all. When that happens, stop naming the format and describe the layout mechanically instead.
- Recognisable people and IP. Many meme templates are photographs of real people or frames from copyrighted media. Models may refuse them, and if they do not, that is not the same as it being clear to publish. Original subjects avoid the whole question.
- Aspect ratio ignored. Some interfaces override the ratio you asked for in text. Set it in the UI or API parameter rather than in the prompt.
Testing whether a model can do this at all
Before building a workflow on any given model, run one diagnostic prompt: two panels, one subject repeated, one four-word caption each. Look at three things — are both captions spelled correctly, is the subject recognisably the same in both panels, and is there a clean divider. A model that fails any of the three will not get better with a longer prompt; it is a capability gap, not a phrasing gap.
Takeaways
- Describe memes panel by panel, one sentence per panel, in reading order.
- Put caption text in quotes and keep it short — that is the single biggest factor in whether it renders correctly.
- State subject continuity explicitly; models do not assume it.
- Use a reference image when the subject is a specific character or mascot.
- If the caption has to be long, generate art without text and typeset it yourself.



Top comments (0)