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.

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.
| Quality | Output tokens | Provider list | Sume (list x 1.25) |
|---|---|---|---|
| low | 158 | $0.0047 | $0.0059 |
| medium | 343 | $0.0103 | $0.0129 |
| high | 1,372 | $0.0412 | $0.0515 |
| xhigh | 2,459 | $0.0738 | $0.0922 |
| max | 5,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
- Graduation announcement card art at 4:5, name and year added in code
Generate graduation card art on Sume at 4:5 with a clear middle, then add the graduate's name and year in code so the details are exact and easy to change.
- Halloween safety video with an AI avatar for parents and schools
A 21-second three-scene avatar video built from the FDA Halloween tips: costumes, candy and contact lenses. The request body, the cost by tier, and the label.
- Chain two AI clips: last frame in, then first_frame out
To continue a clip on Sume, extract its last frame with video_frames, then send it as first_frame on the next job. It fixes pose and position, not sound.
- Homebrew beer label art with an API: the name and ABV added in code
Generate square label art on Sume with no text, then draw the beer name, style and ABV in code so every batch gets exact numbers on the same artwork.
Written by Sume