Two reference images, one Omni prompt: <IMAGE_REF_0> and <IMAGE_REF_1>

On Sume, Gemini Omni Flash 1.1 takes up to 10 reference images and names them <IMAGE_REF_0>, <IMAGE_REF_1> in list order. Here is a two-reference request.

4 min readSume
All posts

On Sume, gemini-omni-flash-1.1 takes up to 10 reference_image_urls and you refer to each one in the prompt as <IMAGE_REF_0>, <IMAGE_REF_1> and so on, counting from zero in list order. A prompt that names the product as <IMAGE_REF_0> and the person as <IMAGE_REF_1> tells the model which picture plays which role.

Without the addresses the model has to guess, and with several images it can mix them up.

The reference limits

The Omni row accepts up to 10 reference images and up to 3 reference videos of at most 3 seconds each, mixed in the same request. Clips are addressed as <VIDEO_REF_0>. There is no reference_audio_urls, because audio is always native and synced. A single reference image with no frame is reference-to-video, not image-to-video.

Output is 3 to 10 seconds at 360p to 4K, 16:9 or 9:16. The default resolution is 720p.

Omni reference inputs on Sume, read 2026-10-05
InputLimitAddress in the prompt
reference_image_urlsup to 10<IMAGE_REF_0>, <IMAGE_REF_1>, ...
reference_video_urlsup to 3, each at most 3 s<VIDEO_REF_0>, ...
reference_audio_urlsnot acceptednone
image_url with end_image_urlfirst and last frame, not referencesnone

A two-reference request

Here the first image is a product shot and the second is a person. The prompt names both by address and describes the action. The request goes to the Video Router route, which takes the reference_*_urls field names.

curl -X POST https://api.sume.com/v1/video-router/generate \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: omni-two-refs-001" \
  -d '{"model":"gemini-omni-flash-1.1","prompt":"The woman in <IMAGE_REF_1> holds the bottle from <IMAGE_REF_0> up to the camera and smiles, soft window light","reference_image_urls":["https://example.com/bottle.png","https://example.com/woman.png"],"duration":8,"resolution":"1080p","aspect_ratio":"9:16","mode":"async"}'

Why order matters

The index follows the order of the array. If you reorder the list later and forget the prompt, the roles swap. Keep the list in one place, build the prompt from the list in code, and log both with the job id.

If you want to build the prompt in code, keep a small table that maps role names to list positions, and fill the addresses from that table.

Practical limits

Keep each reference clear and well lit, with one subject. A cluttered image gives the model several things to latch on to. Image count adds no per-image charge in the catalog docs I read for Omni, which bills by output second and resolution, so use as many references as the shot needs, up to 10.

If you need the clip to follow a reference video's motion, remember the 3-second limit per reference clip. The post on the three-second limit covers how to cut one.

Checklist

Before you submit a reference job:

  • Count your images, and stay at 10 or fewer.
  • Match the addresses in the prompt to the array order.
  • Send duration between 3 and 10, and aspect_ratio as 16:9 or 9:16.
  • Use a public https URL for every file.
  • Add an Idempotency-Key so a retry does not bill twice.

Related posts

More in Developers

All Developers posts

Written by Sume