One image to Gemini Omni on Sume: reference or first frame?
A single reference image on Sume's Omni row is reference-to-video, not a pinned first frame. Use image_url for a first frame, or frame_images on /v1/videos.

If you send one image to Gemini Omni on Sume as a reference, you get reference-to-video: the image guides the look, and it is not pinned as the first frame. To start the clip on your image, send it as image_url on the Video Router, or as a frame_images entry with frame_type: first_frame on /v1/videos. Sume routes one catalog id by the shape of the request, so which field you use decides the mode.
This catches people who read "image to video" as any image going in. Google's Omni guide has the same split: image-to-video, reference-to-video and a task parameter that names the mode when the model would otherwise infer it.
How does Sume decide the mode?
Sume's Video Router doc lists four capabilities for gemini-omni-flash-1.1. The routing is by which fields you send, never by a second model id.
| You send | Mode | Notes |
|---|---|---|
prompt only | Text to video | 3 to 10 s, 16:9 or 9:16 |
image_url, optionally end_image_url | Image to video | Same envelope; first and last frame |
reference_image_urls (up to 10) and/or reference_video_urls (up to 3, each 3 s or less) | Reference to video | Address media as <IMAGE_REF_0>, <VIDEO_REF_0> |
video_url | Edit | No aspect_ratio or duration; default 720p |
What happens with exactly one reference image?
The provider adapter in Sume's code states the rule in a comment: a single reference image with no first or end frame is reference-to-video, not image-to-video, the same family rule used for Seedance and Wan. The reason is also written down: coercing one reference into the first-frame field would pin frame 0 and drop the reference conditioning.
So one image in reference_image_urls stays a reference. Describe how to use it in the prompt with the tag, for example "the person in <IMAGE_REF_0> walks into frame". The opening frame is therefore not guaranteed to match the photo.
How do I get the image as the first frame?
On the Video Router, use image_url. On /v1/videos, the OpenRouter-style endpoint, Sume's doc says frame_images specifies first or last frame images for image-to-video and input_references provides style or content references, and that when both are sent frame_images takes precedence. Whichever endpoint you pick, keep the fields apart: Sume's code comments say a request that mixes the frame and reference families is a 400, and the video_url edit source cannot be combined with either.
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-first-frame-001" \
-d '{
"model": "gemini-omni-flash-1.1",
"prompt": "The camera pushes in slowly as steam rises from the cup.",
"image_url": "https://example.com/cup.jpg",
"resolution": "720p",
"duration": 5,
"aspect_ratio": "9:16",
"mode": "async"
}'Which should I choose?
Use a first frame when the opening shot has to match something you already approved, such as a product photo or a thumbnail. Use references when you want identity or style carried across a scene you describe, and you can accept a different composition. A start frame plus end_image_url also gives you the first and last frame interpolation Google added at Omni 1.1 general availability, which its release notes describe as image-to-video with up to two images.
If you are unsure which mode ran, look at the first still of the result with Sume's video frames and compare it with your input. A first-frame clip starts on your image. A reference clip only resembles it.
Sources
Related posts
More in Developers
- Omni video_url or reference_video_urls: edit a clip or borrow from it?
On Sume, video_url edits your clip and keeps its framing. reference_video_urls only conditions a new clip. How the two differ in limits, fields and billing.
- Genkit createMcpHost: connect the hosted Sume MCP server
Genkit's createMcpHost takes a url and requestInit headers for remote servers. Wire https://mcp.sume.com/mcp into ai.generate and close the host after.
- Get one Sume video model by id: GET /v1/video-router/models/{id}
Look up a single Sume video model's limits and price with GET /v1/video-router/models/{id}. Response fields, the 404 for unknown ids, and a short script.
- GitHub App ghs_ tokens are now ~520 characters: check Sume calls
GitHub's new installation tokens are about 520 characters, not 40. What breaks in a workflow that also calls Sume, and why Sume takes one credential header.
Written by Sume