Google cut the price of its video model on November 5. Gemini Omni 1.2 Flash is generally available in the Gemini API, makes clips up to 15 seconds long, and costs about $0.07 per second of 720p video. Omni 1.1 Flash costs about $0.10 per second at the same resolution, according to Google's pricing page.

The line in the release notes that will reach your code is easier to miss. The Gemini API changelog says that starting December 3, 2026, requests to gemini-omni-1.1-flash automatically route to gemini-omni-1.2-flash and bill at 1.2 rates. You don't have to change anything for that to happen, which also means nothing in your deploy history will show the day the model changed.

What shipped on November 5

Google's launch post lists what changed from 1.1:

  • Clips up to 15 seconds in one generation, up from 10, with the length set in one-second steps from 3 to 15.
  • Multi-turn editing: swap a product or a background, change lighting or aspect ratio, without regenerating the clip.
  • Better consistency for faces, garments, typography and brand colors across shots, with up to 6 reference images per the changelog.
  • Drafts at 360p or 720p, with upscaling to 1080p or 4K.
  • An invisible SynthID watermark on every output.

Google is specific about the weak spots. The post says development is ongoing "to further improve things like fast sports action, rapid script changes and complex physics" (Google). Google DeepMind's model page shows a side-by-side win rate of 62% to 38% for 1.2 over 1.1 on visual consistency, which The Next Web reports as testers preferring 1.2. That is a vendor's number, and it leaves room for plenty of clips where 1.1 looked as good or better.

The model ID is gemini-omni-1.2-flash, and calls go through the Interactions API. This is the basic sample from the Omni docs, with the prompt string split to fit:

import base64 from google import genai client = genai.Client() interaction = client.interactions.create( model="gemini-omni-1.2-flash", input=( "A marble rolling fast on a chain reaction " "style track, continuous smooth shot." ), ) with open("marble.mp4", "wb") as f: f.write(base64.b64decode(interaction.output_video.data)) 

The same docs say: "When you don't set the duration, the model defaults to 10 seconds." Ask for more than 15 and you get an invalid argument error.

A film strip unrolling from a vintage camera, its longer new section highlighted in burnt orange, while scissors trim a small price tag hanging from it
Longer clips, lower price per second. The price per call depends on how long you ask for.

What a clip costs now

Omni bills video as output tokens: $12.00 per 1M for 1.2, against $17.50 per 1M for 1.1 (pricing). The pricing page converts that into seconds:

Resolution Tokens per second 1.2 price per second 15-second clip
360p 1,931 $0.023 about $0.35
720p 5,792 about $0.07 about $1.04
1080p (upscaled) 8,688 $0.104 about $1.56
4K (upscaled) 17,376 $0.209 about $3.13

The 720p clip total is Google's figure. The other three totals in the last column are my arithmetic from the page's token rates at $12 per 1M tokens.

A 4K clip costs three times a 720p clip of the same length, so the upscale step is where a video budget goes. The 30% cut is also per second. If your product moves from 10-second clips to 15-second ones, the bill per call goes up slightly: a 15-second 1.2 clip at 720p is about $1.04, and a 10-second 1.1 clip at the same resolution works out to about $1.01 by the same arithmetic at 1.1's rate.

There is no free tier for either model: the pricing page lists free-tier input and output as "Not available", and the rate limits page lists Free as "Not supported". A paid Tier 1 project gets 8 requests per minute and 40 per day. Tier 3 gets 40 per minute and 2,000 per day. Limits apply per project, not per API key. The changelog says paid-tier limits doubled with this release.

December 3: the reroute you don't have to approve

The deprecations page is plain about it: "Effective December 3, 2026, the endpoint is automatically routing API requests to gemini-omni-1.2-flash". The Omni docs add that this happens "with no code changes required." Omni 1.1 Flash was released on August 27, 2026, and the older gemini-omni-flash-preview was shut down on October 22, per the same deprecations page.

The switch is cheaper and needs no code change. What changes is the model answering your request, and Google's model page shows the two are not the same:

  • Audio. The model page lists 1.1's output as "Video" and 1.2's as "Video with native Audio, Text". The Omni docs say 1.2 "generates a video with audio based on your text description." If a step downstream assumes a silent track, check it.
  • Edit and extend inputs. 1.1 took input video up to 10 seconds for editing and extension. 1.2 takes up to 15 seconds for editing, uses a 10-second lookback for extension, and extends up to 30 seconds total.
  • The look. Google's 62% figure comes from Google DeepMind's own comparison (DeepMind). Your prompts, your brand colors and your reference images were not in that sample.

A railway track switch flipping a small train of film-reel cars from a faded old track onto a new burnt-orange track, under a blank tear-off calendar page
On December 3, the same model ID leads to a different model.

Google did the same thing with its December 1 reroute of gemini-2.5-pro to Gemini 3.8 Flash: the ID stayed fixed while the model and the price behind it changed.

Two things the docs say that the launch post doesn't

The launch post names "audio cues" among the reference inputs (Google). The API docs say: "Uploading audio inputs or audio references is unsupported in the current version of the API." Audio inside a reference video is ignored. The blog covers several products at once, including Flow and the Gemini app, so the cue may live there. On the API, build against the docs.

Multi-turn editing chains turns with previous_interaction_id. The docs also say setting store=false "means the generated video won't be editable in subsequent turns." If your team turns storage off for data reasons, editing is off too, and every change becomes a new generation at full price.

What to do before December 3

  1. Find every hardcoded Omni ID in your code:
grep -rn "gemini-omni-1.1-flash" . grep -rn "gemini-omni-flash-preview" . 

A hit on the preview ID points at a model the model page lists as shut down.

  1. Move to gemini-omni-1.2-flash yourself, behind a config value, so you pick the day:
import os OMNI_MODEL = os.environ.get( "OMNI_MODEL", "gemini-omni-1.2-flash" ) 
  1. Re-run a fixed set of your own prompts and reference images on 1.2, and put the results next to the 1.1 clips you shipped. Check the audio track, the duration and the file size. The docs offer a delivery setting of "uri" that returns a hosted file URI for outputs over 4MB.
  2. Check your rate-limit tier against your peak. Tier 1 allows 8 requests a minute but only 40 a day, so a batch job running at the per-minute cap uses up the day in five minutes.

Moving early also gets you the lower price now instead of on December 3.

Does a vendor swapping the model behind an ID you pinned count as a breaking change in your book, even when it gets cheaper? Tell me in the comments.

If this was useful

A reroute like this is a quality change you never deployed. Catching it takes three habits: trace which model actually answered each request, keep an eval set you can re-run the week a vendor swaps the model behind an ID, and watch cost per request instead of the monthly total. Observability for LLM Applications is the book I wrote about exactly that, for LLM features running in production.

I also build Hermes IDE, so weigh this with that in mind: it's a free, source-available desktop app for macOS, Windows and Linux that runs Claude Code, Codex and other coding agents side by side, each in its own worktree. Download it or read the code on GitHub.

Observability for LLM Applications — the book