AI News

ChatGPT Can Make GIFs Now: Images 2.6 vs. 2.5

Kingy tested: Six model-attributed API still outputs, one native API GIF and four separate ChatGPT web outputs on November 4, 2026. One first attempt per request; AI visual review.

OpenAI’s GPT Image 2.6 Sunburst and 2.5 Sunburst both got every requested text string right in our first thumbnail, product graphic and product-edit attempts. Both changed an orange bottle to turquoise and corrected its price. The 2.6 API also returned a real, two-second animated GIF at the requested 512 × 512 size.

The comparison comes with a price difference. Based on returned token usage and OpenAI’s standard list rates, our three 2.5 still-image requests cost an estimated $0.044622, compared with $0.124542 for the three 2.6 requests. The 2.6 GIF added an estimated $0.055880. These are usage-derived calculations, not reconciled invoices; credits, taxes and final billing may differ. The newer model used more output tokens in each matched still-image request, even though the listed token rates were the same.

We ran each request once. That makes this a useful look at the files and bills a creator might encounter, not a general ranking of the two models. We also tested ChatGPT’s web interface separately. It produced a downloadable GIF, but did not disclose which image model generated it.

The test at a glance

On November 4, 2026, Kingy sent matching briefs to the explicitly requested API IDs gpt-image-2.5-sunburst and gpt-image-2.6-sunburst. Each produced one thumbnail, one product graphic and one edit of its own product graphic. We then requested one native GIF from 2.6. Separately, Codex operated a signed-in ChatGPT web account through the same four tasks. All 11 requests returned assets; we made no reruns.

Task 2.5 Sunburst API 2.6 Sunburst API
Thumbnail All four target strings correct; requested dimensions All four target strings correct; requested dimensions
Product graphic All four target strings correct; requested dimensions All four target strings correct; requested dimensions
Product edit Body and price changed; four target strings correct Body and price changed; four target strings correct
Native GIF Not tested; a native 2.5 GIF interface was not documented in the material we reviewed 512 × 512 GIF returned; 10 frames at 200 ms each
Three still requests 39.752 seconds combined; $0.044622 calculated 48.739 seconds combined; $0.124542 calculated

Each still output contained four target strings, giving 24 correctly rendered target-string instances across the six API images by visual review. This count does not score visual design, brand fidelity or every possible instruction. The API times are request elapsed times for this run, not a latency distribution or a speed guarantee.

The still requests used medium quality and matching prompt and size parameters. Complexity was omitted; the documented 2.6 default was high, while an equivalent 2.5 control was not exposed in our setup. We did not equalize hidden computation. The 2.6 identifier is an undated alias, and the responses did not echo a resolved snapshot; the requested IDs, generation IDs and returned usage were retained.

The thumbnail: both got the words right

GPT Image 2.5 Sunburst thumbnail from the API test.
GPT Image 2.5 Sunburst thumbnail from the API test.
GPT Image 2.6 Sunburst thumbnail from the API test.
GPT Image 2.6 Sunburst thumbnail from the API test.

Our brief requested a bright orange reusable water bottle on the right, a charcoal screw cap, a turquoise circular badge and a dark navy background. On the left, the model had to print three lines exactly: “MAKE IT MOVE”, “3 TASKS” and “$0 EXTRA?”. The bottle itself had to read “KINGY LAB”. We requested a finished 1536 × 864 image with no additional objects or text.

Both returned images at exactly 1536 × 864, and both rendered the four target strings correctly in our visual review. That includes the dollar sign and question mark, details that can turn a usable thumbnail into a correction job if they go missing. Both produced the requested bottle-and-type layout.

The apparent tie on text is not a tie on every design detail. The 2.5 bottle’s badge acquired a white chevron-like mark. The 2.6 badge was plain. The brief called for a small turquoise circular badge and no other text or objects; an invented mark is a problem if the circle stands in for a real brand asset. A model can render the headline accurately while improvising elsewhere in the same picture.

The 2.5 request took 13.538 seconds and its returned usage priced to $0.009045. The 2.6 request took 16.602 seconds and priced to $0.028365. Each is one observation, including network and request processing, not enough to establish which model will be faster for a typical user.

The product image: readable copy, drifting hardware

GPT Image 2.5 Sunburst product graphic from the API test.
GPT Image 2.5 Sunburst product graphic from the API test.
GPT Image 2.6 Sunburst product graphic from the API test.
GPT Image 2.6 Sunburst product graphic from the API test.

For the square graphic, we asked each model to center the orange bottle on pale gray. The bottle had to carry “KINGY LAB” and “750 mL”; the image needed “REFILL. REPEAT.” above it and “$29.00” below. Both outputs arrived at the requested 1024 × 1024 and all four strings were visually correct.

The 2.5 product bottle had a white mountain-shaped mark in its badge, different from the mark in its thumbnail. Its thumbnail used a side loop on the cap, while the product image had a top handle. The 2.6 thumbnail had a handle and its product graphic did not. Letter color also drifted across independent generations. Both models retained the broad orange-bottle concept, but neither pair established a single, identical product design.

These were independent prompts: we did not provide the thumbnail as a reference for the product graphic. The result is evidence about generating a consistent concept from repeated descriptions, not a measurement of reference-image fidelity. For a real listing, a recognizable bottle is not enough if its handle, badge or printed details differ from the product customers will receive.

The practical fix is to begin with an approved product reference when the workflow supports one, then check the actual output against it. We did not test whether either model would preserve a supplied reference across a larger campaign. A single clean product image should not be treated as proof that the next image will depict the same SKU.

The edit: both changed the price and body color

GPT Image 2.5 Sunburst edited product graphic.
GPT Image 2.5 Sunburst edited product graphic.
GPT Image 2.6 Sunburst edited product graphic.
GPT Image 2.6 Sunburst edited product graphic.

We fed each model its own product image and asked it to change only two things: make the bottle body turquoise and replace “$29.00” with “$24.00”. The prompt asked it to preserve the charcoal cap, turquoise badge, shape, camera angle, lighting, background, headline, bottle lettering and every element’s position.

Both edits made the two requested changes and retained the four target strings. The 2.5 edit preserved the main layout, including the existing badge mark. Both edits showed shifts in highlights or texture, while the 2.6 edit also preserved the main composition. Neither result should be described as proof that the protected regions stayed pixel-identical.

The price edit is especially useful because it combines a visual change with exact text. It also shows why “change only” deserves inspection. Color, highlights and neighboring elements interact; a badge that stays turquoise can become harder to distinguish when the bottle becomes turquoise too. For a commercial graphic, compare the edited image with its input at full size, not just the new price at thumbnail scale.

Both edits received their own model’s preceding product image. That makes them a realistic local edit test, though it means they did not start from one identical source image. A controlled shared-reference edit would answer a different question and remains unrun.

The native GIF: a 2.6 API output, with no 2.5 comparator

The native GIF returned by GPT Image 2.6 Sunburst.
The native GIF returned by GPT Image 2.6 Sunburst.

We requested a 512 × 512, two-second loop of the bottle rocking left and right against a fixed pale-gray background. The prompt asked for the bottle to return to its starting pose, keep “KINGY LAB” and “750 mL” readable throughout, and contain no other text or objects. We explicitly requested an animated GIF rather than a still image, sprite sheet, video or coded animation.

The API returned a GIF89a file at 512 × 512. Inspection found 10 unique frames at 200 milliseconds each, giving a two-second cycle set to loop infinitely. Both requested text strings remained visible in the frame contact sheet. The badge gained an unrequested white mountain-shaped mark, the motion steps were uneven, and the transition from the final left-leaning pose back to upright was noticeable. This was not a seamless loop. The request took 17.594 seconds, and returned usage priced to $0.055880 at the published standard token rates. Inspect the downloaded loop before using it as a finished asset.

We did not run a native 2.5 GIF request because a corresponding native interface was not documented in the material reviewed. That is a documentation and test-scope limitation, not a failed 2.5 generation. We also did not assemble a fake 2.5 comparator with code. A workflow using a still-image model plus a separate animation tool could be compared on its own costs and time, but it would be a different experiment.

OpenAI’s image generation guide documents GIF output through the image generation endpoint, with controls for frame count and duration. It also documents SVG generation. The guide says edits cannot output GIF or SVG, so the native generation and edit paths have different output options. Check the current documentation and model limits before building a production integration.

The separate ChatGPT web test

The native GIF returned in the separate ChatGPT web test.
The native GIF returned in the separate ChatGPT web test.

Before the API comparison, Codex used an existing signed-in ChatGPT subscription to submit four frozen requests without a person stepping in during generation. The web interface returned a thumbnail, product graphic, targeted edit and downloadable native GIF. Its visible menu did not identify a 2.5 or 2.6 image model, so none of those four web outputs can be assigned to a specific version.

The web thumbnail and product graphic each rendered all four target strings correctly. In the web edit, the bottle became turquoise and the price changed to $24.00 while the main composition stayed close; highlights shifted and the badge lost contrast against the body. The product source was 1254 × 1254, and the edit remained that size. We did not specify a new pixel size in the edit instruction.

The web GIF’s original file was GIF89a with 12 distinct decoded frames, each lasting 170 milliseconds: 2.04 seconds in total, set to loop infinitely. The bottle rocked, but its steps were uneven and the last-to-first transition had a noticeable pose change. A white crown-shaped mark appeared in the badge. The downloaded GIF measured 358 × 358, below the requested 512 × 512.

The web stills also missed their requested pixel dimensions: the thumbnail was 1672 × 941 rather than 1536 × 864, and the product image was 1254 × 1254 rather than 1024 × 1024. The first observed assets appeared 38.149, 44.437, 38.646 and 38.648 seconds after the respective submissions. These are upper bounds that include observation delay. For the GIF, the download was playable at that observation while the full conversational reply still showed Stop.

The web run used an existing subscription. No per-output subscription cost or attributable usage receipt was shown, so we cannot assign a dollar amount to its four files. Its timing and dimension results should not be merged into the API model comparison.

What the seven API requests cost

Equal Standard image-output token prices for GPT Image 2.5 Sunburst and GPT Image 2.6 Sunburst, before usage differences

The following calculations use the token counts returned with each API response and OpenAI’s standard list rates. They exclude unverified adjustments for credits, tax and final invoice reconciliation. Times are the elapsed time for each individual request.

Request Text input tokens Image input tokens Image output tokens Seconds Calculated cost
2.5 thumbnail 129 0 280 13.538 $0.009045
2.6 thumbnail 129 0 924 16.602 $0.028365
2.5 product 109 0 439 11.593 $0.013715
2.6 product 109 0 1,449 15.061 $0.044015
2.5 edit 100 1,024 439 14.621 $0.021862
2.6 edit 100 1,024 1,449 17.075 $0.052162
2.6 GIF 166 0 1,835 17.594 $0.055880

All seven requests together calculate to $0.225044. The difference in the paired stills comes from usage, particularly output tokens, rather than a higher listed token rate for 2.6. For example, the product requests each used 109 text input tokens, while the responses reported 439 output tokens for 2.5 and 1,449 for 2.6.

At our November 4 check, OpenAI’s pricing page listed standard rates of $5 per million text input tokens, $8 per million image input tokens and $30 per million image output tokens for the relevant Sunburst models. Cached inputs have different rates. This is not a flat per-image price: prompt, input image and output usage affect the calculation. Nor does one set of returned token counts predict the cost of every image at these settings.

Can the work happen without a human in the loop?

Yes, within each authorized test cohort: Codex submitted the requests, retrieved the assets and checked the results without a person intervening between generation requests. The API returned all seven requested outputs and the separate web session returned four. A workflow can automate file checks, preserve request IDs and usage, and flag mismatches for further inspection.

A completed file still needs a standard for acceptance. Dimensions can be checked mechanically. A decoder can count frames and read their delays. The model’s exact text, invented marks, product identity and visual transitions require image assessment against the brief. Our visual judgments were made by AI, not a human panel. The observed seam defect in the web GIF demonstrates why an automatically downloaded file should not automatically be treated as approved creative.

OpenAI documents 2.6 Sunburst, 2.6 Flare and 2.5 Sunburst. This test used Sunburst, not Flare. For the launch details and documented capabilities, see our GPT Image 2.6 launch coverage. Our earlier Images 2.5 vs. Nano Banana 2 comparison records separate, dated coverage.

Download the exact prompts, API usage receipts, request IDs and file hashes as a ZIP containing JSON. The API outputs above are the retained first results; no failed output was replaced.

Receipt2026-11-04
Tested
11 first outputs: 6 still generation/edit outputs across two named API models, one 2.6 API GIF and 4 separate ChatGPT web requests; no reruns.
Runner
Codex browser controls; Python 3.14 direct Image API; ffmpeg/ffprobe and Pillow for file inspection.
Cloud side
Requested gpt-image-2.5-sunburst and gpt-image-2.6-sunburst; ChatGPT web image model undisclosed.
Settings
Medium API quality; matched still prompts and dimensions. 2.6 complexity omitted (documented high default). One attempt per cell.
Grading
AI visual review found 24/24 target-string instances across 6 API stills. Both GIFs decoded and inspected; no human panel.
Cost
US$0.225044 calculated from seven API responses and Standard token rates; credits, tax and final invoice unreconciled. Web subscription use unmetered.
Dates
run 2026-11-04 · checked 2026-11-04

Limits

One attempt per cell cannot establish reliability, average speed or a general quality winner. The API requests matched visible quality, prompts and dimensions, but complexity controls and hidden computation were not equivalent; the 2.6 alias did not disclose a resolved snapshot. The two edit tasks used different source images. Native 2.5 GIF output, shared-reference identity preservation, repeated trials and invoice reconciliation remain untested. Keep the original files and usage receipts alongside any production evaluation, then inspect the full-size output and animated loop before release.

Sources