Table of contents

  1. Step 1: the first 10 seconds
  2. Step 2: extend by 10 seconds, with a voice
  3. Step 3: 10 more seconds, a second voice
  4. The 30-second rule
  5. Prices
  6. Good to know

Omni 1.2 Flash, and extend with voices

November 6, 2026

Google released Omni 1.2 Flash in Flow on November 5, 2026, and the Google Flow API runs it now as model: "omni-flash-1.2":

  • POST /videos makes videos of any whole number of seconds from 3 to 15, at 360p or 720p, landscape or portrait, from text, a start image, a start and end image, reference images and voices, or by editing a clip of up to 15 seconds
  • POST /videos/extend uses Omni 1.2 by default. It adds 3 to 10 seconds to any video shorter than 30 seconds and returns one clip, the source plus the new seconds, and it takes up to 3 reference images or characters and up to 3 voices
  • Credits are per second and the same on every plan: at 720p 3 credits a second up to 10 seconds and 6 a second above that, at 360p 1 and 2

Free Google accounts can use Omni 1.2 too, for videos of up to 10 seconds. Longer videos and extending with Omni 1.2 need a paid Google AI plan.

Below, one scene built in three calls: a 10-second video, then two 10-second extensions, each with its own voice. Every request is the real one, and the video is the real output.

Step 1: the first 10 seconds

POST /videos with omni-flash-1.2 and duration: 10. Google answered in 56 seconds. At 720p a 10-second video is 30 credits.

curl — POST /videos
curl --location 'https://api.useapi.net/v1/google-flow/videos' \
--header 'Authorization: Bearer user:12345-…' \
--form 'model="omni-flash-1.2"' \
--form 'duration="10"' \
--form 'prompt="Cinematic night, a narrow rainy alley in Tokyo glowing with neon signs reflected in the puddles. A street magician in a long dark coat faces the camera, fans out a deck of cards that glow faintly gold, and says with a grin: \"Pick a card. Any card.\" A sudden gust snatches one glowing card from his hand and it flutters away down the alley. Handheld camera, shallow depth of field, rain drops catching the light."' \
--form 'async="true"'

The finished job, from GET /jobs/jobid (shortened):

{
    "jobid": "j1106021223539251070v-u12345-email:[email protected]:google-flow",
    "type": "video",
    "status": "completed",
    "response": {
        "media": [
            {
                "video": {
                    "generatedVideo": {
                        "model": "macaron_cookie_t2v_10s",
                        "aspectRatio": "VIDEO_ASPECT_RATIO_LANDSCAPE"
                    },
                    "dimensions": { "length": "10s" }
                },
                "mediaGenerationId": "user:12345-email:…-video:b08556b9-…",
                "videoUrl": "https://flow-content.google/video/b08556b9-…?Expires=…"
            }
        ],
        "remainingCredits": 877
    }
}

Step 2: extend by 10 seconds, with a voice

POST /videos/extend with the first video’s mediaGenerationId, duration: 10 and the built-in voice Charon as referenceAudio_1. The prompt names the voice where the magician speaks, with the inline mention @referenceAudio_1. Extend uses Omni 1.2 by default, so no model is needed. The answer is one 20-second clip, the first 10 seconds unchanged plus the new 10, in 2 minutes 20 seconds, for 30 credits.

curl — POST /videos/extend
curl --location 'https://api.useapi.net/v1/google-flow/videos/extend' \
--header 'Authorization: Bearer user:12345-…' \
--form 'mediaGenerationId="user:12345-email:…-video:b08556b9-…"' \
--form 'duration="10"' \
--form 'referenceAudio_1="Charon"' \
--form 'prompt="The magician runs after the glowing card through the rain, past a ramen stall and under paper lanterns, laughing and calling out in a deep voice @referenceAudio_1: \"Come back here! You are the ace of hearts!\" The camera follows him close behind."' \
--form 'async="true"'

Step 3: 10 more seconds, a second voice

The same call on the 20-second clip, with the voice Aoede for the woman in the café. The result is the whole scene, 30 seconds long, after another 2 minutes and 30 credits.

curl — POST /videos/extend
curl --location 'https://api.useapi.net/v1/google-flow/videos/extend' \
--header 'Authorization: Bearer user:12345-…' \
--form 'mediaGenerationId="user:12345-email:…-video:113384cd-…"' \
--form 'duration="10"' \
--form 'referenceAudio_1="Aoede"' \
--form 'prompt="The glowing card drifts through the open door of a tiny warm café and lands on a table. A young woman in a yellow raincoat picks it up, looks at the out-of-breath magician in the doorway, and says with a smile @referenceAudio_1: \"Is this your card?\" He laughs. Warm light, rain outside the window."' \
--form 'async="true"'
{
    "jobid": "j1106021547955542178v-u12345-email:[email protected]:google-flow",
    "type": "video",
    "status": "completed",
    "response": {
        "media": [
            {
                "video": {
                    "generatedVideo": { "model": "macaron_cookie_extend_10s" },
                    "dimensions": { "length": "30s" }
                },
                "mediaGenerationId": "user:12345-email:…-video:db0201df-…",
                "videoUrl": "https://flow-content.google/video/db0201df-…?Expires=…"
            }
        ],
        "remainingCredits": 817
    }
}

The video above is re-encoded for the web at the original 1280×720. Google’s own file is about 15 MB.

The 30-second rule

Google extends videos shorter than 30 seconds only, so this scene can grow no further. A fourth extend answers right away, before any captcha or credits:

{
    "error": "Google Flow extends videos shorter than 30 s only. This video is 30 s long.",
    "code": 400
}

A clip of 25 seconds can still take 10 more and end at 35.

Prices

The whole 30-second scene used 90 credits: 30 for the first 10 seconds and 30 for each extension.

Length 720p 360p
3 seconds 9 credits 3 credits
10 seconds 30 credits 10 credits
15 seconds 60 credits 20 credits
Extend by 10 seconds 30 credits 10 credits

On Google AI Ultra ($199.99 a month for 25,000 credits) a credit is $0.008, so an 8-second 720p Omni 1.2 video is $0.19 (seconds past 10 cost double) and this 30-second scene about $0.72. Google’s own API charges $0.07 a second for 720p Omni 1.2 Flash (Google Cloud, November 5, 2026), about $2.10 for the same 30 seconds, and offers audio references there only to allowlisted customers.

Good to know

  • Google is giving Omni 1.2 to accounts over several days from November 5. An account that does not have it yet answers 400 with a message that says so, and a request without email goes to one of your accounts that has it.
  • Veo still extends: pass model: "veo-3.1-lite" (or veo-3.1-fast, veo-3.1-quality) to extend with Veo as before: it adds about 7 seconds and returns only the new part.
  • With referenceVideo_1, Omni 1.2 edits up to 15 seconds of a clip (endFrameIndex_1 up to 360, at 24 frames a second), priced like a video of the edited length.
  • omni-extend/ on GitHub makes this scene from one story.json, in Node.js or Python.
  • A 360p draft costs a third of 720p, and its extensions stay 360p unless you ask for resolution: "720p".