Which Sume image models reject input_references: five text-only rows
Five of 19 Sume image models are text-to-image only and return 400 unsupported_parameter if you send input_references. The other 14 take 5, 10 or 16 references.

Five of the 19 models in Sume's image catalog are text-to-image only: Soul, Imagen 4 Fast, Imagen 4 Ultra, Recraft V4 and Qwen Image Max. Send input_references to any of them and Sume answers 400 unsupported_parameter with a message that the model is text-to-image only; it does not drop the field and run. The other 14 accept references, with a ceiling of 5, 10 or 16. The Image API docs state the rule: a model whose input_references descriptor is {min: 0, max: 0} rejects references.
That split matters for image-to-image from an avatar or a packshot, where a wrong model choice fails on the first call instead of after a long job.
Which models take how many references?
The ceilings come from each model's input_references range descriptor. GPT Image 2.5 has the highest, 16, and Ideogram 4.5 the lowest of the edit-capable models, 5, because one reference is the image to edit and four are style references.
| Ceiling | Models |
|---|---|
| 0 (rejects references) | higgsfield/soul, google/imagen-4-fast, google/imagen-4-ultra, recraft/recraft-v4, qwen/qwen-image-max |
| 5 | ideogram/ideogram-v4.5 |
| 10 | google/nano-banana-2, google/nano-banana-pro, bytedance-seed/seedream-5-lite, bytedance-seed/seedream-4.5, bytedance-seed/seedream-4, x-ai/grok-image, qwen/qwen-image, black-forest-labs/flux.2-pro, black-forest-labs/flux.2-flex, ideogram/ideogram-v3, openai/gpt-image-2 |
| 16 | openai/gpt-image-2.5, openai/gpt-image-2.5-sunburst |
How do I filter the catalog in code?
Do not hard-code this table; the catalog is the source of truth and changes. List models and keep the ones whose input_references.max covers your need.
import os, requests
r = requests.get("https://api.sume.com/v1/images/models", timeout=30,
headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"})
r.raise_for_status()
need = 2
for m in r.json()["data"]:
ref = m["supported_parameters"].get("input_references", {})
if ref.get("max", 0) >= need:
print(m["id"], ref["max"])What do I do when I pick a text-only model by mistake?
Fix the model, not the request. A failed request is not billed, so the mistake costs a call, not money. Reference URLs must also be public HTTPS; Sume rejects localhost, private-network and non-HTTPS URLs before it submits.
Sources
Related posts
More in Models
- Which AI video models take an end frame or reference clips on Sume
Sume's catalog flags show who accepts text-to-video, an end frame, reference images, clips and audio, and who edits video. Grok is image-to-video only.
- An OpenRouter-compatible video API: sume/auto or a pinned model
Sume's POST /v1/videos follows OpenRouter's video generation API field for field. Let sume/auto pick the model, or pin a catalog id like seedance-2.5.
- Image generation API with reference images: POST /v1/images
Send a prompt plus public HTTPS reference images to Sume's POST /v1/images. Pin a catalog model or send sume/auto; the catalog lists each model's limits.
- Video 1.0 and Image 1.0 are retiring soon: move to sume/auto
Sume Video 1.0 and Image 1.0 are retiring soon and already run as aliases for the Auto path. New integrations call /v1/videos or /v1/images with sume/auto.
Written by Sume