Gemini Omni 1.2 Flash video API
Google's Omni video model released on 5 November 2026: clips up to 15 seconds, closer adherence to reference images, clearer lip-synced speech. One model id with three input modes chosen by the fields you send — a prompt alone is text-to-video; images (up to 3) is reference-to-video; first_frame_url, optionally with last_frame_url, anchors the shot. Output is 720p or 1080p, 16:9 or 9:16, with synced audio. Billed per output second, 36–50% below Google's official rate.
Pricing (per output second)
| Resolution | apimodels.app | Google official | 8-second clip | 15-second clip |
|---|---|---|---|---|
| 720p | $0.045/s | $0.07/s | $0.36 | $0.675 |
| 1080p | $0.052/s | $0.104/s | $0.416 | $0.78 |
You pay for the duration you request. 4K and 360p are not offered on this model here. Only delivered videos are charged; failures and safety rejections are not.
Create a task
POST /api/v1/video/generations — async: create, then poll the same endpoint (or pass callback_url), same flow as the rest of the video family.
# 1) Text-to-video — a prompt alone
curl -X POST https://api.apimodels.app/v1/video/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-omni-1.2-flash",
"prompt": "a street food stall at night, steam rising, handheld camera pushing in, a vendor says: two more minutes!",
"duration": 12,
"resolution": "720p",
"aspect_ratio": "16:9"
}'
# 2) Reference images — up to 3 (a character, a product, a style)
curl -X POST https://api.apimodels.app/v1/video/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-omni-1.2-flash",
"prompt": "the woman from the first image unboxes the sneaker from the second image in a sunny studio",
"images": ["https://example.com/person.jpg", "https://example.com/sneaker.jpg"],
"duration": 8,
"resolution": "1080p",
"aspect_ratio": "9:16"
}'
# 3) First / last frame — anchor the opening (and optionally the closing) frame; 3-10 s with both
curl -X POST https://api.apimodels.app/v1/video/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-omni-1.2-flash",
"prompt": "the product slowly rotates while the lighting shifts from cool to warm",
"first_frame_url": "https://example.com/first.jpg",
"last_frame_url": "https://example.com/last.jpg",
"duration": 6
}'
# Poll (shared with the rest of the video family)
curl "https://api.apimodels.app/v1/video/generations?task_id=TASK_ID" \
-H "Authorization: Bearer YOUR_API_KEY"Parâmetros da requisição
| Field | Required | Type | Description |
|---|---|---|---|
| model | Yes | string | "gemini-omni-1.2-flash" |
| prompt | Yes | string | Scene, action, camera, style and audio direction (dialogue, music, ambience) |
| duration | No | number | Any whole number of seconds from 3 to 15 (default 8); 3 to 10 when both first_frame_url and last_frame_url are set. "seconds" is accepted as an alias |
| resolution | No | string | "720p" (default) or "1080p". 4K and 360p are not available on this model here |
| aspect_ratio | No | string | "16:9" (default) or "9:16" |
| images | No | array | Reference images (URL or base64), up to 3 → reference-to-video. image_urls / reference_image_urls are accepted aliases. Cannot be combined with first_frame_url |
| first_frame_url | No | string | First frame (URL or base64) → the clip opens on this image. Cannot be combined with reference images |
| last_frame_url | No | string | Last frame; requires first_frame_url — the model moves from the first frame to this one. Limits duration to 10 seconds |
| callback_url | No | string | Webhook URL called when the task completes |
Limits and notes
- Not supported on this model here, and rejected with a 400 at creation (not charged): video input (video_list / video_url), audio_ids, character_ids, seed, 4K, 360p, aspect ratios other than 16:9 / 9:16, more than 3 reference images, a last frame without a first frame, and a first frame together with reference images.
- Need video editing, 4K, more than 3 reference images or saved voices and characters? Gemini Omni 1.1 Flash still offers those — same request shape, change the model string.
- Success is not 100%. Upstream safety filters can reject a prompt or an image, and the model can be temporarily unavailable; failed requests are never charged. If the primary upstream channel is unavailable, the request switches automatically to a second channel at the same price.
- Result files are auto-deleted after 30 days — download promptly. Generation takes roughly 1-3 minutes; poll every 10 seconds.
Related
Perguntas frequentes
How much does the Gemini Omni 1.2 Flash API cost on apimodels.app?
gemini-omni-1.2-flash is billed per requested second: 720p $0.045/s and 1080p $0.052/s, against Google's official $0.07 and $0.104. An 8-second 720p clip is $0.36 and a 15-second 1080p clip is $0.78. Failed generations are not charged.
What durations, resolutions and inputs does gemini-omni-1.2-flash support?
duration is any whole number of seconds from 3 to 15 (3 to 10 when both first_frame_url and last_frame_url are set); resolution is 720p or 1080p; aspect_ratio is 16:9 or 9:16. Send a prompt alone for text-to-video, images (up to 3) for reference-to-video, or first_frame_url with an optional last_frame_url. Reference images cannot be combined with a first frame; video input, 4K and 360p are not available on this model here.