Google now ships two generative video models behind the same API key, and they are not versions of each other. Veo 3.1 is the cinematic renderer with native audio. Gemini Omni 1.1 Flash, generally available since August 27, 2026, is the conversational one you edit across turns.
Picking between them comes down to three questions: do you need sound, do you need to iterate on a clip after you’ve seen it, and how long does the finished video have to be. Here’s how each model answers.
The comparison table
| Gemini Omni 1.1 Flash | Veo 3.1 | |
|---|---|---|
| Model id | gemini-omni-1.1-flash |
veo-3.1-generate-preview (plus fast and lite variants) |
| API surface | Interactions API (/v1beta/interactions) |
generateContent, long-running operation |
| Native audio | No | Yes, always on |
| Base clip length | 10 seconds | 4, 6, or 8 seconds |
| Max length via extension | 40 seconds, in 10-second steps | 148 seconds, 7 seconds at a time, up to 20 extensions |
| Context read when extending | Up to 10 seconds of prior footage | Not stated |
| Conversational editing | Yes, via previous_interaction_id |
No |
| First and last frame | Yes | Yes, via lastFrame |
| Reference media | Up to 3 video clips of 3 seconds each | Up to 3 reference images |
| Resolutions | 360p, 720p, 1080p, 4K | 720p, 1080p, 4K (720p only when extending) |
| Aspect ratios | 16:9, 9:16 | 16:9, 9:16 |
| 720p cost per second | ~$0.10 | $0.40 standard, $0.10 fast, $0.05 lite |
| Free tier | No | No |
| Watermark | SynthID | SynthID |
Where Omni 1.1 Flash wins
You need to change something after you’ve seen it. This is the real differentiator. Omni runs on the Interactions API, so you generate a clip, look at it, and send a follow-up turn that edits it:
res1 = client.interactions.create(
model="gemini-omni-1.1-flash",
input="A woman playing violin outdoors.",
)
res2 = client.interactions.create(
model="gemini-omni-1.1-flash",
previous_interaction_id=res1.id,
input="Make the violin invisible.",
)
No re-upload, no re-describing the scene. Veo has no equivalent: every Veo request is a fresh generation, and a change means a new prompt and a new roll of the dice.
You want to draft cheaply. Omni’s 360p tier generates up to 60% faster at a third of the 720p cost. Veo’s lowest resolution is 720p. When you’re twelve attempts deep on a prompt, that difference compounds; the pricing breakdown runs the numbers.
You’re feeding it video, not stills. Omni takes up to three reference clips of three seconds each and maps their movement onto the new scene. Veo’s references are images. If you’re matching a motion or a character across shots, motion references do work that stills can’t.
You need a shot to hold together across an extension. Omni reads up to 10 seconds of prior footage before continuing, versus the single final second the preview model used. The scene extension guide covers what that buys you.
Where Veo 3.1 wins
You need audio. Veo generates native audio with the video. Omni’s docs cover video output and ignore audio on reference clips. If your deliverable has sound, this decides it on its own, and the Veo 3.1 API guide is the integration to read.
You need more than 40 seconds. Veo extends 7 seconds at a time up to 20 times, reaching 148 seconds. Omni caps at 40. Note the constraint: extended Veo output is 720p only, so a long clip and a 4K clip are different jobs.
You want the cheapest possible second. Veo 3.1 Lite runs $0.05 per second at 720p, half of Omni’s rate. It drops 4K support in exchange. For high-volume, low-stakes generation, Lite is the budget floor across both families.
You want a shorter clip. Veo does 4-second and 6-second generations. Omni generates 10 seconds. If you need a 4-second cut, Veo bills for 4 seconds and Omni bills for 10.
The decision in four lines
- Needs sound? Veo 3.1.
- Needs to be longer than 40 seconds? Veo 3.1.
- Needs editing after you’ve seen it, or drafting on a budget? Omni 1.1 Flash.
- Needs the cheapest second and nothing else? Veo 3.1 Lite.
Plenty of pipelines end up using both: Omni to explore and lock the shot conversationally, Veo to render the final take with audio. They share an API key, so running both costs you nothing in setup.
Two integrations, not one
Whichever way you go, remember they’re structurally different endpoints. Omni is a POST to /v1beta/interactions with the model in the body, and it returns video inline as base64 unless the file exceeds 4MB, in which case you get a URI. Veo runs as a long-running operation you poll, and generated files sit on Google’s servers for 2 days before removal.
That difference matters if you plan to swap models later. Code written against one won’t move to the other with a model-string change, and any abstraction layer you build needs to handle both a polled operation and a two-shape response body. The Omni API walkthrough covers that response handling.
Both are worth pinning down with saved requests before you build on them. Set up one request per model in Apidog, keep the API key in an environment variable, assert on the response shape, and raise the timeouts well past the defaults. When you’re comparing output quality, running the same prompt through both saved requests is a two-click job instead of two curl commands you’ll rewrite from memory next month.
FAQ
Is Gemini Omni a replacement for Veo? No. Google ships both, and Veo 3.1 is not deprecated. They’re different tools that happen to both generate video.
Which one is cheaper? At 720p, Omni (~$0.10/second) and Veo 3.1 Fast ($0.10/second) match. Veo 3.1 Lite is cheaper at $0.05. Standard Veo 3.1 is the most expensive at $0.40.
Can either one generate video with dialogue? Veo generates native audio. Omni’s video output doesn’t cover audio generation, and it can’t add dialogue when extending an uploaded video.
Do both watermark their output? Yes, both apply SynthID, which is invisible to viewers and detectable programmatically.
What about Sora or the other video APIs? Different providers, different tradeoffs. OpenAI Sora 2 and Seedance 1.0 are worth a look if you’re evaluating outside Google’s lineup.
Which one should I start with? If you’re prototyping and don’t need sound, start with Omni at 360p. It’s the cheapest way to find out whether generated video solves your problem at all. Download Apidog and save that first request so the comparison is repeatable.
The honest summary: Veo renders, Omni converses. Google’s video generation docs cover both, and neither is going away, so pick per job rather than per team.



