Gemini Omni reference-to-video: 3-second clips and IMAGE_REF tags
Omni on Sume takes up to 10 reference images and 3 reference videos of at most 3 s each, addressed as <IMAGE_REF_0> and <VIDEO_REF_0> in the prompt.

Gemini Omni Flash 1.1 on Sume accepts up to 10 reference images and up to 3 reference videos, and each reference video must be at most 3 seconds long. You point at them in the prompt with zero-based tags in list order: <IMAGE_REF_0>, <IMAGE_REF_1>, <VIDEO_REF_0>. There is no reference audio input for this model.
These rules come from the Sume Video Router docs and catalog, as of 2026-10-08. They are the shortest reference clip limit of any model in the catalog.
| Item | Rule |
|---|---|
| Reference images | up to 10 (reference_image_urls) |
| Reference videos | up to 3, each at most 3 s (reference_video_urls) |
| Reference audio | not accepted |
| Prompt tags | <IMAGE_REF_0>, <VIDEO_REF_0>, 0-based, in list order |
| Mode switch | one reference image with no first or end frame is reference-to-video |
| Duration | 3 to 10 s |
| Aspect ratio | 16:9 or 9:16 |
A request that uses the tags
Reference media is sent before the prompt, which is why the tags count from zero in the order you list the URLs. A prompt that says <IMAGE_REF_0> walks into the room from <IMAGE_REF_1> ties each phrase to one input.
curl -X POST https://api.sume.com/v1/video-router/generate \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gemini-omni-flash-1.1","prompt":"<IMAGE_REF_0> walks into the room shown in <IMAGE_REF_1>","reference_image_urls":["https://example.com/person.png","https://example.com/room.png"],"resolution":"1080p","duration":8,"aspect_ratio":"16:9"}'Price of a reference clip
Reference inputs do not add a line to the price. The charge is the output seconds at the chosen resolution: 8 s at 1080p is 8 x $0.15 x 1.25 = $1.50. Compare that with Seedance, where a reference video adds 15 assumed seconds to the billed length, so a short clip with a reference video costs more than the plain clip.
Common mistakes
A request with one reference image and no first or end frame is treated as reference-to-video. If you also send a first frame, you are asking for image-to-video, and the reference tags no longer describe the mode you intended. Keep the two intents in separate requests.
- Counting tags from one: the tags are zero-based, so the first image is
<IMAGE_REF_0>. - Sending a reference video longer than 3 seconds; trim it before upload.
- Sending reference audio; the model does not accept it and the catalog lists no
reference_audio_urls. - Combining
video_url(edit) with reference fields; the docs sayvideo_urlcannot be sent withimage_url,end_image_urlorreference_*_urls. - Setting
generate_audio: false; native audio is always on and the API rejects it.
Choosing between reference models
The vendor page on fal describes the model as grounded in Gemini's real-world knowledge and physics, with camera control written in natural language (fal page, read 2026-10-08), which fits prompts that describe a camera move next to a tag.
- Need long reference footage or audio: use Wan 3.0 (5 videos of 15 s total, 5 audio clips) or MiniMax H3 (3 videos, 3 audio clips).
- Need only look and identity from stills: Omni's 10 images is the largest image count in the catalog.
- Need to change an existing clip rather than reference it: use the Omni edit mode with
video_url, which cannot be combined with references.
Sources
Related posts
More in Developers
- Typed Sume video client from the OpenAPI JSON, after Sora
Sume publishes OpenAPI 3.0.3 at api.sume.com/reference/json. List the four video operations, then use the SDK's generated calls instead of hand-typing the wire.
- Generate then cut out: an image-model result into RMBG, in Python
Two Sume calls: generate a product shot, then POST its URL to /v1/rmbg-1.0/remove. Runnable Python, the polling loop, and the $0.1225 total per cutout.
- Read a Sume job's events to time the wait before generation
Read GET /v1/jobs/:id/events, find generation.submitted, and compute how long a job sat between created, queued and started. A Python helper with tested math.
- Get a 30-second track from Music 1.0 when there is no duration field
Music 1.0 rejects duration and duration_seconds. Steer length in the prompt, for example 'a 30-second track' with timestamped sections; a generation is $0.125.
Written by Sume