Home → Guides → GPT Image 2.5, measured

GPT Image 2.5, measured

The suffix on the model name is the resolution switch — not the size parameter. Measured across 76 billed image calls.

The short version

What each model name actually delivers

Every row below was measured on 2026-09-13 by sending the request and reading the width and height straight out of the returned PNG header. This is the part that is not in anyone’s documentation.

Model suffixsize requestedWhat came back
(none)1024×10241254×1254upscaled to fill the cap
(none)1536×10241536×1024exact
(none)1920×10721678×937downscaled to the cap
(none)3840×21601672×941downscaled to the cap
-1k1024×10241024×1024exact
-1k1536×1024—rejected: cross-tier resolution not supported
-2k2048×20482048×2048exact
-2k1920×10722048×1152snapped to the tier's aspect
-4k3840×21603584×2016capped at the family's long edge
-4k2160×38402016×3584capped at the family's long edge

The rule behind the table: the suffix sets the long edge, and size only chooses the aspect ratio within that tier. Once you know that, the odd-looking results stop being odd — -2k asked for 1920×1072 returns 2048×1152 because 2048 is simply what that tier’s long edge is.

The trap. The plain model name accepts any size you send and returns HTTP 200 every time — it just quietly resizes to its ~1.57 MP budget. If you are paying for a 4K tier and calling the plain name, you are paying for pixels you are not receiving. Use -4k.

What it costs here

TierTypical deliveryPer imageCredits deducted
1K1024×1024 · 1254×1254 $0.05360.1072
2K2048×2048 · 2048×1152 $0.08040.1608
4K3584×2016 · 2016×3584 $0.10720.2144

Flat per image. There is no token arithmetic to do, no quality multiplier, and no subscription — the balance is drawn down by the amount in the right-hand column and the credit-to-dollar rate is fixed.

How long it takes

Images are generated synchronously here: one request, one response, no polling queue. That also means the connection stays open for the whole generation, so these durations are what your client will actually wait.

ModelCallsAverageRange
gpt-image-2.52836.2 s19–170 s
gpt-image-21361.9 s21–337 s
gpt-image-2.5-flare1035.2 s22–47 s
gpt-image-2.5-flare-4k534.6 s29–44 s
gpt-image-2.5-sunburst-4k335.0 s33–36 s
gpt-image-2-2k340.9 s35–50 s
gpt-image-2-4k355.3 s46–60 s
gpt-image-2.5-flare-2k331.4 s22–39 s
gpt-image-2.5-sunburst330.4 s25–40 s
gpt-image-2.5-sunburst-2k233.1 s31–35 s
gpt-image-2-1k147.5 s47–47 s
gpt-image-2.5-sunburst-1k127.2 s27–27 s
gpt-image-2.5-flare-1k121.4 s21–21 s

Across everything measured, the fastest call finished in 19 seconds and the slowest took 337. Budget for roughly half a minute per image and set your client timeout well above it — a 30-second default will cut off perfectly good requests. The gpt-image-2 rows are a baseline from the previous generation, which is still available here; rows with one or two calls are there for completeness, not as a benchmark — read the call count before the average.

flare, sunburst, and plain 2.5

Three names exist and they are not interchangeable:

What we have not done is a controlled comparison of image quality between flare and sunburst. We measured price, delivered resolution and latency — not which one draws hands better. If output style matters to your use case, generate the same prompt through both and judge it yourself; at these prices that costs a few cents.

Calling it

from openai import OpenAI

client = OpenAI(api_key="YOUR_KEY", base_url="https://api.apiclan.us/v1")

resp = client.images.generate(
    model="gpt-image-2.5-flare-4k",   # the suffix is what sets resolution
    prompt="a red ceramic cube on a white studio background",
    size="3840x2160",                 # this only chooses the aspect ratio
    n=1,
    response_format="b64_json",
)

Two details that will save you an afternoon. Ask for b64_json rather than url — the URL form points at temporary upstream storage that can expire before you finish writing the download code. And send image requests to api.apiclan.us: a 4K generation routinely runs past the 100-second proxy timeout on the main domain.

When not to use it

Start using it

No subscription, no monthly minimum, no sales call. Top up with USDT and spend what you use — 1 USDT gives you 2 credits of API balance.

Read the 30-second quickstart

Prices quoted on this page are regenerated automatically from live billing data. Third-party terms are quoted from that party's own published documentation.