1,000 thumbnails at 1280x720 on GPT Image 2.5: $4 to $142 by quality

A 1280x720 GPT Image 2.5 thumbnail is about $0.004 at low and $0.142 at max on Sume. Cost per image and per 1,000 for all five quality levels.

4 min readSume
All posts

At 1280x720, one GPT Image 2.5 output costs about $0.0040 at low and $0.1420 at max on Sume, so 1,000 thumbnails run from about $3.98 to about $142.01. The quality setting moves the bill by a factor of 36; the size barely does.

1280x720 is a legal size (1280 and 720 are both multiples of 16, and 921,600 pixels is inside the 655,360 to 8,294,400 range), so it is the cheapest honest 16:9 box for a thumbnail.

Price by quality

OpenAI lists image output at $30.00 per 1M tokens, and the same rate for gpt-image-2.5-flare, gpt-image-2.5-sunburst and gpt-image-2. The estimator in Sume's repo follows OpenAI's token formula. Sume bills the provider list price times 1.25, as this worked-examples post shows.

One 1280x720 image by quality, output tokens only (read 2026-10-06)
QualityProvider listSume (list x 1.25)Per 1,000 on Sume
low$0.0032$0.0040$3.98
medium$0.0074$0.0092$9.23
high$0.0284$0.0355$35.51
xhigh$0.0505$0.0631$63.11
max$0.1136$0.1420$142.01

Reading the table

The 'Sume' columns are list times 1.25 before any rounding on the job ledger and before input tokens, so read usage.cost on the response for the amount actually billed.

Quality is the lever, not size. If a thumbnail has no small text, medium is usually enough to judge a concept; keep high or above for the final pick. The xhigh versus max post covers the top two tiers.

What the table leaves out

If you send reference images for an edit, input tokens are added on top; the Sume docs say admission includes estimated input tokens. Flare and Sunburst share these rates, so the choice between them is speed against detail, not price (same price, same limits).

Check it on your own account

Do not budget from a blog table alone. GET /v1/images/models lists every model with its descriptors, and GET /v1/images/models/{id}/endpoints shows the pricing line for one model. Then run one small request and read usage.cost on the response, which is the billed amount in USD; the token counts in usage are reported as 0 on this route.

Run the test at the quality and size you plan to ship, because both move the price. A single test at low quality costs under a cent for most sizes here, so it is a cheap way to confirm your assumptions before a batch.

Sync, async and failures

The /v1/images route waits up to 30 seconds for the image. If the job finishes in that window you get the result directly; otherwise you get a 202 and an async job to poll. Write your client to branch on the status code, since larger sizes and higher quality are the likely cases for a 202.

Requests are strict. A parameter the chosen model does not list returns 400 unsupported_parameter, stream returns a 400, and provider.only or provider.order accept only sume. Treat a 400 as a bug in the request, not a transient error, and do not retry it unchanged.

Sources

Related posts

More in Pricing

All Pricing posts

Written by Sume