Omni Flash image-to-video: frame_images or input_references?
frame_images with first_frame pins your photo as the opening frame. A single input_references image conditions the whole clip instead. Pick by what you want.

Use frame_images with frame_type: "first_frame" when you want your photo to be the first frame of the clip. Use input_references when you want the photo to guide the look of the whole clip without being pinned as frame one. On Sume's /v1/videos, frame_images means image-to-video and input_references means reference-to-video. If you send both, frame_images wins.
Which field selects which mode
The docs call this out because of a past bug (#2044): a single bare image was ambiguous. On /v1/videos that ambiguous field does not exist. A single reference image goes in input_references and conditions the full clip, and a pinned opening frame goes in frame_images. On the legacy /v1/video-router/generate, the fields are image_url and reference_image_urls instead, and there a single reference image with no frame is also reference-to-video.
| You want | Field on /v1/videos | Mode |
|---|---|---|
| Photo is frame one | frame_images with first_frame | image-to-video |
| Photo is the last frame too | Add a last_frame image | image-to-video with end frame |
| Photo sets the look, any frame | input_references (image_url) | reference-to-video |
| Several photos or clips | input_references, up to 10 images and 3 clips of 3 s or less | reference-to-video |
Pinned first frame
Here is the pinned version for Omni. For the reference version, replace the frame_images array with input_references holding an image_url entry, and expect the first frame not to match your photo.
{
"model": "gemini-omni-flash-1.1",
"prompt": "The camera pushes in slowly as steam rises from the cup",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "16:9",
"frame_images": [
{"type": "image_url", "image_url": {"url": "https://example.com/cup.jpg"}, "frame_type": "first_frame"}
]
}Choosing
The choice shows in the result. If a viewer must see the exact product photo in the first second, pin it. If the photo only describes a character or a style and the scene should differ, use it as a reference. Omni accepts 16:9 or 9:16 only, so crop the photo to one of those first.
Sources
Related posts
More in Developers
- One prompt across video models: what to rewrite on Sume
A prompt that works on one Sume video row may need edits on another: Omni uses IMAGE_REF tokens, Kling takes no references, Veo is text-only. Read 2026-10-13.
- Playwright 1.64 lock and --shuffle for a Sume API test suite
Playwright 1.64 adds a describe lock and --shuffle. Use them to test Sume video calls: free 400 checks run in parallel, one paid test holds a credits lock.
- Python preflight: price a video batch before you submit to Sume
A short Python function prices Seedance 2.5 and Wan 3.0 jobs at list x 1.25 and compares the total with your balance before any submit. Example: $99.36.
- Python script: filter Sume video models by length, size and ratio
A short Python script reads GET /v1/videos/models and keeps the rows that fit your seconds, resolution and aspect ratio. Run it before you pick an id.
Written by Sume