OpenAI shipped GIFs in ChatGPT Images 2.6 on Nov 4. Out of the box they're about 2 second loops, and Instagram won't take a GIF at all. These prompts and four small tools get you from prompt to a post that loops clean.
Read https://jay-burnett-packs.vercel.app/move/agent.md and set this up for me.It reads agent.md: install, test and undo steps. Want it by hand instead? Your email below opens the full page.
You're in, the files are below.
Straight from OpenAI's posts and help pages on launch day. Two things are new for regular users:
Type a prompt, or upload a still or a sketch, and ask for an animation. You can change the speed and save the GIF. It can't edit a GIF you upload.
Save a photo once with a name, then call it with @name in any later chat. No uploading it again.
On launch day OpenAI said GIF creation was rolling out, so some accounts don't have it yet. The sprite sheet tool below works without it.
OpenAI's own prompting guide says to give the subject a starting pose to return to and say whether the camera moves. That turns into four parts:
Who or what, on a plain background.
Where it starts and where it has to end up.
One action only. Two at once is where it falls apart.
Camera locked off, and the last frame matches the first.
Logo, a reaction GIF of you, a product spin, sketch to character and a storyboard beat. Plus the fix line for when it doesn't loop.
# GIF prompts for ChatGPT Images 2.6 (and a fallback for any image model)
Checked against OpenAI's own pages on Nov 4, 2026:
- Release notes: https://help.openai.com/en/articles/6825453-chatgpt-release-notes
- Images in ChatGPT: https://help.openai.com/en/articles/11084440-images-in-chatgpt
- Prompting guide (looping GIFs): https://developers.openai.com/api/docs/guides/image-prompting
What OpenAI says works: ask for a looping animation, or upload a still or a sketch and ask ChatGPT to animate it.
Open the GIF to change its speed, then save it. It can't edit a GIF you upload, so keep the still you started from.
Saved reference photos get a name and you call them with @name in later chats.
GIFs were still "rolling out" on launch day, so if you don't see one come back, use the sprite sheet fallback at the bottom.
## The 4 parts of a GIF prompt that loops
OpenAI's guide: give the subject a starting pose to return to, say whether the camera moves, and ask for a smooth loop.
1. Subject and look: who or what, plain background.
2. Start pose: where it starts AND ends.
3. One motion: one action only. Two actions at once is where it falls apart.
4. Camera and loop: "camera locked off" plus "the last frame returns to the first pose so it loops smoothly".
## Copy and paste
### Logo or brand mark
Animate my logo (attached) as a looping GIF. Start and end on the logo exactly as it is. One motion: a slow shine passes left to right across it. Camera locked off, plain background in the logo's main color. The last frame matches the first so it loops smoothly.
### Reaction GIF of you (save your photo first)
Save my photo as a reference named @me. Then: make a looping GIF of @me giving a slow nod and a small smile. Start and end on a neutral face looking at the camera. Shoulders up, camera locked off, plain light gray background. The last frame returns to the first pose so it loops smoothly.
### Product spin
Make a looping GIF of this product (attached) on a plain white table. Start and end on the front of the product. One motion: it turns a full 360 degrees at an even speed. Camera locked off at eye level, soft studio light. The last frame matches the first so it loops smoothly.
### Sketch to character
Turn my sketch (attached) into an animated character GIF. Keep the shapes and colors of the sketch. Start and end with the character standing still facing forward. One motion: it waves once with its right hand. Camera locked off, white background. The last frame returns to the first pose so it loops smoothly.
### Storyboard beat for a video
Make a looping GIF for a storyboard: a coffee cup on a desk, steam rising. Start and end on the same frame. Only the steam moves. Camera locked off, top-down at 45 degrees, morning light from the left. Loop smoothly.
## If it doesn't loop clean
Run `python3 loopcheck.py your.gif` and watch it loop a few times. The score is a quick check of how far the last frame is from the first: over 4 usually shows as a hitch on repeat. Reply in the same chat:
"Make the last frame match the first frame exactly, same pose and same position, so it loops without a jump."
## Fallback: a sprite sheet from any image model
Works in ChatGPT before GIFs reach your account, or in any other image tool. Ask for one image with frames in a grid, then `bash sheet2gif.sh sheet.png 3x2 8`.
The grid is what makes it work, so keep that part word for word:
One image split into a 3 by 2 grid of 6 equal panels, no borders or gaps between them, no text. Each panel is the next frame of one animation, read left to right, top row then bottom row. [SUBJECT], same size and position in every panel, camera locked off, plain background. Across the 6 panels: [ONE MOTION]. Panel 6 leads straight back into panel 1 so it loops.
## Posting it
Reels, Shorts and TikTok want video, not GIFs. `bash gif2reel.sh your.gif 8` makes a 1080x1920 MP4 that loops the GIF for 8 seconds without cropping it.
For a website, email or a Slack emoji, `bash gifshrink.sh your.gif 1000` makes it small enough (under 1000 KB by default).
Plain ffmpeg and Python. Nothing to sign up for.
A quick check of how far the last frame is from the first. Under 4 usually loops clean, over 10 is usually a jump you'll see on every repeat. Watch it loop too.
Loops the GIF into a 1080x1920 video for Reels, Shorts and TikTok. No cropping, a blurred copy fills the space.
Steps size and frame rate down until the GIF fits a limit, 1000 KB by default.
Turns a 3 by 2 sprite sheet from any image model into a GIF. For accounts that don't have GIFs yet.
python3 loopcheck.py my.gif # seam score, under 4 usually clean
bash gif2reel.sh my.gif 8 # 8 second vertical video
bash gifshrink.sh my.gif 1000 # under 1000 KB
bash sheet2gif.sh sheet.png 3x2 8 # sprite sheet to GIF