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.

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
| Model | Count | Values |
|---|---|---|
| Nano Banana 2 | 14 | 21: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 Pro | 10 | 21: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) | 8 | 1: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
- image_size beats aspect_ratio on Sume /v1/images: send one, not both
On /v1/images, image_size has priority over aspect_ratio. Use exact pixels for GPT Image 2.5 and an aspect ratio plus resolution tier for Nano Banana.
- Is the Sume Studio Agent an MCP server? No: use mcp.sume.com/mcp
The Studio Agent is not a public MCP connector. Point MCP clients at https://mcp.sume.com/mcp for Sume's tools; use Agent Completions to run the agent.
- Is there a Sume Python SDK? No: use requests and the OpenAPI schema
Sume documents a TypeScript SDK, @sume-com/sdk, and no Python package. From Python, call the REST API with requests, or generate a client from the OpenAPI JSON.
- SSE or WebSocket for AI video progress on Sume? Poll or webhook
Sume has no SSE or WebSocket. mode subscribe is the same 30 s wait as sync. Use async with status polling, the events snapshot, or a webhook. Python example.
Written by Sume