Output of the text-to-video example below: gemini-omni-1.2-flash, 720p, 10 seconds, 16:9. The character speaks the line written in the prompt
Pricing and model choice
Pricing
Gemini Omni 1.2 Flash is billed per video, andresolution alone sets the price:
seconds: any length from 3 to 10 seconds costs the same, so a 10-second 720p clip works out to $0.03 per second.- Images: a first frame or reference images cost nothing extra.
reasoning_effortand the aspect ratio.
- You are charged when the task is created, and failed tasks are refunded in full, including tasks blocked by content moderation.
- Requests rejected at submission with a parameter error are not charged.
- Each resubmission creates a new task and is charged again, so keep a mapping between your own job ID and the task
id.
Choose between video models
As of November 11, 2026, Gemini Omni 1.2 Flash has the lowest price on LaoZhang API for a 10-second 1080p clip ($0.45). At $0.10 per clip, 360p is a cheap way to try prompts in bulk.- Characters that speak lines, or 1080p output: use Gemini Omni 1.2 Flash.
- One continuous clip of 20–60 seconds, continuing an existing video, or ratios such as 1:1 and 4:3: use Muse. It shares the
/v1/videosendpoint, so the same token works and you only change the model. - 2K, reference video, or reference audio: use MiniMax H3.
Sample outputs
These clips are unedited Gemini Omni 1.2 Flash output with the audio track the model generated. Click a clip to play it. Each caption lists the resolution, length, aspect ratio, and prompt. The Muse sample outputs and the MiniMax H3 sample outputs use the same prompts, so you can compare the models scene by scene.720p, 5 seconds, 16:9. Prompt: A red fox walking through snowy forest at sunrise, cinematic
720p, 10 seconds, 16:9. Prompt: A paper boat drifts down a rainy city gutter, then sails into a small sunny pond
1080p, 10 seconds, 16:9. Prompt: A hot air balloon rises over a valley at dawn, drifts over a river and a village, then lands in a meadow
1080p, 10 seconds, 9:16 portrait. Prompt: A cyclist rides through a coastal town from morning to sunset: market, harbor, cliff road, lighthouse
Before you start
Create a token
Add a token in Token management with these settings:How it works
Create a task
POST /v1/videos with at least model and prompt. The endpoint is asynchronous: it returns a task id within seconds instead of waiting for the video. Save it.Poll the status
GET /v1/videos/{id} every 5–10 seconds and read status. Short 360p clips usually finish in 30–60 seconds, a 10-second 720p clip takes about 1 minute, and a 10-second 1080p clip about 1.5–2 minutes.Download the result
status is completed, download the MP4 from video_url. The download needs no Authorization header.Set up
The cURL examples usejq to read fields from responses (brew install jq on macOS). Set your key and base URL first:
Generate videos
Generate a video from text
resolution:720pwhen left out. To check a prompt first, send360pat $0.10 per clip.seconds: a whole number from 3 to 10; 10 when left out.aspect_ratio:16:9or9:16;16:9when left out.
Make characters speak dialogue
Write the line directly inprompt, put it in quotation marks, and say who speaks it. The character in the clip then says it aloud. Lines in English, Chinese, Japanese, Korean, and Russian all work, and the example above is written this way.
Without a spoken line, the model adds ambient sound and effects that fit the scene. To get a particular sound, name it in the prompt, for example “soft rain and violin in the background”.
Generate a video from an image
Pass one image inimage and the clip opens on that picture. The image can be a public URL or a data:image/...;base64, data URL:
input_reference:
Content-Type: application/json when you upload with -F. Each image can be up to 10 MB, in JPEG, PNG, or WebP.
Generate from reference images
Send several images inreference_images and the model puts their people, objects, and settings into one clip. In the prompt, refer to them as “image 1”, “image 2”, and so on, in array order:
imageandreference_imagestogether can hold at most 6 images. A seventh returns an error.- In a multipart upload, the reference image field is
reference_images, and you can repeat it. - You can send
imageandreference_imagestogether:imagesets the opening shot, and the reference images supply the people or objects that should appear. - For the limits on real people, see Content restrictions.
Portrait and 1080p
For a portrait clip, send"aspect_ratio": "9:16". You can also use size to set the resolution and the ratio in one field, for example portrait 1080p:
size accepts are listed under Request fields. The price follows the matching resolution tier: 1080x1920 is 1080p, so it costs $0.45.
Poll and download
Get the task
status is in_progress and progress gives a rough percentage:
video_url:
status: "failed" and the reason in error.message. Its charge has already been refunded:
Download the video
GET /v1/videos/{id}/content with your Authorization header; it returns the MP4 file. Video links stay available for 7 days, so download the file and store it yourself if you need it for longer.
Minimal Python client
Requiresrequests (pip install requests):
API reference
Request fields
size maps to resolution and aspect ratio:
- Reference video, reference audio, and a last frame (fields such as
video_urlandlast_frame). - 2K and 4K, and any aspect ratio other than
16:9and9:16. secondsbelow 3 or above 10.
Output format
- Format: MP4 with H.264 video and an AAC audio track, at 24 fps.
- Size and length match the request. For example,
720pwith9:16gives 720×1280. - The file carries Google’s C2PA content credentials and an invisible SynthID watermark. There is no visible watermark on the picture.
Task status
Content restrictions
The model blocks two kinds of content. A blocked task comes back asfailed and is refunded in full:
- Real people: a real person’s name in the prompt is blocked. The model does not generate real people’s likenesses either, so images such as celebrity photos may be blocked.
- Sexual content and copyright-protected characters.
Errors
The table lists each error by where it appears:FAQ
How much does the Gemini Omni 1.2 Flash API cost per video?
The price depends on resolution: $0.10 per video at 360p, $0.30 at 720p, and $0.45 at 1080p, for any length from 3 to 10 seconds. A 10-second clip costs about 43% of Google’s list price; the comparison is under Pricing.Do I need a Google account or Gemini API key for Gemini Omni?
No. CallPOST /v1/videos with a LaoZhang API token in the default group, with the billing mode set to Usage first.
How long can Gemini Omni 1.2 Flash videos be? Does it do 4K?
One clip runs 3 to 10 seconds, and the highest resolution is 1080p; 2K and 4K are not available. For one continuous clip of 20–60 seconds, use Muse. For 2K, use MiniMax H3.Do Gemini Omni 1.2 Flash videos have a watermark?
There is no visible watermark on the picture. The file carries Google’s C2PA content credentials and an invisible SynthID watermark, which mark the video as AI-generated.How long does Gemini Omni 1.2 Flash take to generate a video?
Short 360p clips usually take 30–60 seconds, a 10-second 720p clip about 1 minute, and a 10-second 1080p clip about 1.5–2 minutes. The endpoint is asynchronous: submitting and polling both return immediately, so poll every 5–10 seconds.How do I switch Muse or Sora 2 code to Gemini Omni 1.2 Flash?
The endpoint is the same, so the create and poll paths stay as they are, and so does your token. Change three things:- Set
modeltogemini-omni-1.2-flash. - Set
secondsto a value from 3 to 10. - Add
resolutionwhen you want 360p or 1080p; without it you get 720p.
Related docs and sources
- Video generation API comparison and pricing: what one clip costs on each video model, with endpoints and token groups.
- Muse video API: 20–60 second clips and video continuation on the same endpoint.
- Models and pricing
- Gemini Omni 1.2 Flash launch announcement
- Google: Introducing Gemini Omni 1.2 Flash (model capabilities, checked November 11, 2026)
- Google: Gemini API pricing (Google’s per-second prices, checked November 11, 2026)