Seedream 4.5 edit with n=4 returns one image on Sume
On Sume, a Seedream 4.5 call with reference images is an edit and always asks the provider for one image, so n=4 does not give four takes. Use four calls.

If you send n: 4 with reference images to bytedance-seed/seedream-4.5 on Sume, the provider payload is built with one image, not four. Edits on that model return a single result per call, so for four takes you send four requests (or change the model). Text-to-image calls without references are not affected.
What the adapter does
In the Sume image adapter, a Seedream 4.5 request that carries images is limited to 10 reference images by the API and has the image count set to 1. The catalog still lists n as a range up to 4, which is why this is easy to miss: the parameter is valid and does not error. The 10-image limit is checked before the provider call, so an eleventh reference is a 400 rather than a silent trim.
| Call | References | Images requested |
|---|---|---|
| Text only, n=4 | none | 4 |
| Edit, n=4 | 1 to 10 | 1 |
| Edit, 11 references | 11 sent | 400, the limit is 10 |
Read the response, not the request
Count data in the response and read usage.cost for the billed amount (Jobs and results). Do not compute the cost from the n you sent.
import os, requests
r = requests.post(
"https://api.sume.com/v1/images",
headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
json={
"model": "bytedance-seed/seedream-4.5",
"prompt": "Same sofa, olive green fabric",
"input_references": [{"image_url": {"url": "https://example.com/sofa.jpg"}}],
"n": 4,
},
timeout=120,
)
body = r.json()
print(r.status_code, len(body.get("data", [])), body.get("usage"))What to do instead
- Send four calls with four different prompts, which is also better for variants because each can name a different colour.
- Run them from a small pool and respect your plan's queue limit, as described in Generation admission.
- Choose a model whose edit path honours the count if you want one-call variants. Check the live
GET /v1/images/modelsentry first.
When this does not matter
If you only ever want one edited image per call, nothing changes for you. It matters when a UI offers four variants by default and you reuse the same code path for text-to-image and edits, because the edit path will quietly show one tile instead of four.
Build the variant grid yourself
For a four-up grid, loop over four prompts, collect the four URLs and show them together. Give each call its own short label, such as the colour name, so the grid is readable and so a chosen tile can be traced back to its prompt.
Keep the same input reference in all four calls. Then the only difference between tiles is the prompt, which is what you want when a buyer is comparing finishes or colours on one product.
Sources
Related posts
More in Models
- Seedream 5.0 Flash takes 14 references; Sume seedream-5-lite takes 10
Seedream 5.0 Flash lists up to 14 input references on OpenRouter. Sume's catalog caps references at 10 and lists seedream-5-lite, not Flash.
- Sound-on Reels product spot in one call: Omni Flash, 8 s, $1.00
Reels default to sound on. Omni Flash 1.1 returns synced audio: 8 s at 720p is $1.00 on Sume, against $3.27 for a silent clip plus voice and music.
- Spain vs Mexico, Brazil vs Portugal: regional voiceover on MAI, Sume
MAI-Voice-2.1 lists es-ES, es-MX, pt-BR and pt-PT. Sume's guard compares only the primary language. How to pick a regional read and test it for 1 cent.
- Text edits on Sume: use sume/auto or pin ideogram/ideogram-v4.5?
Sume's sume/auto never says which model ran, so a text-edit workflow that depends on Ideogram 4.5 behavior should pin ideogram/ideogram-v4.5.
Written by Sume