live
MODEL IDgoogle:gemini@omni-flash-1.2

Gemini Omni Flash 1.2

Google
by
Available with Zero Data Retention

Gemini Omni Flash 1.2 is Google's multimodal video model for generating, editing, and extending clips with native synchronized audio. It generates up to 15 seconds from text or a single starting image, edits source videos of up to 15 seconds with optional reference images, and keeps characters, products, and brand details consistent across reference images and videos. Output runs from 360p for quick drafts to 1080p and 4K for delivery, which suits high-volume work such as product clips, virtual try-ons, and ad variations.

Gemini Omni Flash 1.2

Resolution and duration

How to size and time clips with Gemini Omni Flash 1.2: resolution tiers from 360p to 4K, 16:9 and 9:16 pairs, cost per second, and the duration range of each mode.

Introduction

Gemini Omni Flash 1.2 renders every clip at one of four resolution tiers, from 360p to 4K, in landscape 16:9 or portrait 9:16. A clip runs 3 to 15 seconds, and how much of that range you get depends on the inputs attached.

A single continuous walkthrough of a luxury hotel suite in late-afternoon light. The camera glides in through open double doors, moves past a living area with a cream sofa, a walnut coffee table and a vase of white tulips, then turns into the bedroom, where a king bed with crisp white linen faces floor-to-ceiling windows over a city skyline. Smooth gimbal movement at chest height, photoreal, warm natural light. Audio: soft room tone and a faint city hum through the glass, no music, no dialogue.

The tier sets how much detail each frame holds and what every second costs. Most of the work therefore happens at 360p: settle the prompt there, then render it once at the tier you deliver.

Setting the size

A request sets its size in one of two ways:

  • resolution names the tier alone: 360p, 720p, 1080p or 4K. On a request with only a prompt, the clip comes out 16:9.
  • A width/height pair names the tier and the shape together.

Send one or the other: a request that carries resolution together with width or height is rejected. The walkthrough at the top of the page asks for the 4K tier by name:

Try in Playground
import { createClient } from '@runware/sdk'

const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()

const [result] = await client.run({
  model: 'google:gemini@omni-flash-1.2',
  positivePrompt: 'A single continuous walkthrough of a luxury hotel suite in late-afternoon light. The camera glides in through open double doors, moves past a living area with a cream sofa, a walnut coffee table and a vase of white tulips, then turns into the bedroom, where a king bed with crisp white linen faces floor-to-ceiling windows over a city skyline. Smooth gimbal movement at chest height, photoreal, warm natural light. Audio: soft room tone and a faint city hum through the glass, no music, no dialogue.',
  resolution: '4K',
  duration: 8
})
import asyncio
import os

from runware import Runware


async def main():
    async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
        results = await client.run({
            "model": "google:gemini@omni-flash-1.2",
            "positivePrompt": "A single continuous walkthrough of a luxury hotel suite in late-afternoon light. The camera glides in through open double doors, moves past a living area with a cream sofa, a walnut coffee table and a vase of white tulips, then turns into the bedroom, where a king bed with crisp white linen faces floor-to-ceiling windows over a city skyline. Smooth gimbal movement at chest height, photoreal, warm natural light. Audio: soft room tone and a faint city hum through the glass, no music, no dialogue.",
            "resolution": "4K",
            "duration": 8
        })


asyncio.run(main())
curl https://api.runware.ai/v1 \
  -H "Authorization: Bearer $RUNWARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "videoInference",
      "taskUUID": "06e828d2-7bd9-4397-89c8-396642bc0f2f",
      "model": "google:gemini@omni-flash-1.2",
      "positivePrompt": "A single continuous walkthrough of a luxury hotel suite in late-afternoon light. The camera glides in through open double doors, moves past a living area with a cream sofa, a walnut coffee table and a vase of white tulips, then turns into the bedroom, where a king bed with crisp white linen faces floor-to-ceiling windows over a city skyline. Smooth gimbal movement at chest height, photoreal, warm natural light. Audio: soft room tone and a faint city hum through the glass, no music, no dialogue.",
      "resolution": "4K",
      "duration": 8
    }
  ]'
runware run google:gemini@omni-flash-1.2 \
  positivePrompt="A single continuous walkthrough of a luxury hotel suite in late-afternoon light. The camera glides in through open double doors, moves past a living area with a cream sofa, a walnut coffee table and a vase of white tulips, then turns into the bedroom, where a king bed with crisp white linen faces floor-to-ceiling windows over a city skyline. Smooth gimbal movement at chest height, photoreal, warm natural light. Audio: soft room tone and a faint city hum through the glass, no music, no dialogue." \
  resolution=4K \
  duration=8
{
  "taskType": "videoInference",
  "taskUUID": "06e828d2-7bd9-4397-89c8-396642bc0f2f",
  "model": "google:gemini@omni-flash-1.2",
  "positivePrompt": "A single continuous walkthrough of a luxury hotel suite in late-afternoon light. The camera glides in through open double doors, moves past a living area with a cream sofa, a walnut coffee table and a vase of white tulips, then turns into the bedroom, where a king bed with crisp white linen faces floor-to-ceiling windows over a city skyline. Smooth gimbal movement at chest height, photoreal, warm natural light. Audio: soft room tone and a faint city hum through the glass, no music, no dialogue.",
  "resolution": "4K",
  "duration": 8
}
Response
[
  {
    "taskType": "videoInference",
    "taskUUID": "06e828d2-7bd9-4397-89c8-396642bc0f2f",
    "videoUUID": "46ae2fec-ce36-4c27-84ec-b8a6eb173758",
    "videoURL": "https://vm.runware.ai/video/os/a14d18/ws/2/vi/46ae2fec-ce36-4c27-84ec-b8a6eb173758.mp4"
  }
]

A pair has to be one of eight, a 16:9 and a 9:16 for each tier:

Tier16:99:16
360p640 × 360360 × 640
720p1280 × 720720 × 1280
1080p1920 × 10801080 × 1920
4K3840 × 21602160 × 3840

Any other pair is rejected, square sizes included.

A request that carries inputs.video takes the tier by name only. Edits and extensions reject width and height, so set resolution there. Editing video and Extending video cover both requests.

Vertical video

A 9:16 clip needs the portrait pair, since resolution alone gives 16:9 on a prompt-only request. The model renders the clip natively in portrait and composes the shot for a phone screen, so nothing is cropped out of a wider frame:

Try in Playground
import { createClient } from '@runware/sdk'

const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()

const [result] = await client.run({
  model: 'google:gemini@omni-flash-1.2',
  positivePrompt: 'A vertical social video for a fashion brand. A woman in a camel wool coat over a cream knit dress walks toward the camera along a sunlit city sidewalk, the coat swinging open with each step, then stops, turns her shoulder and looks back at the camera. Single continuous shot, the camera tracking backward at waist height with full-length framing. Bright morning light, photoreal. Audio: heels on pavement, light street ambience and an upbeat electronic beat, no dialogue.',
  width: 1080,
  height: 1920,
  duration: 8
})
import asyncio
import os

from runware import Runware


async def main():
    async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
        results = await client.run({
            "model": "google:gemini@omni-flash-1.2",
            "positivePrompt": "A vertical social video for a fashion brand. A woman in a camel wool coat over a cream knit dress walks toward the camera along a sunlit city sidewalk, the coat swinging open with each step, then stops, turns her shoulder and looks back at the camera. Single continuous shot, the camera tracking backward at waist height with full-length framing. Bright morning light, photoreal. Audio: heels on pavement, light street ambience and an upbeat electronic beat, no dialogue.",
            "width": 1080,
            "height": 1920,
            "duration": 8
        })


asyncio.run(main())
curl https://api.runware.ai/v1 \
  -H "Authorization: Bearer $RUNWARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "videoInference",
      "taskUUID": "cad665fe-298c-4c6d-b4c0-ccf9228e8a15",
      "model": "google:gemini@omni-flash-1.2",
      "positivePrompt": "A vertical social video for a fashion brand. A woman in a camel wool coat over a cream knit dress walks toward the camera along a sunlit city sidewalk, the coat swinging open with each step, then stops, turns her shoulder and looks back at the camera. Single continuous shot, the camera tracking backward at waist height with full-length framing. Bright morning light, photoreal. Audio: heels on pavement, light street ambience and an upbeat electronic beat, no dialogue.",
      "width": 1080,
      "height": 1920,
      "duration": 8
    }
  ]'
runware run google:gemini@omni-flash-1.2 \
  positivePrompt="A vertical social video for a fashion brand. A woman in a camel wool coat over a cream knit dress walks toward the camera along a sunlit city sidewalk, the coat swinging open with each step, then stops, turns her shoulder and looks back at the camera. Single continuous shot, the camera tracking backward at waist height with full-length framing. Bright morning light, photoreal. Audio: heels on pavement, light street ambience and an upbeat electronic beat, no dialogue." \
  width=1080 \
  height=1920 \
  duration=8
{
  "taskType": "videoInference",
  "taskUUID": "cad665fe-298c-4c6d-b4c0-ccf9228e8a15",
  "model": "google:gemini@omni-flash-1.2",
  "positivePrompt": "A vertical social video for a fashion brand. A woman in a camel wool coat over a cream knit dress walks toward the camera along a sunlit city sidewalk, the coat swinging open with each step, then stops, turns her shoulder and looks back at the camera. Single continuous shot, the camera tracking backward at waist height with full-length framing. Bright morning light, photoreal. Audio: heels on pavement, light street ambience and an upbeat electronic beat, no dialogue.",
  "width": 1080,
  "height": 1920,
  "duration": 8
}
Response
[
  {
    "taskType": "videoInference",
    "taskUUID": "cad665fe-298c-4c6d-b4c0-ccf9228e8a15",
    "videoUUID": "54b3bd5c-f5f7-4c7a-af91-983528e7b921",
    "videoURL": "https://vm.runware.ai/video/os/a14d18/ws/2/vi/54b3bd5c-f5f7-4c7a-af91-983528e7b921.mp4"
  }
]

A vertical social video for a fashion brand. A woman in a camel wool coat over a cream knit dress walks toward the camera along a sunlit city sidewalk, the coat swinging open with each step, then stops, turns her shoulder and looks back at the camera. Single continuous shot, the camera tracking backward at waist height with full-length framing. Bright morning light, photoreal. Audio: heels on pavement, light street ambience and an upbeat electronic beat, no dialogue.

Resolution tiers

The model takes no seed, so every render is a new take, including the same prompt at another tier. This is the 360p request, and the other three change resolution and nothing else:

Try in Playground
import { createClient } from '@runware/sdk'

const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()

const [result] = await client.run({
  model: 'google:gemini@omni-flash-1.2',
  positivePrompt: 'A product video of an unbranded white knit running shoe with a plain one-piece knit upper, a smooth unmarked white midsole and a plain toe, on a gray concrete plinth against a dark studio backdrop. A narrow band of light sweeps slowly across the shoe from left to right, raking over the knit texture, the laces and a woven tongue label that reads "AERO KNIT", the only marking on the shoe, with no other logos or brand marks. Locked-off camera in a tight three-quarter close-up, single continuous shot. Audio: a low studio hum and a soft whoosh as the light passes, no music.',
  resolution: '360p',
  duration: 6
})
import asyncio
import os

from runware import Runware


async def main():
    async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
        results = await client.run({
            "model": "google:gemini@omni-flash-1.2",
            "positivePrompt": "A product video of an unbranded white knit running shoe with a plain one-piece knit upper, a smooth unmarked white midsole and a plain toe, on a gray concrete plinth against a dark studio backdrop. A narrow band of light sweeps slowly across the shoe from left to right, raking over the knit texture, the laces and a woven tongue label that reads \"AERO KNIT\", the only marking on the shoe, with no other logos or brand marks. Locked-off camera in a tight three-quarter close-up, single continuous shot. Audio: a low studio hum and a soft whoosh as the light passes, no music.",
            "resolution": "360p",
            "duration": 6
        })


asyncio.run(main())
curl https://api.runware.ai/v1 \
  -H "Authorization: Bearer $RUNWARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "videoInference",
      "taskUUID": "01c2a525-7010-4067-80d2-498f8cb5cc74",
      "model": "google:gemini@omni-flash-1.2",
      "positivePrompt": "A product video of an unbranded white knit running shoe with a plain one-piece knit upper, a smooth unmarked white midsole and a plain toe, on a gray concrete plinth against a dark studio backdrop. A narrow band of light sweeps slowly across the shoe from left to right, raking over the knit texture, the laces and a woven tongue label that reads \"AERO KNIT\", the only marking on the shoe, with no other logos or brand marks. Locked-off camera in a tight three-quarter close-up, single continuous shot. Audio: a low studio hum and a soft whoosh as the light passes, no music.",
      "resolution": "360p",
      "duration": 6
    }
  ]'
runware run google:gemini@omni-flash-1.2 \
  positivePrompt="A product video of an unbranded white knit running shoe with a plain one-piece knit upper, a smooth unmarked white midsole and a plain toe, on a gray concrete plinth against a dark studio backdrop. A narrow band of light sweeps slowly across the shoe from left to right, raking over the knit texture, the laces and a woven tongue label that reads \"AERO KNIT\", the only marking on the shoe, with no other logos or brand marks. Locked-off camera in a tight three-quarter close-up, single continuous shot. Audio: a low studio hum and a soft whoosh as the light passes, no music." \
  resolution=360p \
  duration=6
{
  "taskType": "videoInference",
  "taskUUID": "01c2a525-7010-4067-80d2-498f8cb5cc74",
  "model": "google:gemini@omni-flash-1.2",
  "positivePrompt": "A product video of an unbranded white knit running shoe with a plain one-piece knit upper, a smooth unmarked white midsole and a plain toe, on a gray concrete plinth against a dark studio backdrop. A narrow band of light sweeps slowly across the shoe from left to right, raking over the knit texture, the laces and a woven tongue label that reads \"AERO KNIT\", the only marking on the shoe, with no other logos or brand marks. Locked-off camera in a tight three-quarter close-up, single continuous shot. Audio: a low studio hum and a soft whoosh as the light passes, no music.",
  "resolution": "360p",
  "duration": 6
}
Response
[
  {
    "taskType": "videoInference",
    "taskUUID": "01c2a525-7010-4067-80d2-498f8cb5cc74",
    "videoUUID": "f633afdc-7e26-463b-abb4-60c5f235e833",
    "videoURL": "https://vm.runware.ai/video/os/a14d18/ws/2/vi/f633afdc-7e26-463b-abb4-60c5f235e833.mp4"
  }
]

A product video of an unbranded white knit running shoe with a plain one-piece knit upper, a smooth unmarked white midsole and a plain toe, on a gray concrete plinth against a dark studio backdrop. A narrow band of light sweeps slowly across the shoe from left to right, raking over the knit texture, the laces and a woven tongue label that reads "AERO KNIT", the only marking on the shoe, with no other logos or brand marks. Locked-off camera in a tight three-quarter close-up, single continuous shot. Audio: a low studio hum and a soft whoosh as the light passes, no music.

A product video of an unbranded white knit running shoe with a plain one-piece knit upper, a smooth unmarked white midsole and a plain toe, on a gray concrete plinth against a dark studio backdrop. A narrow band of light sweeps slowly across the shoe from left to right, raking over the knit texture, the laces and a woven tongue label that reads "AERO KNIT", the only marking on the shoe, with no other logos or brand marks. Locked-off camera in a tight three-quarter close-up, single continuous shot. Audio: a low studio hum and a soft whoosh as the light passes, no music.

A product video of an unbranded white knit running shoe with a plain one-piece knit upper, a smooth unmarked white midsole and a plain toe, on a gray concrete plinth against a dark studio backdrop. A narrow band of light sweeps slowly across the shoe from left to right, raking over the knit texture, the laces and a woven tongue label that reads "AERO KNIT", the only marking on the shoe, with no other logos or brand marks. Locked-off camera in a tight three-quarter close-up, single continuous shot. Audio: a low studio hum and a soft whoosh as the light passes, no music.

A product video of an unbranded white knit running shoe with a plain one-piece knit upper, a smooth unmarked white midsole and a plain toe, on a gray concrete plinth against a dark studio backdrop. A narrow band of light sweeps slowly across the shoe from left to right, raking over the knit texture, the laces and a woven tongue label that reads "AERO KNIT", the only marking on the shoe, with no other logos or brand marks. Locked-off camera in a tight three-quarter close-up, single continuous shot. Audio: a low studio hum and a soft whoosh as the light passes, no music.

The player fits every take to the width of the page, which hides most of the gap between tiers. The frame at 3 seconds, pulled from the 360p and 4K files and cropped to the same region at full size, shows it:

The 4K crop holds 36 times the pixels of the 360p crop for the same patch of the frame, which is what fine texture needs to resolve. Pick the tier by where the clip ends up:

  • 360p: drafts, while the prompt is still changing.
  • 720p: previews and review links.
  • 1080p: standard delivery in social feeds and on product pages.
  • 4K: large screens and footage you plan to crop or reframe in the edit.

Cost per second

Each second of output is billed at the tier's rate, so the cost of a clip moves with resolution and duration together:

TierPer second6-second clip15-second clip
360p$0.02$0.12$0.30
720p$0.07$0.42$1.05
1080p$0.10$0.60$1.50
4K$0.21$1.26$3.15

A second of 4K costs more than ten times a second of 360p. Ten 360p drafts of a 6-second clip come to $1.20, less than a single 4K render of the same clip.

Drafting at 360p

  1. Draft at 360p and at the final length. A different duration paces the beats differently, so keep it fixed from draft to final. For vertical work, draft with the 360 × 640 pair.

  2. Revise the prompt until the draft lands. Judge what the prompt controls: the beats, the camera move, the framing and the audio.

  3. Render once at the delivery tier. Change resolution, or the pair, and nothing else.

The delivery render is a new take of the same prompt, not an upscale of the draft, as the four tiers above show. What carries over is the prompt, so settle everything it controls before you pay for the final.

Clip length

duration is set in whole seconds and defaults to 6. Its range depends on the mode, which the attached inputs decide:

ModeInputsDuration
Text-to-videoA prompt alone3 to 15 seconds
One first frameOne image in inputs.frameImages3 to 15 seconds
First and last framesTwo images in inputs.frameImages3 to 10 seconds
Referencesinputs.referenceImages, inputs.referenceVideos or both3 to 10 seconds
Extendinputs.video with duration3 to 10 seconds added
Editinputs.video without durationLeft out

A value outside the mode's range is rejected. Two modes read duration differently:

  • Extend: it is the length added to a source clip of 1 to 27 seconds. The result is the source plus the continuation.
  • Edit: the request leaves duration out, and adding one turns it into an extension. The source clip runs 3 to 15 seconds.

Matching beats to seconds

A beat is one action or one shot. Count them before you set duration, and give each one time to play out. A single beat fits the short end of the range, here in 4 seconds:

A red convertible carrying a young couple rounds a bend on a coastal cliff road above a turquoise sea, filmed by a drone tracking alongside it. Single continuous shot, bright midday sun, photoreal travel footage. Audio: the engine and the wind, waves far below, no music, no dialogue.

Four beats fill the text-to-video maximum of 15 seconds:

Try in Playground
import { createClient } from '@runware/sdk'

const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()

const [result] = await client.run({
  model: 'google:gemini@omni-flash-1.2',
  positivePrompt: 'A travel video of a weekend road trip on a Mediterranean coast, in four shots. First, a drone follows a red convertible carrying a young couple along a cliff road above a turquoise sea. Second, the couple walk up a narrow stepped street in a whitewashed hilltop village lined with bougainvillea. Third, they share a plate of grilled fish at a terrace table above the harbor. Last, they walk barefoot along the beach at sunset as the camera pulls back to a wide shot of the bay. Photoreal, warm natural light. Audio: an upbeat acoustic guitar track throughout, with wind, footsteps and waves underneath, no dialogue.',
  resolution: '1080p',
  duration: 15
})
import asyncio
import os

from runware import Runware


async def main():
    async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
        results = await client.run({
            "model": "google:gemini@omni-flash-1.2",
            "positivePrompt": "A travel video of a weekend road trip on a Mediterranean coast, in four shots. First, a drone follows a red convertible carrying a young couple along a cliff road above a turquoise sea. Second, the couple walk up a narrow stepped street in a whitewashed hilltop village lined with bougainvillea. Third, they share a plate of grilled fish at a terrace table above the harbor. Last, they walk barefoot along the beach at sunset as the camera pulls back to a wide shot of the bay. Photoreal, warm natural light. Audio: an upbeat acoustic guitar track throughout, with wind, footsteps and waves underneath, no dialogue.",
            "resolution": "1080p",
            "duration": 15
        })


asyncio.run(main())
curl https://api.runware.ai/v1 \
  -H "Authorization: Bearer $RUNWARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "videoInference",
      "taskUUID": "5e5f8e03-4616-4d6d-b47e-2d45dc573779",
      "model": "google:gemini@omni-flash-1.2",
      "positivePrompt": "A travel video of a weekend road trip on a Mediterranean coast, in four shots. First, a drone follows a red convertible carrying a young couple along a cliff road above a turquoise sea. Second, the couple walk up a narrow stepped street in a whitewashed hilltop village lined with bougainvillea. Third, they share a plate of grilled fish at a terrace table above the harbor. Last, they walk barefoot along the beach at sunset as the camera pulls back to a wide shot of the bay. Photoreal, warm natural light. Audio: an upbeat acoustic guitar track throughout, with wind, footsteps and waves underneath, no dialogue.",
      "resolution": "1080p",
      "duration": 15
    }
  ]'
runware run google:gemini@omni-flash-1.2 \
  positivePrompt="A travel video of a weekend road trip on a Mediterranean coast, in four shots. First, a drone follows a red convertible carrying a young couple along a cliff road above a turquoise sea. Second, the couple walk up a narrow stepped street in a whitewashed hilltop village lined with bougainvillea. Third, they share a plate of grilled fish at a terrace table above the harbor. Last, they walk barefoot along the beach at sunset as the camera pulls back to a wide shot of the bay. Photoreal, warm natural light. Audio: an upbeat acoustic guitar track throughout, with wind, footsteps and waves underneath, no dialogue." \
  resolution=1080p \
  duration=15
{
  "taskType": "videoInference",
  "taskUUID": "5e5f8e03-4616-4d6d-b47e-2d45dc573779",
  "model": "google:gemini@omni-flash-1.2",
  "positivePrompt": "A travel video of a weekend road trip on a Mediterranean coast, in four shots. First, a drone follows a red convertible carrying a young couple along a cliff road above a turquoise sea. Second, the couple walk up a narrow stepped street in a whitewashed hilltop village lined with bougainvillea. Third, they share a plate of grilled fish at a terrace table above the harbor. Last, they walk barefoot along the beach at sunset as the camera pulls back to a wide shot of the bay. Photoreal, warm natural light. Audio: an upbeat acoustic guitar track throughout, with wind, footsteps and waves underneath, no dialogue.",
  "resolution": "1080p",
  "duration": 15
}
Response
[
  {
    "taskType": "videoInference",
    "taskUUID": "5e5f8e03-4616-4d6d-b47e-2d45dc573779",
    "videoUUID": "21c2ec71-45ca-45a3-9741-8eb70cd674b1",
    "videoURL": "https://vm.runware.ai/video/os/a14d18/ws/2/vi/21c2ec71-45ca-45a3-9741-8eb70cd674b1.mp4"
  }
]

A travel video of a weekend road trip on a Mediterranean coast, in four shots. First, a drone follows a red convertible carrying a young couple along a cliff road above a turquoise sea. Second, the couple walk up a narrow stepped street in a whitewashed hilltop village lined with bougainvillea. Third, they share a plate of grilled fish at a terrace table above the harbor. Last, they walk barefoot along the beach at sunset as the camera pulls back to a wide shot of the bay. Photoreal, warm natural light. Audio: an upbeat acoustic guitar track throughout, with wind, footsteps and waves underneath, no dialogue.

Fifteen seconds over four shots leaves about four seconds for each, close to the length of the single beat above. The modes that stop at 10 seconds hold fewer beats, so plan two or three there. Prompting covers timing each beat to the second.

Tips

  1. Send the portrait pair for vertical clips. resolution on its own renders a prompt-only request at 16:9.

  2. Draft at 360p. A 6-second draft costs $0.12, against $1.26 at 4K.

  3. Keep the length fixed from draft to final. The beats are paced to duration.

  4. Count the beats before setting the length. Give each a few seconds, and use fewer of them in the modes that stop at 10 seconds.