Introducing GPT Images 2.5 in the API and ChatGPT

ChatGPT Images 2.5—faster, sharper, smarter, with better tools for creating whatever you can dream of.

  • Faster image generation to keep your ideas flowing

  • Improved fidelity for more natural, recognizable images

  • Consistent details across multiple edits

  • Comment-based edits to change only what you want

Some ideas are easier to draw than describe.

Use Sketch to draw right in ChatGPT and show it exactly what you have in mind.

Just type “@ Sketch” in ChatGPT.

Have an idea but need help getting started?

Use templates for popular image formats like posters or merch, then add your message, design elements, or style to make it your own.

ChatGPT Images 2.5 is rolling out today to all ChatGPT, ChatGPT Work, and Codex users across desktop, mobile, and web.

We’re also introducing two new models in the API: GPT-Image-2.5 Flare brings the same quality, editing, and speed improvements, while GPT-Image-2.5 Sunburst adds precision for detailed creative work, with longer generation times.

Cost per token seems to have remained the same as gpt-image-2 - but we don’t know how many tokens these new models will consume in comparison?

Can it be better, in ChatGPT Work using both Astra and ChatGPT images 2.5? Well here’s the first taste.

If using ChatGPT, and using reasoning effort, you might observe an image generated - and then a “retry” or an edit. I’ve had this happening already in days past. One image is shown - that you have to copy and save fast. Then it is replaced irrecoverably. Attempts to curb this fail:

Or result in confusion:

It may be reasoning model “agentic” behavior attempting to loop and “improve” - but the edit based on image input is worse.

Using “instant”, this does not seem to happen. There’s a progress percentage indicator now you can watch.

Edit: this now near-identical initial that is retouched is now labeled “preview” over the image, so seems intentional behavior. I would encourage the former also be offered as there is nuance lost as much as there is enhancement gained in subtle differences when flashing between a captured “preview” at 100% before it disappears.


API is the same token pricing as gpt-image-2.

Actual pricing? Updated Sept 13:

There is a calculator for output images, not vision input.

It reveals that the token cost of generations are the same as gpt-image-2 at the low and high end of the quality API parameter - just spread over five steps of quality (of the same total token range) instead of three. “max” is the new “high” on this model.

Input tokens, “vision”, has a cost and cap that remains undocumented. The upgrade of using “sunburst” is like a “model branding” of the image input fidelity setting on gpt-image-1.5, giving better input with input tokens on the sent image.

Further API rollout:

  • No batch pricing (no batch support checkbox in model page)
  • No API token limits by tier shown in the model pages
  • (Don’t have them yet on API models endpoint, so my lack of platform org limits are expected.)

This GitHub update may be of interest.

Super useful, thank you! So they introduce xhigh and max for this one.

This is supported natively in Codex subscriptions!!! This is a big step change cause previously you had to route through a LLM to get it to generate using native tools.

a prompt

term-llm image 'Design an extraordinary, highly detailed, light-themed illustrated technical poster titled exactly “term-llm ULTIMATE CHEATSHEET”. This must feel like a collectible developer field guide, not a corporate dashboard: an elegant fusion of a vintage scientific atlas, a contemporary editorial infographic, intricate isometric technical illustration, and a beautifully typeset command-line reference. Square composition, extremely polished, visually spectacular, dense with discoverable details while remaining organized and readable.

ART DIRECTION
Use a warm ivory paper background with a very subtle fiber texture. Main ink is deep midnight navy. Accent palette: electric cyan, ultramarine, coral-red, saffron, mint green, and restrained violet. Use thin engraved linework, delicate stippling, tiny circuit traces, precise arrows, numbered callouts, miniature diagrams, and soft translucent watercolor washes. Avoid a dark terminal-dashboard look. Avoid generic gradients, stock icons, fake logos, mascots, glossy 3D blobs, or empty decorative space.

ILLUSTRATION SYSTEM
Build one continuous imaginative world around the reference text. Place an intricate central isometric terminal machine near the title: a compact mechanical console with layered windows, tiny gears, cables and glowing prompt symbols, feeding eight illustrated knowledge modules. Weave delicate colored paths between modules so the poster reads as a connected system.

Integrate these bespoke illustrations throughout without covering command text:
• START HERE: a miniature launch gantry where five command strips emerge like punched cards; tiny sparks, levers and a paper tape trail.
• CONTEXT + MODELS: a constellation/orbit diagram of model nodes around a prism, with files and clipboard sheets flowing into it.
• TUI KEYS: a jewel-like exploded mechanical keyboard corner, individual keycaps highlighted with precise callout lines.
• SLASH COMMANDS: a branching subway map whose stations are slash commands, with tiny directional arrows and interchange circles.
• SESSIONS + MEMORY: an impossible miniature archive library with stacked conversation cards, a search lens, labeled drawers and glowing memory threads.
• AUTOMATE + OPERATE: a clockwork automation factory containing a tiny server rack, scheduled clock, containers on a conveyor, process tree and usage gauge.
• IMAGES: a vivid little image-generation prism turning a text prompt into a fox, a city, a transparent icon and a cinematic landscape; show layers, alpha checkerboard, aspect-ratio frames and color swatches.
• SAFETY + POWER: a finely engraved control room with three approval gates, shield, tool belt, filesystem map and a large restrained power lever.

LAYOUT
Use a strong editorial hierarchy. Large expressive title across the top with the central terminal-machine illustration tucked into the composition. Arrange eight numbered modules in an asymmetric but balanced atlas grid. Each module has one compact command card plus its custom illustration. Commands must remain high-contrast, horizontal, and typeset in a crisp modern monospace. Use generous internal padding. Illustrations may overlap panel boundaries artfully, but never overlap text. Add tiny marginal annotations, coordinates, arrows and visual easter eggs related to shells, agents, models, memory and containers. The final result should reward zooming in.

TEXT FIDELITY
Every functional command and shortcut below must be copied exactly. Do not invent commands. Do not substitute visually similar characters. Capital letter O in Ctrl+O must not become zero. Keep lowercase term-llm exactly. Decorative micro-labels may be short real English words, but no gibberish.

TITLE
term-llm ULTIMATE CHEATSHEET
One terminal. Every model. Real tools.

01 · START HERE
term-llm chat @developer
term-llm ask “Explain this” -f code.go
term-llm ask “What changed today?” -s
term-llm exec “show disk usage”
term-llm edit “add tests” -f main.go

02 · CONTEXT + MODELS
-p provider:model choose model
-a agent or @agent choose agent
-f file.go attach file
-f file.go:10-50 attach lines
-f clipboard attach clipboard
–fast use fast model
–stats show usage
term-llm models -p chatgpt
term-llm auth login chatgpt

03 · TUI KEYS
Enter send
Shift+Enter newline
Ctrl+L model
Ctrl+R effort
Ctrl+S search
Shift+Tab approval
Ctrl+T MCP
Ctrl+P palette
Ctrl+O inspect
Ctrl+E details
Ctrl+N new
Ctrl+Y copy
Esc cancel
Ctrl+C twice quit

04 · SLASH COMMANDS
/model /effort /search /fast
/file /shell /worktree /mcp
/skills /inspect /compact
/resume /tree /handover /reload

05 · SESSIONS + MEMORY
term-llm sessions list
term-llm sessions search “query”
term-llm sessions show 42
term-llm sessions export 42 chat.md
term-llm memory search “retry policy”
term-llm memory status

06 · AUTOMATE + OPERATE
term-llm serve web --agent jarvis
term-llm serve jobs --agent jarvis
term-llm jobs list
term-llm jobs trigger JOB_ID
term-llm jobs runs
term-llm contain new jarvis
term-llm process list
term-llm process restart-all
term-llm usage -p chatgpt

07 · IMAGES
term-llm image “robot cat”
-p chatgpt:gpt-image-2.5-sunburst
-q low|medium|high|xhigh|max
–background transparent
–aspect-ratio 16:9 -s 2K
-i photo.png -o art.png

08 · SAFETY + POWER
–approval prompt|auto|yolo
–tools read_file,write_file,shell
–mcp playwright,filesystem
–read-dir PATH --write-dir PATH
-r resume latest session
! command run shell inside TUI

FOOTER
term-llm --help term-llm COMMAND --help
GitHub - SamSaffron/term-llm: LLM Swiss Army Knife for your Terminal · GitHub

PRIORITIES, IN ORDER

  1. A spectacular, original illustrated composition with real visual storytelling.
  2. Legible and accurate functional text.
  3. Rich detail and delightful visual discoveries at every zoom level.
  4. Cohesive light-theme color and typography.

Make this look like the definitive poster someone would frame above a workstation: joyful, intricate, technically literate and unmistakably handcrafted.’ --provider chatgpt:gpt-image-2.5-sunburst --quality max --background opaque --aspect-ratio 1:1 --size 4K --output /home/agent/Pictures/term-llm/term-llm-ultimate-cheatsheet-sunburst-illustrated.png --no-display --no-clipboard --no-spinner

:up_arrow: is sunburst at max…

:up_arrow: is flare at max.

:clap:

(And to think my terminal coding app has /help that will fit in 10 lines…in case I forget /remove and the listing and commands it brings up.)


Regression test of what was solved with gpt-image-xx.

ChatGPT, “medium” reasoning of default model, browser title bar indicating “ChatGPT Images 2.5”

It, elegance → bikini and bling

complete with scales, slitted eyes, forked tongue →

API: gpt-image-2.5-flare; Quality: high

Modified prompt just a bit:

Prompt

Create an brightly lit detailed and colorful image of a mythical creature that embodies the fusion of human and serpentine features. This creature stands upright like a human but snakes as arms, complete with scales and sinuous form. The creature’s upper body is humanoid, with a face that carries both human and snake-like traits, such as slitted eyes and perhaps a forked tongue. The skin is a blend of human flesh and snake scales, creating a seamless transition between the two forms. The creature exudes an aura of both elegance and danger, indicative of its dual nature. It stands ready in a defensive stance, showcasing its snake arms prominently, prepared to strike. The background is a dense, mysterious jungle that adds to the creature’s mystique. The brightness level must be such that all figures and objects can be clearly seen.

This is an exciting update. GPT Images 2.5 looks like a major step forward for creating and editing images with better quality and more control. It will be interesting to see how developers use these new capabilities in real-world applications.

It’s strange that the prompt didn’t reject the image generation by stating that it violates company policies and/or involves content of a sexual or erotic nature. :sweat_smile:

I can pump up the prompt language by front-loading it with some more language (which I suggest you do not send if you already didn’t like snake creature as woman), and the front end of AI model plus image skill model did not deny the prompt - because that language alone is suggestive but not really that strong when it is all creature-like:

Create an illustration of a curvaceous and buxom mythical female creature, Yuan-Ti type 2…

It is what comes out, when a non-gendering no-pronoun “creature” already was a scaly skin show of a woman, and what the new language might then amplify, that sets it off in AI vision inspection of what was generated:

We’re so sorry, but the image we created may violate our guardrails around nudity, sexuality, or erotic content. If you think we got it wrong, please retry or edit your prompt.

The equivalent on the API is a http error, with body message of moderation error of “output”, with details.

For feedback, we don’t know if they got it wrong - because there is no “take a peek anyway” button in ChatGPT.

You can increasingly prevent time wastes or strikes by either a “ensure no nudity nor sexuality” inclusion or followup and get your snakey character, or transform the art style significantly away from anything photographic - which this model will still make more realistic than an artists hand you instruct. (which I did with success, but this is not a photo gallery forum topic).

ChatGPT with reasoning may inspect and re-generate upon success if there is deviation from the prompt, for example going in and removing the extra text hung all over a picture if it was already expressed as unwanted. You can try to have it get a passing image made for you also, but you’d not want AI to keep getting safety error returns on your account because it can’t figure out the right prompting.

That makes me wonder whether two behaviors we are starting to see with Astra could be connected.

As some of us have noticed, Astra will at times offer two suggested options for what the user might do next. We are also now seeing reasoning inspect an image result and take another action when the result deviates from the prompt.

Could that same idea be applied when image generation produces a warning?

Instead of ending at the warning, Astra could perhaps offer one or two suggested next prompts that it believes would be acceptable.

That would still leave the decision with the user, but it would give them a way to continue rather than having to guess how to rewrite the prompt.

It might also be useful from a safety perspective. If the user selects an acceptable alternative, they can continue toward a permitted result. If they instead keep trying to steer back toward the disallowed request, that provides a much clearer indication of what they are actually trying to accomplish.

I am not saying Astra already connects these two behaviors, but since both pieces appear to exist separately, it seems like a natural place to connect them.

I added this block to ChatGPT custom instructions to test:

Imagegen skill

If an image creation call results in message for “We’re so sorry, but the image we created may…”, do not be satisfied with reporting this error. You must suggest improvements to the prompt or at least two ideas that could remove any moderation trigger. Help the user have success with adult-themed but safe non-sexual image generation.

I got my image first try, even after adding “photographic” and “temptress” and a few spikes. Maybe because I was bored and got four prompted snake head arms with little artifact - and the same armored bodice and loincloth look a bit more filled out.

You can leave the custom instruction of that style running if you can’t figure out re-prompting better than an AI.

I am increasingly impressed by OpenAI’s technological progress.

How to make sure the desktop ChatGPT/Codex app is using GPT Images 2.5?

Can we choose Sunburst from the desktop app?

I’d like to use it for UI etc but when I asked Codex to make sure to use 2.5, it said the generated PNGs contain this:

"softwareAgent": {
  "name": "gpt-image",
  "version": "2.0"
}

This indicates GPT Image 2, rather than the requested GPT Image 2.5 Sunburst, whose official identifier is gpt-image-2.5-sunburst

I’m on a Pro subscription, and this “fragmentation” and lack of certainty is frustrating and a discouraging me from renewing the $100 plan until the UX issues have been sorted out.

AFAIK,

The default routing bias: For everyday conversation, quick iterations, and chat prompts, ChatGPT defaults to the lighter, 50% faster Flare model. It dynamically escalates to Sunburst when it detects highly complex prompts requiring precise text rendering, intricate layout tracking, or heavy editing.

gpt-image-2.5-sunburst or gpt-image-2.5-flare can only be explicitly targeted in the API.

Visit the URL https://chatgpt.com/images/

Observe the title of the page in your browser’s titlebar, “ChatGPT Images 2.5”.

Get whatever OpenAI wants to deliver to you, including downgrades for capacity or new model trials.

Reasons for OpenAI to employ the newer model: quality parameters revised with lower token consumption means faster generation and less compute with passable results from training.