Nano Banana 2 at 2K ($0.15) vs GPT Image 2.5 at 2560x1440 on Sume

For a 2K 16:9 image on Sume, Nano Banana 2 is $0.15 flat. GPT Image 2.5 at 2560x1440 is $0.0179 at medium and $0.0691 at high.

4 min readSume
All posts

On Sume, Nano Banana 2 at 2K costs $0.15 per image regardless of prompt, and GPT Image 2.5 at 2560x1440 costs $0.0179 at medium, $0.0691 at high and $0.1229 at xhigh. GPT Image 2.5 is cheaper at every tier below max; Nano Banana 2 is the simpler number to budget.

The two are not interchangeable on output size: GPT takes exact pixels through image_size, while Nano Banana models take an aspect_ratio and a resolution tier.

Price per 16:9 2K-class image

Nano Banana 2 list is the 2K rate of $0.12 times 1.25, from the pricing tables in Sume's repo. For context, Google's own page lists $0.101 per 2K image for Gemini 3.1 Flash Image (Gemini pricing, read 2026-10-06); Sume's list differs because its provider rate differs, and this post breaks down the gap.

2K-class 16:9, per image, output only (read 2026-10-06)
RowProvider listSume (list x 1.25)
GPT Image 2.5 low, 2560x1440$0.0062$0.0077
GPT Image 2.5 medium, 2560x1440$0.0143$0.0179
GPT Image 2.5 high, 2560x1440$0.0553$0.0691
GPT Image 2.5 xhigh, 2560x1440$0.0983$0.1229
Nano Banana 2, 2K$0.1200$0.1500

How to choose

Choose Nano Banana 2 when you want one price, 4:1 or 8:1 extremes, or you already tuned prompts on it. Choose GPT Image 2.5 when you need quality control (low to max), masks or transparent backgrounds, which only the 2.5 rows list.

Neither table includes input tokens or reference-image costs on the GPT side. Run a short pilot on both before you commit a budget.

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

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.

Sources

Related posts

More in Comparisons

All Comparisons posts

Written by Sume