Table of contents

  1. Demo 1: a 10-second POV handoff
  2. Demo 2: two reference images and two voices
    1. Source references
  3. Demo 3: replacing the subject of an existing clip
    1. Source clip and reference
  4. Demo 4: iterate at 360p, finish at 1080p
  5. What the four demos cost

Omni 1.1 Flash on the Google Flow API

Google updated Gemini Omni Flash on August 26, 2026. The Flow interface now labels it Omni 1.1 Flash, and three things arrived with the rename:

What How to reach it
A 360p output tier at roughly half the credits resolution: "360p" on POST /videos
First and last frame, previously Veo-only startImage + endImage on model: "omni-flash"
A 360p to 720p upscaler resolution: "720p" on POST /videos/upscale

The model value stays omni-flash. It carries no version, so nothing you already run needs changing — the current label is readable as displayName on GET /accounts/email.

Everything below was generated through the public Google Flow API v1 on a single Google AI Pro account. Each demo shows the native output and the same clip after a free upscale, so you can judge what the upscaler actually does.


Demo 1: a 10-second POV handoff

Text-to-video, no references at all. The interesting part is asking for a camera handoff mid-shot — the camera starts as an observer at a café table, then becomes a bird and dives. Omni tends to cut rather than carry a move like that unless the transition is spelled out, so the prompt names it explicitly.

Shot in portrait at 10 seconds, which is the longest clip Omni produces and the shape social platforms want.

curlPOST /videos
curl --location 'https://api.useapi.net/v1/google-flow/videos' \
--header 'Authorization: Bearer user:1234-…' \
--form 'email="[email protected]"' \
--form 'model="omni-flash"' \
--form 'aspectRatio="portrait"' \
--form 'duration="10"' \
--form 'prompt="Two young women sit at a small café table on the top deck of the Eiffel Tower, laughing over coffee and a slice of cake, Paris spread out gold and hazy behind them. A pigeon lands on the railing beside them and tilts its head — and the camera becomes the bird: it drops off the rail and dives, the tower'\''s iron latticework rushing past, the Champ de Mars swinging up to meet it, until it levels out and skims low over the gravel path between the trees, weaving past strolling Parisians. Their chatter and laughter rise and fall, cups clink, an accordion plays somewhere below. One continuous shot, no cuts."'
720p — as generated
15 credits
1080p — after upscale
free

Audio is generated with the video, not added afterwards. The café ambience, the accordion and the wind on the dive all come out of the same request.


Demo 2: two reference images and two voices

Reference-to-video with an image supplying the subject’s likeness, a second image supplying a prop, and two voice presets driving a short exchange. The references are placed with inline @-mentions so each one is anchored to a specific noun rather than left to positional inference.

Note what the prompt does not say: it never describes the woman’s appearance or the cake. Identity comes from the references.

Source references

Portrait used as the subject likeness reference
SubjectreferenceImage_1
(@referenceImage_1 in the prompt)
Cheesecake used as the prop reference
PropreferenceImage_2
(@referenceImage_2 in the prompt)
curlPOST /videos
curl --location 'https://api.useapi.net/v1/google-flow/videos' \
--header 'Authorization: Bearer user:1234-…' \
--form 'email="[email protected]"' \
--form 'model="omni-flash"' \
--form 'aspectRatio="portrait"' \
--form 'duration="8"' \
--form 'referenceImage_1="user:1234-email:…-image:6faaf4d8-…"' \
--form 'referenceImage_2="user:1234-email:…-image:e45eb0e8-…"' \
--form 'referenceAudio_1="charon"' \
--form 'referenceAudio_2="aoede"' \
--form 'prompt="@referenceImage_1 as a late-1800s European aristocrat in a high-necked lace gown with pearl drops, sitting alone at a polished table in the dining car of a luxury steam train. A slice of @referenceImage_2 on fine china rests in front of her and she lifts a forkful to her lips. Warm brass lamps, white linen, the carriage swaying gently. She glances up to the window, where sunlit rural French fields roll past — and a dashing cavalier in a red riding coat gallops alongside the train on a chestnut horse, sweeping off his hat to her. Over the rush of wind and rails he calls (with the first voice): \"Bonjour, my lady!\" She smiles behind her hand and answers (with the second voice): \"You will tire that poor horse, monsieur.\" Warm film grain, the clatter of wheels on track and a distant whistle underneath."'
720p — as generated
12 credits
1080p — after upscale
free

The (with the first voice) and (with the second voice) markers are what bind a preset to a speaker. Without them the model picks arbitrarily. charon and aoede were chosen by ear — Google publishes tone descriptors for the 30 presets but no gender, so preview them at https://www.gstatic.com/aitestkitchen/voices/samples/<Name>.wav before casting a scene.


Demo 3: replacing the subject of an existing clip

Video-to-video edit. Two inputs go in together: the source clip as referenceVideo_1, and an image as referenceImage_1 supplying a new subject to drop into the existing motion. The instruction is to change who the person is while leaving the performance alone.

This combination is what separates a subject swap from a style transfer — an edit with no image reference restyles the scene, an edit with one replaces what is in it.

Source clip and reference

Source clipreferenceVideo_1
(uploaded via POST /assets/email)
Illustrated character used as the replacement subject
New subjectreferenceImage_1
(@referenceImage_1 in the prompt)
curlPOST /videos
curl --location 'https://api.useapi.net/v1/google-flow/videos' \
--header 'Authorization: Bearer user:1234-…' \
--form 'email="[email protected]"' \
--form 'model="omni-flash"' \
--form 'aspectRatio="landscape"' \
--form 'referenceVideo_1="user:1234-email:…-video:6087a39d-…"' \
--form 'referenceImage_1="user:1234-email:…-image:6faaf4d8-…"' \
--form 'prompt="Replace the woman in the video with @referenceImage_1. Keep her original pose, head movement, camera framing and the plain studio background exactly as they are — change only who she is."'
720p — as generated
20 credits
1080p — after upscale
free

The edit takes no duration. Output length comes from the input trim window, which defaults to the uploaded clip and is set explicitly with startFrameIndex_1 and endFrameIndex_1 on a 24 fps timeline capped at 240 frames.


Demo 4: iterate at 360p, finish at 1080p

The 360p tier is the practical reason to care about this release. A 4-second clip costs 4 credits instead of 7, and it renders faster — two 4-second clips in the same run came back in 35 seconds at 360p and 45 at 720p.

That makes 360p the right place to iterate on wording, then spend the credits once you like the result.

curlPOST /videos
curl --location 'https://api.useapi.net/v1/google-flow/videos' \
--header 'Authorization: Bearer user:1234-…' \
--form 'email="[email protected]"' \
--form 'model="omni-flash"' \
--form 'resolution="360p"' \
--form 'duration="4"' \
--form 'prompt="An astronaut'\''s glove drifts into frame against the curve of the Earth, sunrise flaring white off the visor as the terminator line creeps across the Pacific below. Slow weightless rotation, the station hull passing beneath. Almost silent — steady breathing inside the helmet and the soft tick of a suit radio."'

Then hand the result straight to the upscaler. A 360p clip can go to 720p, and it can also go directly to 1080p — both are free on a paid plan.

curlPOST /videos/upscale
curl --location 'https://api.useapi.net/v1/google-flow/videos/upscale' \
--header 'Authorization: Bearer user:1234-…' \
--form 'mediaGenerationId="user:1234-email:…-video:82e432a8-…"' \
--form 'resolution="1080p"'
360p — as generated, 640×360
4 credits
1080p — after upscale, 1920×1080
free

An upscaled 360p clip is not the same picture as one generated at 720p, so this is a drafting workflow rather than a free lunch. For a clip that matters, generate at 720p.


What the four demos cost

The four demos above cost 51 credits on a Google AI Pro plan, which is 1,000 Flow credits a month. The full test run they came from — eight generations across both resolutions and every mode — came to 84.

Demo Mode Credits
1 — Eiffel POV, 10s portrait T2V 15
2 — train cavalier, 8s portrait R2V, 2 images + 2 voices 12
3 — subject swap V2V edit 20
4 — orbit sunrise, 4s at 360p T2V 4
Every upscale above 1080p 0

Full per-tier costs are in the credit table, and the per-mode limits are under Model Capabilities.