Edit returns a square? A 1-cent test for aspect_ratio auto vs none
Omitting aspect_ratio on a Sume edit is not the same as auto. A 1-cent low-quality regression test that catches the dropped field before it ships.

If an image-to-image edit comes back in a different shape than the photo you sent, set aspect_ratio: "auto" on the request. The Sume Image API docs state that on edit and image-to-image calls auto matches the reference, and that omitting the field is not the same as sending auto.
The behavior, from the docs
This is easy to miss because the two requests look almost identical. With auto, the output follows the shape of your reference. With the field missing, the model's own default applies, which can be a square or another ratio from its list.
Ideogram 4.5 is an exception worth knowing: the docs say an edit without aspect_ratio keeps the shape of the source image on that row. So the same omitted field behaves differently by model, and auto is the safer way to say what you mean.
| Goal | Field | Notes |
|---|---|---|
| Keep the source shape | aspect_ratio: auto | Matches the reference on edit calls |
| Change the shape | aspect_ratio: 4:5, 9:16 ... | Must be in the model's own list |
| Omit the field | (none) | Not the same as auto; the model default applies |
A request that keeps the shape
{
"model": "openai/gpt-image-2.5",
"prompt": "replace the background with a plain light grey studio sweep, keep the product unchanged",
"aspect_ratio": "auto",
"quality": "medium",
"input_references": [
{"type": "image_url", "image_url": {"url": "https://example.com/product.jpg"}}
]
}Which models list auto
Not every row lists auto. In the Sume catalog the GPT Image 2.5 rows, GPT Image 2, Nano Banana 2.1, Nano Banana Pro and Seedream v4 list it. Rows without auto in their list, such as Seedream 5.0 Lite and FLUX.2 pro, expect an explicit ratio from their own list. Read supported_parameters on the models endpoint before relying on it.
Reference URLs must be public HTTPS; Sume rejects localhost, private-network and non-HTTPS URLs before submission.
How to debug an unexpected crop
Start with the response, not the prompt. If the output is square and your source was a 3:4 portrait, the request almost certainly had no aspect_ratio. Resend the same call with auto and compare. Only if the shape still differs should you look at the prompt, because prompt text like 'wide shot' can pull a model toward a different composition inside the same frame.
Log the request body next to the output URL. Sume stores metadata you send on the job and does not forward it to the provider, so putting your source file name there makes the comparison easy a week later.
When you want a different shape on purpose
To turn a landscape photo into a 9:16 story frame, send the target ratio instead of auto. The model then recomposes rather than crops, so check the edges. If you need exact pixels, such as 1080x1350 for Instagram 4:5, remember the docs: Nano Banana sends a 4:5 ratio at its native size and exact pixels come from a documented post-step through job target_pixels.
A quick regression test
Add one automated check to your edit pipeline. Keep a fixture photo at an unusual shape, for example a 3:4 portrait, run your edit request at quality: "low", and assert that the output's width-to-height ratio is within a few percent of the source. At 1 cent a run on ChatGPT Image 2.5, the check costs almost nothing, and it catches the day someone removes the field from a request template.
Run it for every model you route to. The docs say the behavior of an omitted ratio is model specific, so a test that passes for one row proves nothing for another.
Sources
Related posts
More in Developers
- API Gateway to Lambda: verify a Sume video webhook on the raw bytes
A Sume callback_url can point at a Lambda behind an HTTP API. Decode the body to bytes first, then verify sume-v1 with the SDK. Handler code is under 30 lines.
- Sume ignores aspect_ratio when image_size is set: Flux, Seedream
On Sume's custom-pixel image rows, image_size wins and aspect_ratio is ignored. Nano Banana turns WxH into an enum ratio. What each model does with both fields.
- Assemble a three-clip montage with fades through the Sume API
A working Timeline 1.0 request that joins three hosted clips over one audio spine with fade and dissolve transitions, plus the Python to poll it, for $0.10.
- Balance needed to submit 10 or 50 video jobs: reserve per model
Sume reserves each job's estimate at submit. A table of the balance 10 and 50 ten-second clips need on six video models, and where a 402 lands in a batch.
Written by Sume