Gemini Omni 1.2 Flash API: Generate and Edit Video
Generate up to 15 seconds, then refine the clip in a conversation.
On this page
- What the Gemini Omni 1.2 Flash API supports
- Generate a video through the Interactions API
- Edit a generated clip without starting over
- Duration, resolution and reference limits
- What Google's official samples show
- Official pricing: estimate a clip correctly
- Choosing a video workflow
- Frequently asked questions
- Is the Gemini Omni 1.2 Flash API free?
- Which endpoint does the Gemini Omni 1.2 Flash API use?
- How long can one Gemini Omni 1.2 Flash clip be?
- Can I edit a video I uploaded, or only generated clips?
- What happens to gemini-omni-1.1-flash?
- Sources checked
The Gemini Omni 1.2 Flash API became generally available on November 5, 2026, on the paid tier of the Gemini API. One request returns a 3–15 second video with audio, and a follow-up request edits that same clip without a re-upload (Google's release notes and Omni guide, checked November 6, 2026).
- Model:
gemini-omni-1.2-flash, called throughclient.interactions.createorPOST /v1beta/interactions. - Clip: 3–15 seconds at 24 fps, 16:9 or 9:16, with a generated audio track.
- Editing: a second turn with
previous_interaction_idrewrites a clip you generated, up to 15 seconds of input. - Price: about $1.04 in video tokens for a 15-second 720p clip, plus input and text tokens.
What the Gemini Omni 1.2 Flash API supports
Requests go to POST https://generativelanguage.googleapis.com/v1beta/interactions with "model": "gemini-omni-1.2-flash" in the body. This is the Interactions API, the interface Google recommends for new projects since it became generally available in June 2026 (Interactions API overview, checked November 6, 2026); the older generateContent interface still serves other Gemini models.
The model returns video with native audio, plus text (model card). Output runs at 24 fps, 360p, 720p by default, 1080p with upscaling, or 4k with upscaling, and every clip carries an invisible SynthID watermark. Landscape 16:9 is the default and portrait gives 9:16.
Access is paid only. Google's pricing table shows Not available under Free Tier for both input and output, and the rate-limit page starts Omni Flash at 8 requests per minute and 40 per day on Tier 1 (pricing, rate limits, checked November 6, 2026).
The previous model, gemini-omni-1.1-flash, stays usable during a four-week transition. On December 3, 2026, requests sent to it are handled by 1.2 at 1.2 prices, with no code change.
Generate a video through the Interactions API
The Python SDK is three moves: create a client, create the interaction, write the base64 video to a file. The example sets an explicit duration and keeps the interaction stored so the clip can be edited later. It needs the google-genai package (pip install -U google-genai) and a Gemini API key in GEMINI_API_KEY; both turns go to Google's endpoint, so an OmniaKey key will not work here.
# Setup: install google-genai and set GEMINI_API_KEY to your Google API key.
import base64
import os
from google import genai
client = genai.Client(api_key=os.environ["GEMINI_API_KEY"])
# Turn 1: generate a 15-second landscape clip and keep it editable.
first = client.interactions.create(
model="gemini-omni-1.2-flash",
input=(
"One continuous tracking shot follows a paper airplane gliding "
"through a busy library, dust in the sunlight."
),
response_format={
"type": "video",
"duration": "15s", # whole seconds from "3s" to "15s"; default "10s"
"aspect_ratio": "16:9", # or "9:16"
"resolution": "720p", # 720p is the default; 1080p and 4k are upscaled
},
store=True,
)
# Turn 2: edit that clip with a follow-up prompt, no re-upload.
edit = client.interactions.create(
model="gemini-omni-1.2-flash",
previous_interaction_id=first.id,
input="Make the paper airplane bright red. Keep the camera move unchanged.",
)
with open("library_flight.mp4", "wb") as f:
f.write(base64.b64decode(edit.output_video.data))
Duration takes whole seconds as a string, from 3 to 15, and the model generates 10 seconds when the field is left out. Resolution is a sibling key in the same response_format object, next to the type setting.
The SDK reads the finished file from output_video.data as base64. A raw REST call hands you the same bytes inside steps[], in a content entry of type video, because that field exists only in the SDKs. For clips above 4 MB, add "delivery": "uri" to response_format (Omni guide, checked November 6, 2026); you then poll client.files.get until the file state is ACTIVE and pull it with client.files.download.
The snippet is adapted from Google's Python example and passed a syntax check; we have not run it against the API.
Edit a generated clip without starting over
Pass the first interaction's id as previous_interaction_id and describe the change. The model keeps the clip's context, applies the edit and returns a new video; Google's edit example sends only the model, that id and the prompt, the same three fields turn 2 uses (Omni guide, checked November 6, 2026).
store=True (the default) on any turn you plan to edit. With store=false, later turns cannot use previous_interaction_id to continue the clip.Extension uses the same loop. Ask for a continuation in plain language and the model appends 3–10 seconds, 10 by default, using the final 10 seconds of the input video as context, up to 30 seconds in total. It appends at the end only, so you cannot add a scene before the opening frame or in the middle.
For footage you shot yourself, upload a clip of 15 seconds or less through the Files API and prompt against it. Editing and extending uploaded videos is unavailable in the EEA, Switzerland and the United Kingdom, while editing clips the model generated works in those regions. Voice editing is unsupported in the current version, as are audio inputs and audio references, and audio inside a reference video is ignored.
Duration, resolution and reference limits
The ranges differ by operation; the table follows Google's guide (Omni guide, checked November 6, 2026).
| Operation | Duration | Detail |
|---|---|---|
| Text or image to video | 3–15 s | 10 s default |
| First and last frame | 3–10 s | Two frames |
| Edit a clip | ≤15 s input | Uploaded or generated |
| Extend, per turn | +3–10 s | 10 s default |
| Extended total | 30 s | Final 10 s as context |
References have their own caps:
- Up to 6 reference images per request, with up to 3 images per character for up to 2 characters.
- 11–15 second outputs accept 1 reference video of up to 3 seconds; 3–10 second outputs accept up to 3 reference videos of up to 3 seconds each.
- Reference videos work when you generate a new clip. Editing and extension take reference images instead.
- YouTube links cannot be used as media input; upload the file first.
What Google's official samples show
Google published nine demo clips with the November 5, 2026 launch post (checked November 6, 2026). We downloaded two and checked them with ffprobe: both are 1920×1080 at 24 fps with an AAC stereo track, and both files open with a title slate, so the file length is longer than the scene inside it.

The pair shows how far a single clip can travel in framing. At 6 seconds a man kneels in shallow water with one hand on driftwood; at 12 seconds the camera sits high above the coast, the person small near the waterline, palm-covered hills on the left and open ocean on the right.

The Pantheon frame at 12 seconds lands inside the building: the circular oculus, the concentric square coffers around it and a patch of sunlight on the interior. Google's caption describes a continuous drone flight guided by two architectural photos; at 6 seconds the same sample is still outside among the columns.
Official pricing: estimate a clip correctly
Google charges $1.50 per million input tokens for text, images and video, $9.00 per million text output tokens and $12.00 per million video output tokens, on the paid tier only (pricing page, checked November 6, 2026). Video is billed by output tokens, and 720p output uses 5,792 tokens per second.
| Output | Tokens/s | Approx. USD/s |
|---|---|---|
| 360p | 1,931 | $0.023 |
| 720p | 5,792 | $0.07 |
| 1080p upscaled | 8,688 | $0.104 |
| 4k upscaled | 17,376 | $0.209 |
One 15-second 720p clip bills 15 × 5,792 × $12.00 / 1,000,000 = $1.04256 in video tokens, about $1.04, before the input and text tokens. Round only after calculating the total.
Choosing a video workflow
Generate with Omni when one 15-second shot with sound covers the scene, or when the clip will go through several rounds of small changes. The edit loop is the reason to pick it: each turn keeps the previous clip's context, so you can change one prop, one background or one camera note per message instead of re-describing the whole scene.
Choose a different model when the shot has to run longer in one pass, or when the work is built around reference video. ByteDance's Seedance 2.5 generates up to 30 seconds in a single request, as the Seedance 2.5 review reports, and the Kling 4.0 vs Seedance 2.5 comparison covers the motion and reference-first workflows.
Omni is Google's own paid release and sits outside OmniaKey's video catalog. Seedance 2.5 is available there for long single shots, and the AI Video Generator runs prompts in the browser without code.
Frequently asked questions
Is the Gemini Omni 1.2 Flash API free?
No. The model is on the paid Gemini API tier, and Google's pricing table shows Not available for it under Free Tier.
Which endpoint does the Gemini Omni 1.2 Flash API use?
It uses the Interactions API. Send POST https://generativelanguage.googleapis.com/v1beta/interactions with "model": "gemini-omni-1.2-flash", or call client.interactions.create in the Python, JavaScript, Go or Java SDK. generateContent is the older interface used by other Gemini models.
How long can one Gemini Omni 1.2 Flash clip be?
A generation request runs 3–15 seconds and defaults to 10. Extension adds 3–10 seconds per turn up to 30 seconds total, first-and-last-frame interpolation stays within 3–10 seconds, and input video for editing must be 15 seconds or less.
Can I edit a video I uploaded, or only generated clips?
Both, with limits. Uploaded clips must be 15 seconds or less, and editing or extending them is unavailable in the EEA, Switzerland and the United Kingdom; clips the model generated can be edited and extended in those regions.
What happens to gemini-omni-1.1-flash?
It keeps working during a four-week transition window. From December 3, 2026, requests to it are handled by gemini-omni-1.2-flash and billed at 1.2 prices, with no code change.
Sources checked
Related articles
Seedance 2.5 review
The meaningful upgrade is 30-second storytelling and production control, not the unverified 4K headlines circulating around it.
Kling 4.0 vs Seedance 2.5: Which AI Video Model to Use?
Kling 4.0 and Seedance 2.5 differ on stereo audio, reference limits and API access; Kling's samples sit beside our Seedance 2.5 runs of the same prompts.
Hailuo API: MiniMax H3 Python Guide and 3 Video Modes Tested
One script, three modes: create a task, poll it, download the MP4. Every clip came back with sound.

