720p thumbnail list prices: GPT Image 2.5 low vs Google Banana lines

For a 1280x720 image, GPT Image 2.5 low is about $0.0032 at OpenAI's list rate. Google lists $0.0336 (Flash Lite Image) and $0.045 (Flash Image 0.5K).

4 min readSume
All posts

At vendor list prices, a 1280x720 image costs about $0.0032 on GPT Image 2.5 at low and $0.0074 at medium, against $0.0336 for Gemini 3.1 Flash Lite Image at 1K and $0.045 for Gemini 3.1 Flash Image at 0.5K. GPT Image 2.5 low is the cheapest by roughly a factor of ten, with the caveat that low is a lower-effort render.

The sizes are not identical: Google's tiers are named by resolution tier, not by a 1280x720 box, so treat this as a price-class comparison.

List prices side by side

OpenAI's output rate is $30.00 per 1M tokens, and the token count for 1280x720 comes from the estimator in Sume's repo, which follows OpenAI's calculator. Google's per-image prices are from its own pricing page.

Vendor list prices, output only (read 2026-10-06)
RowPrice per imageSource
GPT Image 2.5 low, 1280x720$0.0032OpenAI page and Sume estimator
GPT Image 2.5 medium, 1280x720$0.0074OpenAI page and Sume estimator
Gemini 3.1 Flash Lite Image, 1K$0.0336Google page
Gemini 3.1 Flash Image, 0.5K$0.045Google page
Gemini 3.1 Flash Image, 1K$0.067Google page

What Sume lists

Sume's image catalog on the main branch has Nano Banana 2 and Nano Banana Pro, not a Flash Lite Image row, and GPT Image 2.5 in both Flare and Sunburst variants. Sume bills its provider list times 1.25, so its prices differ from the vendor lines above (Gemini price comparison).

If a number under five cents per image is the goal, GPT Image 2.5 at low on Sume is the row to test first.

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.

Caveat

Low quality suits drafts and small previews. Fine text and faces are where it breaks first, so look at your own prompts, not a table.

Sources

Related posts

More in Comparisons

All Comparisons posts

Written by Sume