AI ultrawide wallpaper and banner API: which Sume models list 21:9
Seven Sume image rows list 21:9, from Flux 2 Pro at $0.0375 to Qwen Image Max at $0.09375. Nano Banana 2 adds 4:1 and 8:1; Ideogram adds 3:1. Request example.

If you want an ultrawide desktop wallpaper or a wide site banner from the Sume image API, 7 catalog rows list aspect_ratio: "21:9", read 2026-10-03: Nano Banana 2, Nano Banana Pro, Qwen Image, Qwen Image Max, Flux 2 Pro, Flux 2 Flex, Recraft V4. The cheapest is Qwen Image at $0.025 per image. For even wider shapes, Nano Banana 2 lists 4:1 and 8:1, and the two Ideogram rows list 3:1.
A model only accepts the values in its own descriptor, and a ratio outside it returns 400 unsupported_parameter. Because Sume does not take explicit pixel sizes on /v1/images, generate at the closest ratio and crop to your exact monitor or banner size afterwards.
Rows by wide ratio
| Ratio | Models | Cheapest |
|---|---|---|
21:9 | Nano Banana 2, Nano Banana Pro, Qwen Image, Qwen Image Max, Flux 2 Pro, Flux 2 Flex, Recraft V4 | Qwen Image $0.025 |
2:1 | Grok Imagine, Qwen Image, Qwen Image Max, Flux 2 Pro, Flux 2 Flex, Ideogram V3, Recraft V4, Ideogram 4.5 | Grok Imagine $0.025 |
3:1 | Ideogram V3, Ideogram 4.5 | Ideogram V3 $0.075 |
4:1, 8:1 | Nano Banana 2 | $0.10 |
A 21:9 request
Ask for compositions that survive a crop: a subject off-center with empty space on both sides, or a pattern with no focal point. A call that is still running after the 30-second wait returns 202 with a job envelope instead of 200, so check the status code before reading data; see Jobs and results.
import os
import requests
resp = requests.post(
"https://api.sume.com/v1/images",
headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
json={
"model": "black-forest-labs/flux.2-pro",
"prompt": "misty pine forest ridge at sunrise, wide cinematic composition, no text",
"aspect_ratio": "21:9",
},
timeout=60,
)
resp.raise_for_status()
if resp.status_code == 202:
print("still running:", resp.json()["data"]["status_url"])
else:
for image in resp.json()["data"]:
print(image["url"])Crop and resize
Fit the result to your target without stretching, and keep the original file. The same helper works for a banner or a wallpaper.
from PIL import Image, ImageOps
img = Image.open("wide.png")
ImageOps.fit(img, (3440, 1440), method=Image.LANCZOS).save("wallpaper-3440x1440.png")Which row for what
- Cheapest wide still: Flux 2 Pro at $0.0375, up to 4 per call.
- Reference-guided wide edit: Nano Banana 2 or Pro, Qwen Image or either Flux row (all take references).
- Text-only, no references: Qwen Image Max and Recraft V4.
- Narrow strip with a title: Ideogram V3 or 4.5 at 3:1, then check the lettering yourself.
Sources
Related posts
More in Use cases
- AI vintage travel poster via API: 3:4 art with the headline in code
Vintage travel poster art at 3:4 from any Sume row, then the place name set in code. From $0.025; Ideogram rows if the model draws the lettering.
- AI virtual try-on looks fake? A QC checklist for print and hands
AI try-on can drift from the real garment. Check print, colour, sleeves and hands, and pull exact frames from a clip with Sume's video frames endpoint.
- AI voice reading news articles on YouTube Shorts: allowed?
YouTube lists readings of websites or news feeds as unoriginal material. How to turn a news story into an original Short with your own analysis.
- AI voiceover for Shorts in order: TTS, then captions, then timeline
Best order for an AI voiceover Short: TTS with word timestamps, captions from those words, then a timeline render. Documented Sume limits and prices.
Written by Sume