GPT Image Series
GPT Image 2.5
Five quality levels for text-to-image and reference editing, on the Flare and Sunburst lines, billed from token usage
POST
GPT Image 2.5
GPT Image 2.5 is the next generation of the official GPT Image line. It keeps the actions and parameters of GPT Image 2, widens quality from three levels to five, and re-scales the output usage of the levels that share a name. Two models are available,
A successful submission returns a
The shared
The estimated output tokens for every aspect-ratio / resolution / quality combination are in
Generated images are returned in
gpt-image-2.5 (the Flare line) and gpt-image-2.5-sunburst (the Sunburst line); their request shape, value ranges and billing are identical, and they differ only in the trade-off between speed and editing precision. Switching between them means changing the model field alone.
Available models
Both models carry the same rates, so the same set of parameters costs the same on either one; only the generated result differs. QWave never switches between them automatically.
Quick start
task_id. Retrieve the result with GET /v1/tasks/{task_id}, wait inline with Prefer: wait, or configure a webhook.
Request parameters
string
required
gpt-image-2.5 or gpt-image-2.5-sunburst.string
default:"generate"
generate— generate an image from textedit— edit reference images;image_urlsis required
string
required
Image description or editing instruction.
string[]
Reference image URLs. Required for
edit, up to 16 images.string
default:"1:1"
One of
1:1, 3:2, 2:3, 4:3, 3:4, 5:4, 4:5, 16:9, 9:16, 2:1, 1:2, 3:1, 1:3, 21:9, 9:21.string
default:"1k"
Output resolution:
1k, 2k or 4k.string
default:"low"
Quality level:
low, medium, high, xhigh or max. xhigh and max exist only on 2.5; sending them to gpt-image-2 returns 400 and is not downgraded silently. Quality has the largest effect on cost on this line — see Pricing below.integer
default:"1"
Number of images, fixed at
1. Each request returns one image.string
auto, opaque or transparent. Left to the model when omitted. A transparent background supports png and webp only.string
default:"png"
png, jpeg or webp.integer
JPEG/WebP compression,
0–100. Requires output_format set to jpeg or webp.string
default:"low"
Moderation level:
auto or low.callback_url, callback_events, Prefer: wait, Idempotency-Key and cost-ceiling headers are documented in Submit Task.
This line does not accept mask_url or seed — for masked inpainting, use gpt-image-2. Any other parameter returns 400 and is not billed.
Limits
Pricing
Billed from actual token usage across five dimensions: text input, cached text input, image input, cached image input and image output. Rates are inprice_config on GET /v1/models and in the console’s Model Market. What a single call actually cost is the cost field on the task response — an integer quota at 500,000 quota = 1 USD, not dollars.
Image input includes reference images. Cached rates apply only when the upstream response reports cache usage that can be settled. Otherwise, billing uses ordinary input and image-output usage.
Holds and settlement
Submitting a task places a hold for the estimated usage; the task then settles from actual usage and the difference is released. The estimate is built from:- Output — expected output tokens, looked up by aspect ratio, resolution and quality
- Text input — a floor of 32 tokens
- Reference images — 4,096 tokens each
medium around 2× low, high around 9×, xhigh around 16×, and max around 36×. Resolution adds another layer, with 4k several times 1k. Combined, per-image cost spans two orders of magnitude. Aspect ratio matters too: at the same quality, 16:9 uses fewer output tokens than 1:1.
Levels that share a name are not interchangeable across generations:
medium and high on 2.5 are about a quarter of the output tokens of the same-named levels on GPT Image 2, and max on 2.5 is what corresponds to high on GPT Image 2. When migrating from gpt-image-2, re-estimate against the ladder on this page rather than carrying over the old cost expectations.price_config.image_usage_reservation on GET /v1/models.
You are only billed for a successfully generated image. Failed and cancelled tasks, and tasks that return no usable image, are refunded in full. See Task status for the billing fields.
Response
Completed task
result.images, and expires_at is when that link is deleted (artifacts are kept for 7 days — see Task status). Failed and cancelled tasks release the hold in full. If an upstream success response contains no deliverable image, QWave marks the task as failed and refunds it.