Unit Cost Desk

What a generated image costs to serve, and who absorbs it

Two models, one token rate

OpenAI ships GPT Image 2.5 as two models. One is the small, fast one; the other is the base model and is genuinely higher quality.

They bill at the same rate — $30 per million image output tokens for both. The quality model is slower, not dearer.

That single fact invalidates the obvious business model, and the obvious business model is what most interfaces built anyway.

Charging a premium invents a cost

If you put a multiplier on the quality model, you are charging for something your own invoice does not contain. Users work this out — the rate card is public — and what they conclude is not "this is expensive", it is "this is arbitrary".

We encode it as a named constant with the reasoning attached, because the temptation to add a multiplier comes back every time somebody looks at the pricing page fresh:

/**
 * Both models bill at the same token rate, so the quality model costs us
 * exactly what the fast one does. It earns its money by being a reason to
 * hold a plan, not by carrying a multiplier.
 */
export const SUNBURST_COSTS_THE_SAME = true;

A test pins it. If somebody edits the rate table so the two diverge, the test says why that is wrong rather than just going red.

What the quality model is actually for

It is a reason to hold a plan, which is a different lever from a per-unit price.

Rationing it costs us nothing — that is the whole point. The dials we ration for money are resolution and quality tier, because those genuinely move the invoice. The model is rationed because it is what a subscription is for. A model anyone can select for free is not a reason to hold anything.

Stating the two reasons separately keeps the pricing page honest. One paragraph says "this costs us more"; the other says "this is what the plan buys". Collapsing them into a single "premium tier" is where pricing pages start sounding like they are hiding something.

What actually differs, for a user

Latency, mostly. The fast model is roughly comparable in quality to the previous generation at about half the latency. The base model takes noticeably longer at the top tiers and is the one to reach for on dense typography, small faces, and anything where the failure mode is "nearly right".

Which means the honest interface advice is not "use the better model", it is use the fast one until it fails you, then switch and compare the same prompt. That only works if the interface tells you which one ran — which, notably, the consumer chat products do not.

We put the two side by side, with the same prompt on each, at gptimage25.top/flare-vs-sunburst.

More notes