Multi-reference image prompts when the API has no role field
Ideogram's app lets you tag references with @. Sume's input_references holds only a URL. How to say which image is the subject, style or layout in the prompt.

In Ideogram's app, you can mention attached images inline with @ syntax, according to its reference image docs. Google's Gemini API image guide goes further on Nano Banana 2 and splits its 14 references into object images and character images.
Sume's request shape has neither. An input_references entry is {type: "image_url", image_url: {url}}, and nothing else. There is no role field, no weight and no tag. The one ordering rule the docs state is for Ideogram 4.5, where the first image is the one edited.
Say it in the prompt
Since the API has no field for roles, put the role in the sentence. Refer to images by order and by what they show, and keep each instruction about one image.
| Role | Prompt wording |
|---|---|
| Subject | the product in the first image, unchanged |
| Style | the color palette and lighting of the second image |
| Layout | the composition of the third image, subject centered |
| Avoid copy | do not reproduce the text from the second image |
A request
import os, requests
headers = {"Authorization": "Bearer " + os.environ["SUME_API_KEY"]}
urls = ["https://example.com/product.jpg", "https://example.com/style.jpg"]
body = {
"model": "openai/gpt-image-2.5",
"prompt": "Place the product from the first image in the setting and lighting of the second image. Keep the product unchanged.",
"input_references": [{"type": "image_url", "image_url": {"url": u}} for u in urls],
"quality": "medium",
}
r = requests.post("https://api.sume.com/v1/images", headers=headers, json=body, timeout=60)
print(r.status_code)
Test the order
How a model weighs image order is model behavior that the Sume docs do not specify, so run the same prompt with the references swapped once and keep the order that works. Keep a short list of working prompt patterns per model; they transfer less than you would expect.
How this was checked
Vendor facts come from the pages listed in the sources, read on 2026-10-05. Sume facts come from the Image API docs and the catalog code on main on the same date. Catalogs and limits change, so read the descriptors from GET /v1/images/models before you pin a number in production code.
Sources
Related posts
More in Developers
- Multi-turn image edits over Agent Completions: pass the last output
Agent Completions keep no conversation, so each edit turn is a new run. Attach the previous output.images URL as the next input and keep a cap per turn.
- Music API image_url null: clear a reused request body, with Python
Send image_url as null on Sume music requests only to clear an image from a reused request object. A short urllib script posts to the Music Router.
- Nano Banana 2 Lite's 10 aspect ratios: what to send for 4:5
Lite accepts 10 ratios including 4:5 and 21:9. On Sume, Instagram 1080x1350 is aspect_ratio 4:5, and Nano Banana Pro or 2 list it; Imagen and Grok do not.
- Nano Banana 2 reference slots (10+4+3) vs Sume's flat reference list
Google splits Nano Banana 2 references into 10 object, 4 character and 3 style slots. Sume's input_references is one flat list capped at 10, with no slots.
Written by Sume