AI image edit comes back stretched or recropped: use aspect_ratio auto
Midjourney's editor now preserves the original aspect ratio. On the Sume image API, edits keep the shape of your photo only if you send aspect_ratio auto.

If an AI image edit comes back stretched or with a different shape than your photo, the request probably did not tell the model to match the input. Midjourney's 10/1/26 changelog says its editing function now "preserves the original image's aspect ratio" to prevent unintended stretches. On the Sume image API the same outcome is explicit: set aspect_ratio to "auto" on any call that has input_references.
What the vendor changed
From Midjourney's own changelog.
| Date | Change |
|---|---|
| 10/1/26 | The editing function preserves the original image's aspect ratio, preventing unintended stretches. |
What the Sume docs say
The Image API docs state it directly: on edit and image-to-image calls, prefer aspect_ratio: "auto" to match the reference, and omitting the field is not the same as auto. If you leave it out, the model or a default decides the output shape.
auto is one of the values the aspect ratio field accepts alongside the named ratios such as 1:1, 16:9, 4:5 and 9:21. A model only accepts values its catalog descriptor lists, so check supported_parameters for the model you pinned.
Edit request that keeps the shape
Send the source photo as a public HTTPS reference and ask for auto.
curl -X POST "https://api.sume.com/v1/images" \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-image-2.5",
"prompt": "Replace the sky with warm sunset light; keep everything else",
"aspect_ratio": "auto",
"input_references": [
{"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}
]
}'When you want a new shape on purpose
Sometimes the point of the edit is a different frame, such as a 4:5 crop for a social post. Then pass the target ratio explicitly instead of auto. The docs note that 4:5 is Instagram portrait (1080x1350), not 4:3.
For an exact pixel size, the docs describe a post step rather than a request field, so plan a resize after generation.
Quick diagnosis
If your edit still looks wrong, check these in order:
- Did the request include
aspect_ratio: "auto", not just omit the field? - Is the reference a public HTTPS URL? Localhost, private-network and non-HTTPS URLs are rejected before submission.
- Does the model list
input_referencesabove zero? A text-only model rejects references.
Why this goes wrong in practice
Most stretched edits come from a pipeline that copied a text-to-image request and added a reference. The old request carried a fixed ratio such as 1:1, so a landscape photo came back square. Or the field was dropped entirely and the default decided. Both look like a model bug and are really a missing instruction.
A quick test is to send the same edit twice, once with auto and once without, and compare dimensions. If the two differ, you have found the cause. Keep the auto version in your edit template and keep the fixed-ratio version in your generate template so the two flows cannot be mixed up.
If your source is portrait and your target is landscape, say so with a named ratio and expect the model to extend or recompose the scene, not just crop it.
Sources
Related posts
More in Use cases
- Midjourney image weight returns in V8.1: reference influence on Sume
Midjourney V8.1 restores image prompts with weighting. Sume's image API has no weight field, so reference influence is set by prompt and reference choice.
- Midjourney live style previews: a low-quality draft sweep on Sume
Midjourney now previews your prompt across styles before you generate. On the Sume image API the closest move is a low-quality sweep of style phrases.
- Midjourney Run as HD: rerun at higher quality when Sume has no seed
Midjourney's Run as HD reruns a standard job at higher quality. Sume has no seed, so a rerun is a new image. Here is how to keep the composition anyway.
- Midjourney default parameters: a Sume image request template
Midjourney can now save your current settings as defaults. Here is the equivalent for the Sume image API: one JSON template merged into every request.
Written by Sume