Bounce!
Wink ;)
Cry
Loop it
3×3
9 frames
the boring text part of making animated stickers

Write the prompt.
Get nine
frames.

Same character style, language, and text style as the 16-sticker builder — but pick one of the sixteen phrases instead of all of them. The prompt asks for a 3×3 sprite sheet animating that single phrase across nine looped frames. Paste into ChatGPT or Nano Banana with a photo, bring the sheet back, slice with the 3×3 grid, export as an animated WhatsApp sticker.

Want the static 4×4 sheet? Open the message sticker builder →

01

Ask for a sprite sheet, not a GIF.

Image models can't render time. Ask for a 3×3 grid of frames on one canvas and the model treats it as a layout problem — which it's good at — instead of an animation problem, which it isn't.

02

One phrase, one emotion.

A static sheet packs 16 different reactions in one image. Animation packs one reaction across nine frames. Pick the phrase, and the prompt asks for nine small steps of that single expression.

03

Frame 9 matches Frame 1.

The prompt spells out a seamless loop — the last frame visually matches the first. When you slice the sheet and play it back, the cycle seals shut. No jump cut.

the animation prompt builder

Build your
sprite sheet prompt.

1 Pick a character style ← who's in the animation?
2 Phrase language
3 Text style ← how should the text look?
4 Pick a theme ← what's the vibe?
5 Pick the one phrase to animate ← tap any · or type your own
edit the phrase above, or just tap a chip

paste into ChatGPT or Nano Banana

The sheet came back, now what? Open it in GridSticker, pick the 3×3 grid, slice. Use the Animation tab to set frame order and loop speed (8–10 FPS reads as a subtle idle, 12 FPS suits reactions). Export as an animated WhatsApp sticker — the app squeezes under the 500 KB ceiling automatically.

When it doesn't quite loop

Frame 9 doesn't match Frame 1

Most common failure. The prompt asks for it but models sometimes ignore the loop rule. In GridSticker, drop the last frame and let it loop on frames 1–8 — the cycle still reads cleanly if frame 8 is close to frame 1.

Character drifted between frames

Hair color, outfit, or proportions changed mid-sheet. The Comic caricature style locks the face more aggressively than Chibi — try switching, or re-attach the reference photo. Generic descriptions in chat invite drift.

Frames are spaced unevenly

Drag the dividers in GridSticker's source preview to align with the actual cell boundaries. The 3×3 grid rarely comes back perfectly even — the divider handles handle the rest.

Animation looks jittery, not smooth

The model probably skipped frames or made big jumps. Try a different phrase (some loop better than others — a "Hi!" wave is gentler than a "Stomp!" recoil), or re-run the prompt unchanged. Second generation is often cleaner.

Text changed across frames

The prompt asks for the same phrase on all nine cells, but models sometimes paraphrase. Easy fix: erase the text after slicing — GridSticker's eraser handles it cell by cell, and the loop still plays clean without text.