sume/auto and aspect_ratio 8:1: name Nano Banana 2.1 instead
sume/auto does not tell you which family ran, and the repo gives it the GPT Image ratio list, which has no 4:1 or 8:1. Name google/nano-banana-2.1 for strips.

model: "sume/auto" lets the Image Router choose, and Sume never discloses which family ran. The repo advertises the GPT Image 2 ratio list for Auto (auto, 1:1, 16:9, 9:16, 4:3, 3:4, 5:4, 9:8, 4:5), which has no 4:1 or 8:1, so for the new strip ratios send google/nano-banana-2.1 by name.
Auto against the named model
| Ratio | sume/auto list | google/nano-banana-2.1 |
|---|---|---|
| 1:1 | Yes | Yes |
| 4:5 | Yes | Yes |
| 16:9 | Yes | Yes |
| 4:1 | No | Yes |
| 1:4 | No | Yes |
| 8:1 | No | Yes |
| 1:8 | No | Yes |
What to send
Name the model when the ratio is the requirement. You trade routing flexibility for a ratio you know exists. Price is per image at the tier you choose: $0.10 at 1K, $0.15 at 2K and $0.20 at 4K for Nano Banana 2.1.
import os, requests
body = {
"model": "google/nano-banana-2.1",
"prompt": "Wide hero strip for a travel site, sunrise over a harbour, no text",
"aspect_ratio": "8:1",
"resolution": "1K",
}
r = requests.post(
"https://api.sume.com/v1/images",
headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
json=body, timeout=60,
)
print(r.status_code) # 200 = image body, 202 = job envelope
if r.status_code == 200:
out = r.json()
print(out["data"][0]["url"], out["usage"]["cost"])Gotchas
- The docs state that a model accepts only the values its catalog descriptors list, and that a parameter the model does not list returns
400 unsupported_parameter. Auto is not inGET /v1/images/models, so you cannot read its descriptor there. - Use
sume/autowhen any shape will do and you want Sume to pick; use the named id when the shape is fixed. - Image 1.0 URLs are compatibility aliases for Auto and follow the same GPT list.
Sources
Related posts
More in Developers
- sume/auto video: default 8 s at 720p, and a 2 to 4,286 cent range
Video Router Auto defaults to 720p and 8 seconds, with 3 to 10 second clips at 16:9 or 9:16. The catalog reports a 50 cent estimate and a 2 to 4,286 cent range.
- Sume error retry matrix: retry with the same key, or fix the request
Which Sume API errors to retry with the same Idempotency-Key, which to fix first, and which to leave alone. A table and a small Python function that decides.
- Sume job next_action: poll_status, fetch_result, inspect_events
The Sume status payload tells your client what to do next. Three next_action values map to five job states; here is the full table and a TypeScript switch.
- Sume MCP OAuth in six steps: from the first challenge to a call
Hosted Sume MCP OAuth takes six steps: challenge, authorize redirect, consent page, Write toggle, PKCE code exchange, then a bearer call to the MCP endpoint.
Written by Sume