Gemini Omni previous_interaction_id vs a Sume job per request
Google chains Omni 1.1 Flash extensions with previous_interaction_id. Sume has no such field: each request is its own job, and an edit takes a video_url.

In Google's Gemini API, previous_interaction_id links a new client.interactions.create call to an earlier video interaction so the model continues that scene. Sume's published video contract has no equivalent field: every request is a separate job with its own id, and you carry state yourself by passing media back in.
The Google side is from its Omni 1.1 Flash developer post; the Sume side is from Video generation and Video Router, both read 2026-10-01.
What does previous_interaction_id do in the Gemini API?
Google's example calls client.interactions.create with previous_interaction_id set to an earlier video interaction and a text input of "Continue the scene." Google says Omni 1.1 can analyze up to 10 seconds of prior context, where earlier models referenced only the final second, and that you extend in 10-second increments up to 40 seconds in total.
The state, in other words, lives on Google's side and is addressed by an interaction id.
How does Sume handle the same job?
Sume does not chain by id. A request to the Video Router with gemini-omni-flash-1.1 returns a job; poll it and read the result when it completes. To build on a result, you send the next request yourself, using the clip as input. The docs list Omni Flash 1.1 at 3–10 seconds at 360p/720p/1080p/4K in 16:9 or 9:16 with native synced audio, and it exposes video edit mode through the Video Router video_url field.
That edit mode is the closest Sume analogue to "take this clip and change it". For longer sequences, see the 40-second extension comparison.
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-edit-001" \
-d '{
"model": "gemini-omni-flash-1.1",
"prompt": "Replace the bottle with an apple. Keep everything else the same.",
"video_url": "https://example.com/clip.mp4",
"resolution": "720p",
"mode": "async"
}'What changes in my code?
| Concern | Gemini API (Google post) | Sume |
|---|---|---|
| Continuation | previous_interaction_id | Next request carries the clip as video_url (edit) or other inputs |
| Unit of work | An interaction | A job with its own id |
| Result | Returned by the interaction | The job result, read after the job completes |
| Safe retry | Not covered in the post | Idempotency-Key makes retries safe; a replay returns the original job |
Why does the Idempotency-Key matter here?
Because each step is its own paid job, a retried network call could otherwise create a second one. The docs say to send Idempotency-Key so retries are safe. Store one key per logical step, and see idempotency keys for AI video APIs.
Sources
Related posts
More in Developers
- Gemini Omni videos over 4MB: poll to ACTIVE vs a Sume result URL
Gemini Omni returns large videos as a URI you poll until ACTIVE. Sume results are durable media.sume.com URLs with no ACTIVE state and no expiry to manage.
- Gemini Omni Flash has no temperature, top_p or negative prompt
Gemini Omni Flash has no system instructions, temperature, top_p, stop sequences or negative prompts. Put negatives in the prompt; Sume has no such fields.
- Gemini Omni Flash video edit: 5 reference images vs Sume
Runway's Gemini Omni Flash video-to-video edit accepts up to 5 reference images. On Sume, a video_url edit cannot be combined with any reference field.
- Gemini Omni store=false sync video vs Sume's 30-second sync cap
Gemini suggests background=false, store=false, stream=false for synchronous video. Sume sync mode waits at most 30 seconds, then you poll status_url.
Written by Sume