20 reference images on Sume: split into passes of 16 or 10

Hy Image 3.5 Preview takes up to 20 references. Sume's GPT Image 2.5 takes 16 and Seedream 4.5 takes 10. Two GPT passes or three Seedream passes cover 20.

5 min readSume
All posts

Hy Image 3.5 Preview takes up to 20 reference images in one request, per its OpenRouter page (read 2026-10-08). Sume does not list Hy. The Sume rows with the most reference slots are ChatGPT Image 2.5 at 16 and the default edit rows (Seedream 4.5, Flux 2, Nano Banana) at 10. For 20 references, plan two passes on GPT Image 2.5 or three on Seedream 4.5. Each pass after the first uses the previous output as one of its references.

The slot limits

The Image API docs say ChatGPT Image 2.5 supports up to 16 image references and Ideogram 4.5 takes 5 (one edited image plus four references). The catalog's default ceiling for other edit-capable rows is 10, and a text-only row publishes 0 and rejects references. Reference URLs must be public HTTPS.

Reference slots and passes needed for 20 references, as of 2026-10-08
RowSlots per callPasses for 20Per-image price
ChatGPT Image 2.5162 (16, then 1 + 4)token-billed
Seedream 4.5103 (10, then 1 + 9, then 1 + 1)$0.05
Flux 2 Pro103$0.0375
Ideogram 4.555 (5, then 1 + 4, 1 + 4, 1 + 4, 1 + 3)$0.075 at medium

The arithmetic

Pass 1 uses all slots on new images. Every later pass spends one slot on the previous result, so it adds one fewer new image. On Seedream 4.5, pass 1 adds 10, pass 2 adds 9 and pass 3 adds 1, which reaches 20. Three calls at $0.05 each are $0.15. On Flux 2 Pro the same plan costs 3 x $0.0375 = $0.1125.

On GPT Image 2.5 the first pass uses 16 and the second adds 4 new images next to the first result, so two calls cover 20. The docs say GPT admission includes estimated input tokens, so references add to the cost there.

A caution about chaining

Each pass is a new generation. Details from early references can fade as they pass through an intermediate image. We make no claim about how much, and Sume publishes no benchmark for it. Put the references that matter most in the last pass, and check the output by eye.

This is also a workaround, not parity. If a single 20-reference call matters to your workflow, check the vendor page and the pricing, and keep Sume as the fallback path for the rows it lists.

Split in code

This helper turns a list of URLs into pass payload lists.

def passes(urls, slots):
    out, i = [], 0
    first = urls[:slots]
    out.append(first)
    i = slots
    while i < len(urls):
        take = urls[i : i + slots - 1]
        out.append(["<previous result>"] + take)
        i += slots - 1
    return out

refs = [f"https://example.com/{n}.jpg" for n in range(20)]
for k, p in enumerate(passes(refs, 10), 1):
    print(k, len(p))

What to measure

Before committing to a multi-pass plan, run one small test. Take five references, send them in one call, then in two calls of three and three with the first result carried forward, and compare the outputs. The cost of the test on Seedream 4.5 is 3 x $0.05 = $0.15. If the multi-pass output loses what you care about, reduce the number of references instead: a smaller, well-chosen set often beats a long one, and it fits one call.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume