Aspect ratios per Sume image model: Banana 2 has 14, Pro 10, GPT 8

Nano Banana 2 lists 14 aspect ratios on Sume, Nano Banana Pro 10 and GPT Image 2.5 8, each plus auto. The full lists, and how to read them from the API.

4 min readSume
All posts

On Sume, Nano Banana 2 lists 14 aspect ratios, Nano Banana Pro lists 10, and GPT Image 2.5 lists 8, each with auto on top. The extra ratios on Nano Banana 2 are the extremes 4:1, 1:4, 8:1 and 1:8, plus 21:9.

These are the values in aspect_ratio on each catalog row, from the contract package in Sume's repo.

The lists

aspect_ratio values per model, excluding auto (read 2026-10-06)
ModelCountValues
Nano Banana 21421:9, 16:9, 3:2, 4:3, 5:4, 1:1, 4:5, 3:4, 2:3, 9:16, 4:1, 1:4, 8:1, 1:8
Nano Banana Pro1021:9, 16:9, 3:2, 4:3, 5:4, 1:1, 4:5, 3:4, 2:3, 9:16
GPT Image 2.5 (both variants)81:1, 16:9, 9:16, 4:3, 3:4, 5:4, 9:8, 4:5

What the list does not say

GPT Image 2.5 also takes custom pixels through image_size, so its limit is not the list: any box that meets the size rules works, including 21:9 and 3:1 sizes (widest legal sizes). The Nano Banana models take only the enum.

A value outside a model's list is rejected, not silently changed. If you send a parameter the model does not list, the API returns 400 unsupported_parameter (the descriptor post).

Read it from the API

Do not copy this table into code. GET /v1/images/models returns an aspect_ratio descriptor for every model, and the catalog is the source of truth on the day you call it. The lists above were read from the repo on 2026-10-06 and can change when a model is added.

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 Developers

All Developers posts

Written by Sume