3:2 photo at 1536x1024 on GPT Image 2.5: $0.006 at low to $0.21 at max

1536x1024 is an exact legal 3:2 box for GPT Image 2.5. On Sume it costs about $0.0059 at low, $0.0515 at high and $0.2058 at max.

4 min readSume
All posts

1536x1024 is an exact 3:2 box that GPT Image 2.5 accepts: both edges are multiples of 16 and it has 1,572,864 pixels. On Sume it costs about $0.0059 at low, $0.0129 at medium, $0.0515 at high and $0.2058 at max, before input tokens.

3:2 is the shape of a camera photo, so it suits product shots and editorial images that will be cropped to other ratios later.

Price by quality

Sume bills the provider list price times 1.25, as this worked-examples post shows.

1536x1024 output by quality (read 2026-10-06)
QualityOutput tokensProvider listSume (list x 1.25)
low158$0.0047$0.0059
medium343$0.0103$0.0129
high1,372$0.0412$0.0515
xhigh2,459$0.0738$0.0922
max5,488$0.1646$0.2058

Where 3:2 sits

In the estimator, a 3:2 image costs less than a square at the same quality. At high, 1536x1024 is $0.0515 on Sume and 1024x1024 is $0.0658. More pixels, lower price, which is the opposite of what most people expect.

Other exact 3:2 sizes need a width that is a multiple of 96: 1536, 2304 and 3072. The aspect-ratio cost post compares 3:2 with square, 4:5 and 16:9 (see it).

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 Use cases

All Use cases posts

Written by Sume