How to use GPT Image 2.5 in ChatGPT and the API

Verified against OpenAI documentation on 2026-09-09

GPT Image 2.5 runs in two places, inside ChatGPT and behind two API models called Flare and Sunburst. This guide walks the ChatGPT tools first, then the API parameters and code, then the prompt habits that decide whether a result lands. Every step reflects the models as documented on 2026-09-09.

Using GPT Image 2.5 in ChatGPT

Nothing has to be switched on. The release went to every tier on desktop, mobile and web, so the tools below are already in your chat window.

  1. 01

    Find it

    Open a new chat and ask for an image, or attach a picture and describe the change you want. ChatGPT routes image work to the current image model on its own. There is no separate model picker for images and no setting to flip first. The same behaviour applies on ChatGPT Work and inside Codex, so the steps below do not change with your plan.

  2. 02

    Sketch a layout with @Sketch

    Type @Sketch in the message box to open a drawing surface. Draw a rough arrangement of what sits where. Boxes, arrows and stick figures are enough. The model reads the sketch as a visual reference rather than as art to reproduce, so it takes composition from your drawing and finish from your words. Reach for it when placement is the hard part of the request and describing it in a sentence keeps failing.

  3. 03

    Start from a Template

    Templates are prebuilt formats such as posters and product photos. Picking one loads a layout and a set of conventions that would otherwise take several rounds of prompting to pin down. You then change the subject, the copy and the colours from there. Templates get you to a usable first result fastest when you know the format you need but not the wording that would describe it.

  4. 04

    Comment on one region to edit it

    Pin a comment onto the part of the image you want changed and write the instruction inside it. That scopes the edit to the region you marked instead of inviting the model to reinterpret the whole frame. Use it for the small fixes: a hand, a sign, a colour that came out wrong. Broad instructions typed into the chat tend to redraw far more than you asked for.

  5. 05

    Roll back through version history

    Every edit adds a version, and you can step back to any earlier state. This matters because image editing degrades gradually. Three good edits and one bad one leave you worse off than you were, and by then you have lost track of which change did the damage. History lets you return to the last good version instead of regenerating the whole image from your original prompt.

  6. 06

    Share the image with its prompt

    You can share a finished image together with the prompt that produced it. Whoever receives it sees how the picture was made and can start from that wording rather than guessing at it. This is the practical way to hand a working prompt to a teammate. It also saves the copying and pasting that usually drops half the detail on the way.

Calling the API

Two endpoints cover everything. Generations makes a new image from text. Edits changes an image you supply, guided by your instruction and by any reference images you attach. Both endpoints take a model string, both accept the same quality settings, and both return an image rather than text.

The model parameter is where you choose speed or precision. Send `gpt-image-2.5-flare` unless you have a reason not to. Send `gpt-image-2.5-sunburst` when an edit has to be exact and you can afford the extra wait. Pin a dated snapshot in place of the alias when output has to stay stable across months, because the alias moves under you when OpenAI updates the model.

Quality has the largest effect on both cost and wait. It runs from low through max, with auto letting the model decide for you. Higher settings spend more image output tokens, and image output is the most expensive token type in the table below. Work at a low setting while you are still changing the wording. Raise it once the composition is right and you only want a better render of a picture you already like.

Your account tier sets how much you can push through per minute. Two ceilings apply at once, a token budget and an image count, and you stop at whichever one runs out first. Low tiers hit the image ceiling more often than the token ceiling, because a handful of high quality images can exhaust the per-minute image allowance long before the tokens run down.

API parameters

ParameterAccepted valuesNotes
model`gpt-image-2.5-flare`, `gpt-image-2.5-sunburst`, or a dated snapshotFlare is the default. Snapshots are `gpt-image-2.5-flare-2026-09-08` and `gpt-image-2.5-sunburst-2026-09-08`.
promptTextThe instruction. Also where any text you want rendered inside the image goes, in quotation marks.
nIntegerHow many images the call returns.
sizeOutput dimensionsLarger output spends more image output tokens, so size drives cost as much as quality does.
qualitylow, medium, high, xhigh, max, autoSix settings. auto hands the choice to the model.
output_formatImage file formatControls the encoding of the image you get back.

Endpoints

EndpointMethodWhat it does
/v1/images/generationsPOSTCreates an image from a text prompt.
/v1/images/editsPOSTEdits an image you upload, with reference images if you attach them.

Rate limits by API tier

TierTokens per minuteImages per minute
Tier 1100K5
Tier 2250K20
Tier 3800K50
Tier 43M150
Tier 58M250

Both ceilings apply at once. A request fails when either one is exhausted.

Generating an image with curl

A minimal call to the generations endpoint on the default model. Quality is set low here because this is a draft pass.

curl https://api.openai.com/v1/images/generations \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2.5-flare",
    "prompt": "A ceramic mug on a linen cloth beside a window. Morning light from the left, visible weave in the cloth, small chips in the glaze. Shot on a 50mm lens at a shallow depth of field. No text, no people.",
    "n": 1,
    "size": "1024x1024",
    "quality": "low",
    "output_format": "png"
  }'

Editing with reference images in Node

An edit on the precision model. The first file is the image being changed and the second is the reference the subject has to be preserved from.

import fs from 'node:fs';
import OpenAI from 'openai';

const client = new OpenAI();

const result = await client.images.edit({
  model: 'gpt-image-2.5-sunburst',
  image: [
    fs.createReadStream('scene.png'),
    fs.createReadStream('subject-reference.png'),
  ],
  prompt: [
    'Replace the background with a plain grey studio backdrop.',
    'Keep the person exactly as they appear in the reference photo, including hair, skin texture and the fold of the jacket.',
    'Leave the product label untouched. Do not re-render the text on it.',
  ].join(' '),
  size: '1024x1024',
  quality: 'high',
  output_format: 'png',
});

fs.writeFileSync(
  'edited.png',
  Buffer.from(result.data[0].b64_json, 'base64')
);

Generating on images25 in three steps

If you do not want an API key or a subscription, this site runs the same models for you in the browser.

  1. 01

    Write the prompt

    Describe the scene first and the details second. Put any words you want printed inside the image in quotation marks. Say what you do not want as well as what you do. The wording you would use in ChatGPT works here unchanged, because the model underneath is the same one.

  2. 02

    Set quality and attach references

    Pick a quality setting to match the stage you are at. Low settings are for finding the right composition and cost the least to run. Attach a reference image when a specific face, product or style has to carry over. The reference does more for consistency than any amount of extra description.

  3. 03

    Refine or download

    Read the result against your prompt and change one thing at a time. Rewriting everything at once hides which change fixed the picture. When an image is right, download it. Keep the prompt with it, because the wording is the part you will want again next week.

Writing prompts that land

Establish the scene before you get to the details. The model reads outward from the context you set, so the first sentence should say what kind of picture this is and where it happens. A prompt that opens with a stray detail spends its best attention on that detail. A prompt that opens with the setting gives every later instruction somewhere to attach.

Put any text that must render exactly inside quotation marks, and say plainly what it reads. Guessing is what produces mangled lettering. Keep rendered text short as well, because short strings are where these models are most reliable. A word or two on a sign lands consistently. A full sentence on a poster is a gamble no matter how clearly you ask.

Name materials instead of asking for realism. The word realistic tells the model almost nothing, because every picture it makes is realistic by its own reckoning. Visible pores, a loose fabric weave, chipped paint, fingerprints on glass: these are instructions it can act on. Specific nouns beat general adjectives every time in this kind of writing.

Name a camera or a medium when you want a particular look. A lens length, a film stock, a printing process or a painting technique carries a whole set of conventions with it, and the model already knows those conventions. That single phrase does more work than a paragraph describing the same effect in your own words.

Say what to avoid as well as what to include. Exclusions are cheap to write and they prevent the most common surprises. No text, no watermark, no extra hands, no crowd in the background. Each one closes off a failure you would otherwise have to fix in a second pass.

Change one thing at a time when you iterate. A rewritten prompt returns a different picture, and you learn nothing about which edit mattered. This is craft advice rather than documented model behaviour, but it holds across every image model worth using, and it holds here.

Common failures and how to fix them

Text came out wrong. The fix is almost always shorter text and firmer wording. Put the exact string in quotation marks and state that it is the text on the sign or the label. Cut it to a few words if you can, because reliability drops as the string gets longer. If the layout matters, sketch it in ChatGPT rather than describing where each word sits.

The reference subject drifted. This shows up as a face that is nearly right and a person who is nearly someone else. Move the request to the precision model, since preserving reference subjects is what it is built for. Then name the features that must survive rather than asking for the person to be kept. Hair, jaw, skin texture and clothing folds are the details that go first.

The edit changed too much. A general instruction invites a general redraw, so scope it. In ChatGPT, pin a comment on the region instead of typing into the chat. In the API, state what must stay untouched in the same prompt that states what changes. If the result is still too broad, roll back through version history and try a narrower instruction rather than editing the damaged image again.

Results drift between runs. Two causes are common. You may be calling the floating model alias while OpenAI updates the model underneath, which a dated snapshot fixes. Or your prompt may be leaving too much unsaid, in which case the model fills the gaps differently each time. Add the missing constraints and the spread narrows.

Frequently asked questions

Can I use an image from the web as a reference?

On images25, yes. Paste a public image link instead of uploading a file and the studio fetches it for you. Through the API you send the file itself to the edits endpoint rather than a URL, so a link has to be downloaded first. Either way the model reads the actual pixels.

Do I need to turn GPT Image 2.5 on in ChatGPT?

No. The release reached ChatGPT, ChatGPT Work and Codex users at every tier on desktop, mobile and web at once. There is no image model picker and no feature toggle to find. Ask for an image or attach one for editing, and ChatGPT routes the request to the current image model without any configuration from you.

Which model should I call, Flare or Sunburst?

Start with Flare. It is the default, it is the fast one, and it handles ordinary generation well. Move a request to Sunburst when precision in an edit matters more than the wait, such as a retouch that must not disturb a logo or a face. Both cost the same per token, so the trade is time rather than money.

What does the quality parameter actually change?

Quality runs across low, medium, high, xhigh, max and auto. Higher settings spend more image output tokens, which raises both the cost and the wait for a call. The auto setting lets the model choose. A practical habit is to iterate on wording at a low setting and only raise quality once the composition is already what you want.

How do I attach reference images through the API?

Use the edits endpoint rather than generations, and send your files in the image field. The first file is the image being changed, and further files act as references. Then name in the prompt which features have to survive the edit. Naming specific features works better than a general instruction to keep the subject unchanged.

Why does my rendered text keep breaking?

Long strings are the usual cause. Rendered text is most reliable at roughly one to five words, and reliability falls away past that. Put the exact wording in quotation marks and say what surface it appears on. If a layout with several text elements is failing, sketch the arrangement in ChatGPT instead of describing the positions in prose.

What happens when I hit a rate limit?

Requests stop until the minute rolls over. Two ceilings apply at the same time, tokens per minute and images per minute, and either one can stop you. The table above lists both for each tier. Lower tiers usually meet the image ceiling first, since a small number of high quality renders can use the whole per-minute allowance.

Should I call the alias or the dated snapshot?

Call the alias while you are experimenting, because it always points at the current model. Call the dated snapshot in production when output has to stay consistent over time. The snapshots for this generation are `gpt-image-2.5-flare-2026-09-08` and `gpt-image-2.5-sunburst-2026-09-08`. Pinning one means an update to the model cannot change your results without you choosing it.

Can I use these models without a ChatGPT subscription?

Yes. The API bills per token against a developer account and needs no ChatGPT plan. Third-party hosts such as fal.ai serve the same models at their own per-image prices. This site is a third option, running the models in your browser with no key setup. images25 is independent and is not affiliated with OpenAI.

Keep reading

Sources