Aspect ratios the Sume Images API names, and which one 4:5 is
Sume's Images API names 17 normalized aspect ratios plus auto. Here is the list, what 4:5 means, and why you read the model's own list before pinning one.

Sume's Images API names 17 normalized aspect ratios and auto, from 1:1 and 16:9 to 1:8 and 21:9. A given model accepts only the values its catalog descriptor lists, so read supported_parameters.aspect_ratio before you pin one.
The one that trips people up is 4:5: in Sume's docs it is Instagram portrait, 1080 by 1350 pixels, not 4:3.
Which ratios does the API name?
The normalized vocabulary comes from the Image API page. It is a vocabulary, not a promise that every model serves every value.
| Group | Values |
|---|---|
| Square | 1:1 |
| Landscape | 16:9, 4:3, 3:2, 5:4, 2:1, 21:9, 4:1, 8:1 |
| Portrait | 9:16, 3:4, 2:3, 4:5, 1:2, 9:21, 1:4, 1:8 |
| Provider choice | auto |
What does auto do?
auto lets the provider choose, and on edit and image-to-image calls it matches the reference. Omitting the field is not the same as auto. For ChatGPT Image 2.5, image_size also accepts custom pixels: both edges multiples of 16, maximum edge 3840, aspect ratio at most 3:1, and 655,360 to 8,294,400 total pixels.
How do I get exactly 1080 by 1350?
Some models accept WxH and map it to the native ratio: on Nano Banana, 1080 by 1350 maps to 4:5, and exact pixels are a documented post-step through job target_pixels. Banana Pro's native size at 1K is about 928 by 1152, so do not assume the pixel count matches the ratio name.
What should my code do?
Read the catalog, pick a ratio from the model's own list, and treat a 400 unsupported_parameter as a signal to change the value, not to retry. The Image API page holds the list and the size rules.
Sources
Related posts
More in Developers
- Verify a Sume job.completed webhook in Python (stdlib)
A stdlib Python verifier for Sume job webhooks: HMAC SHA-256 over timestamp.raw_body, five-minute tolerance, rotation-safe, and it refuses an empty secret.
- Image job still running after 50 seconds: slow or stuck?
Sume's docs say an image still running at 50 seconds is usually stuck, not slow. What to read first, when not to resubmit, and when to cancel.
- Image job statuses for a progress UI: queued is not failed
Five Sume job statuses, two terminal flags, and a mapping to user-facing labels. Plus why a queued image should read as waiting, not as an error.
- Image request timed out: do you pay for it on Sume?
Sume bills image jobs by outcome. A client timeout does not cancel the job, so a finished image can still bill. Use async mode and poll; do not resubmit.
Written by Sume