---
title: Gemini Omni Flash 1.2 | Runware Docs
url: https://runware.ai/docs/models/google-gemini-omni-flash-1-2
description: Video generation and editing with native audio, 15-second clips, and output from 360p drafts to 4K
---
# Gemini Omni Flash 1.2

![Gemini Omni Flash 1.2](https://assets.runware.ai/covers/google-gemini-omni-flash-1-2.jpg)

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.

- **Status**: live
- **ID**: `google:gemini@omni-flash-1.2`
- Try in Playground
- **Creator**: Google
- **Release Date**: November 5, 2026
- **Zero Data Retention**: Yes
- **Capabilities**: Text to Video, Image to Video, Video to Video, Edit, Extend, Checkpoint, Audio

## Pricing

$0.02 from, per second · ~1m 26s per request

**Rates** (per second)

- 360p: `$0.02`
- 720p: `$0.07`
- 1080p: `$0.10`
- 4K: `$0.21`

**6 example generations**

- [video-edit](https://runware.ai/docs/models/google-gemini-omni-flash-1-2/examples#example-alpine-railway-blizzard-safety-shot) · 720p: `$0.423` (~1m 32s)
- [first-frame](https://runware.ai/docs/models/google-gemini-omni-flash-1-2/examples#example-cassette-shell-colorway-reveal) · 720p · 8s: `$0.56` (~1m 1s)
- [reference-to-video](https://runware.ai/docs/models/google-gemini-omni-flash-1-2/examples#example-pangolin-release-day-for-night-relight) · 1080p · 6s: `$0.60` (~2m 9s)
- [video-extend](https://runware.ai/docs/models/google-gemini-omni-flash-1-2/examples#example-couture-hearing-device-showcase) · 720p · 10s: `$0.70` (~1m 39s)
- [first-last-frame](https://runware.ai/docs/models/google-gemini-omni-flash-1-2/examples#example-tidal-barrier-nightfall-relight) · 720p · 10s: `$0.70` (~1m 17s)
- [text-to-video](https://runware.ai/docs/models/google-gemini-omni-flash-1-2/examples#example-vineyard-tractor-colorway-reveal-film) · 720p · 15s: `$1.05` (~1m 19s)

times vary, measured end to end · [How pricing works](https://runware.ai/docs/models-api/pricing)

## Compatibility & Validation

Inside `inputs`, `frameImages` cannot be used with `referenceImages`, `referenceVideos`, or `video`.

---

Inside `inputs`, `video` cannot be used with `referenceVideos`.

---

When `inputs.frameImages` or `inputs.referenceImages` or `inputs.referenceVideos` or `inputs.video` is provided, `duration` must be at most `10`.

---

When `inputs.video` is provided, `width/height` cannot be used.

---

When `inputs.video` and `duration` is provided, `inputs.referenceImages` cannot be used.

---

`resolution` cannot be used with `width/height`.

---

`width` and `height` must be used together.

---

The following dimension combinations are supported:

| Configuration | Dimensions |
| --- | --- |
| `360p (16:9)` | `640x360` |
| `360p (9:16)` | `360x640` |
| `720p (16:9)` | `1280x720` |
| `720p (9:16)` | `720x1280` |
| `1080p (16:9)` | `1920x1080` |
| `1080p (9:16)` | `1080x1920` |
| `4K (16:9)` | `3840x2160` |
| `4K (9:16)` | `2160x3840` |

## Notes

Gemini Omni Flash 1.2 picks its mode from the inputs you attach:

- **Text-to-Video:** Provide a prompt on its own.
- **Frames:** Provide `inputs.frameImages` to pin the first frame, or the first and last frames.
- **References:** Provide `inputs.referenceImages`, `inputs.referenceVideos`, or both together, to carry a character, a product or a style into the shot.
- **Edit or extend:** Provide `inputs.video` as the source clip.

Attaching `inputs.frameImages` rules out every other media input. `inputs.video` rules out `inputs.referenceVideos`, and takes `inputs.referenceImages` only when editing.

**Editing or extending:** one `inputs.video` covers both, and `duration` alone decides which you get. Omit it to edit the clip in place, optionally with reference images that bring in new elements. Send it to extend the clip instead, which takes no reference images. Both paths take `resolution`.

**Clip length by mode:** text-to-video and image-to-video from a single frame reach the full `duration` range. A first and last frame pair, references and extensions stop at 10 seconds.

**Sizing:** Pass a `width`/`height` pair from the supported set, or `resolution` to pick the tier. The two cannot be combined, only 16:9 and 9:16 are available, and `width`/`height` are rejected outright alongside `inputs.video`.

> [!WARNING]
> Adding `duration` to an edit request silently turns it into an extension. To edit a clip in place, leave `duration` out.

## Request Parameters

**API Options**

Platform-level options for task execution and delivery.

### [taskType](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#request-tasktype)

- **Type**: `string`
- **Required**: true
- **Value**: `videoInference`

Identifier for the type of task being performed.

### [taskUUID](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#request-taskuuid)

- **Type**: `string`
- **Required**: true
- **Format**: `UUID v4`

UUID v4 identifier for tracking tasks and matching async responses. Must be unique per task.

### [outputType](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#request-outputtype)

- **Type**: `string`
- **Default**: `URL`

Video output type.

**Allowed values**: `URL`

### [outputFormat](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#request-outputformat)

- **Type**: `string`
- **Default**: `MP4`

Specifies the file format of the generated output. The available values depend on the task type and the specific model's capabilities.

- \`MP4\`: Widely supported video container (H.264), recommended for general use.
- \`WEBM\`: Optimized for web delivery.
- \`MOV\`: QuickTime format, common in professional workflows (Apple ecosystem).

**Allowed values**: `MP4` `WEBM` `MOV`

### [outputQuality](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#request-outputquality)

- **Type**: `integer`
- **Min**: `20`
- **Max**: `99`
- **Default**: `95`

Compression quality of the output. Higher values preserve quality but increase file size.

### [webhookURL](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#request-webhookurl)

- **Type**: `string`
- **Format**: `uri`

Webhook URL that receives JSON responses via HTTP POST when generation tasks complete. For batch requests with multiple results, each completed item triggers a separate webhook call as it becomes available.

**Learn more** (1 resource):

- [Webhooks](https://runware.ai/docs/models-api/webhooks) (platform)

### [deliveryMethod](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#request-deliverymethod)

- **Type**: `string`
- **Default**: `async`

Determines how the API delivers task results.

**Allowed values**:

- `sync` Returns results directly in the API response. Over HTTP, a task still running after 120 seconds continues as an async task and comes back with status 'processing'. Poll for its results using getResponse.
- `async` Returns an immediate acknowledgment with the task UUID. Poll for results using getResponse.

**Learn more** (1 resource):

- [Task Polling](https://runware.ai/docs/models-api/task-polling) (platform)

### [uploadEndpoint](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#request-uploadendpoint)

- **Type**: `string`
- **Format**: `uri`

Specifies a URL where the generated content will be automatically uploaded using the HTTP PUT method. The raw binary data of the media file is sent directly as the request body. For secure uploads to cloud storage, use presigned URLs that include temporary authentication credentials.

**Common use cases:**

- **Cloud storage**: Upload directly to S3 buckets, Google Cloud Storage, or Azure Blob Storage using presigned URLs.
- **CDN integration**: Upload to content delivery networks for immediate distribution.

```text
// S3 presigned URL for secure upload
https://your-bucket.s3.amazonaws.com/generated/content.mp4?X-Amz-Signature=abc123&X-Amz-Expires=3600

// Google Cloud Storage presigned URL
https://storage.googleapis.com/your-bucket/content.jpg?X-Goog-Signature=xyz789

// Custom storage endpoint
https://storage.example.com/uploads/generated-image.jpg
```

The content data will be sent as the request body to the specified URL when generation is complete.

### [safety](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#request-safety)

- **Path**: `safety.checkContent`
- **Type**: `object (2 properties)`

Content safety checking configuration for video generation.

#### [checkContent](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#request-safety-checkcontent)

- **Path**: `safety.checkContent`
- **Type**: `boolean`

Enable or disable content safety checking. Increases total generation time.

#### [mode](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#request-safety-mode)

- **Path**: `safety.mode`
- **Type**: `string`
- **Default**: `fast`

Safety checking mode for video generation.

**Allowed values**:

- `fast` Checks key frames.
- `full` Checks all frames.

### [ttl](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#request-ttl)

- **Type**: `integer`
- **Min**: `60`

Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`.

### [includeCost](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#request-includecost)

- **Type**: `boolean`

Include task cost in the response.

### [numberResults](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#request-numberresults)

- **Type**: `integer`
- **Min**: `1`
- **Max**: `4`
- **Default**: `1`

Number of results to generate. Each result uses a different seed, producing variations of the same parameters.

**Inputs**

Input resources for the task (images, audio, etc). These must be nested inside the \`inputs\` object.

### [referenceImages](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#request-inputs-referenceimages)

- **Path**: `inputs.referenceImages`
- **Type**: `array of strings`
- **Min items**: `1`
- **Max items**: `10`
- **File size (each)**: `up to 20 MB`
- **Size (each)**: `up to 4096 px`

List of reference images (UUID, URL, Data URI, or Base64).

### [frameImages](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#request-inputs-frameimages)

- **Path**: `inputs.frameImages`
- **Type**: `array of strings or objects`
- **Min items**: `1`
- **Max items**: `2`
- **File size (each)**: `up to 20 MB`
- **Size (each)**: `up to 4096 px`

An array of frame-specific image inputs to guide video generation. Each item can be either a plain image input (UUID, URL, Data URI, or Base64) or an object that pairs an image with a target position in the video.

The `frameImages` parameter allows you to constrain specific frames within the video sequence, ensuring that particular visual content appears at designated points. Position can be specified using `frame` (named positions or frame indices) or `timestamp` (seconds), depending on model support. This is different from `referenceImages`, which provide overall visual guidance without constraining specific timeline positions.

When the `frame` parameter is omitted, automatic distribution rules apply:

- **1 image**: Used as the first frame.
- **2 images**: First and last frames.

**Examples**:

**Shorthand format:** When you don't need to specify a frame position, you can pass a plain image input directly.

```json
"frameImages": [
  "aac49721-1964-481a-ae78-8a4e29b91402"
]
```

**Object format:** When you need to specify a position, use an object with `image` and either `frame` or `timestamp` (model-dependent).

```json
"frameImages": [
  {
    "image": "aac49721-1964-481a-ae78-8a4e29b91402",
    "frame": "first"
  }
]
```

**First and last frames:** With two images, they automatically become the first and last frames of the video sequence. You can mix shorthand and object formats.

```json
"frameImages": [
  "aac49721-1964-481a-ae78-8a4e29b91402",
  {
    "image": "3ad204c3-a9de-4963-8a1a-c3911e3afafe",
    "frame": "last"
  }
]
```

**Format 1: string[]**:

- **Type**: `string`

Image input (UUID, URL, Data URI, or Base64).

**Format 2: object[]**:

#### [image](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#request-inputs-frameimages-format-2-image)

- **Path**: `inputs.frameImages.image`
- **Type**: `string`
- **Required**: true

Image input (UUID, URL, Data URI, or Base64).

#### [frame](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#request-inputs-frameimages-format-2-frame)

- **Path**: `inputs.frameImages.frame`
- **Type**: `object`

Target frame position for the image. Supports first and last frame.

**Allowed values**:

- `first` First frame of the video.
- `last` Last frame of the video.
- `0` Frame index 0 (first frame).
- `-1` Frame index -1 (last frame).

### [video](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#request-inputs-video)

- **Path**: `inputs.video`
- **Type**: `string`
- **Duration (without duration)**: `3s to 15s`
- **Duration (with duration)**: `1s to 30s`
- **File size**: `up to 32 MB`

Video input (UUID or URL). Source video to extend when `duration` is set, or to edit when it is not.

### [referenceVideos](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#request-inputs-referencevideos)

- **Path**: `inputs.referenceVideos`
- **Type**: `array of strings`
- **Min items**: `1`
- **Max items**: `3`
- **Duration (each)**: `up to 30s`

List of reference videos (UUID or URL).

### [videoId](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#request-inputs-videoid)

- **Path**: `inputs.videoId`
- **Type**: `string`
- **Min**: `1`

ID of a previously generated video, from its `outputs.videoId`. The prompt edits that video.

**Core Parameters**

Primary parameters that define the task output.

### [model](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#request-model)

- **Type**: `string`
- **Required**: true
- **Value**: `google:gemini@omni-flash-1.2`

Send `auto` instead of an AIR identifier to have the model router choose the model for this task. The rest of the request is unchanged, every value you send is kept, and only the parameters you leave out are filled in. See [Model Router](https://runware.ai/docs/models-api/model-router).

**Learn more** (3 resources):

- [Text To Image: Model Selection](https://runware.ai/docs/learn/text-to-image#model-selection) (learn)
- [Image Inpainting: Model Specialized Inpainting Models](https://runware.ai/docs/learn/image-inpainting#model-specialized-inpainting-models) (learn)
- [Image Outpainting: Other Critical Parameters](https://runware.ai/docs/learn/image-outpainting#other-critical-parameters) (learn)

### [positivePrompt](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#request-positiveprompt)

- **Type**: `string`
- **Required**: true
- **Min**: `1`
- **Max**: `40000`

Text prompt describing elements to include in the generated output.

**Learn more** (1 resource):

- [Prompts](https://runware.ai/docs/learn/prompts) (learn)

### [width](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#request-width)

- **Type**: `integer`
- **Paired with**: height

Width of the generated media in pixels.

**Learn more** (2 resources):

- [Dimensions](https://runware.ai/docs/learn/dimensions) (learn)
- [Image Outpainting: Dimensions Critical For Outpainting](https://runware.ai/docs/learn/image-outpainting#dimensions-critical-for-outpainting) (learn)

### [height](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#request-height)

- **Type**: `integer`
- **Paired with**: width

Height of the generated media in pixels.

**Learn more** (2 resources):

- [Dimensions](https://runware.ai/docs/learn/dimensions) (learn)
- [Image Outpainting: Dimensions Critical For Outpainting](https://runware.ai/docs/learn/image-outpainting#dimensions-critical-for-outpainting) (learn)

### [resolution](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#request-resolution)

- **Type**: `string`

Resolution preset for the output. When used with input media, automatically matches the aspect ratio from the input.

**Allowed values**: `360p` `720p` `1080p` `4K`

### [duration](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#request-duration)

- **Type**: `integer`
- **Min**: `3`
- **Max**: `15`
- **Default**: `6`

Length of the generated video in seconds. The total number of frames produced is determined by duration multiplied by the model's frame rate (fps).

**Settings**

Technical parameters to fine-tune the inference process. These must be nested inside the \`settings\` object.

### [temperature](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#request-settings-temperature)

- **Path**: `settings.temperature`
- **Type**: `float`
- **Min**: `0`
- **Max**: `2`
- **Step**: `0.01`
- **Default**: `1`

Controls randomness in generation. Lower values produce more deterministic outputs, higher values increase variation and creativity.

### [topP](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#request-settings-topp)

- **Path**: `settings.topP`
- **Type**: `float`
- **Min**: `0`
- **Max**: `1`
- **Step**: `0.01`
- **Default**: `0.95`

Nucleus sampling parameter that controls diversity by limiting the probability mass. Lower values make outputs more focused, higher values increase diversity.

## Response Parameters

### [taskType](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#response-tasktype)

- **Type**: `string`
- **Required**: true
- **Value**: `videoInference`

Identifier for the type of task this response belongs to.

### [taskUUID](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#response-taskuuid)

- **Type**: `string`
- **Required**: true
- **Format**: `UUID v4`

UUID v4 identifier echoed from the original request, used to match async responses to their tasks.

### [videoUUID](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#response-videouuid)

- **Type**: `string`
- **Required**: true
- **Format**: `UUID v4`

UUID of the output video.

### [videoURL](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#response-videourl)

- **Type**: `string`
- **Format**: `uri`

URL of the output video.

### [videoBase64Data](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#response-videobase64data)

- **Type**: `string`

Base64-encoded video data.

### [videoDataURI](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#response-videodatauri)

- **Type**: `string`
- **Format**: `uri`

Data URI of the output video.

### [seed](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#response-seed)

- **Type**: `integer`

The seed used for generation. If none was provided, shows the randomly generated seed.

### [NSFWContent](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#response-nsfwcontent)

- **Type**: `boolean`

Flag indicating if NSFW content was detected.

### [cost](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#response-cost)

- **Type**: `float`

Task cost in USD. Present when `includeCost` is set to `true` in the request.

### [outputs](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#response-outputs)

- **Path**: `outputs.videoId`
- **Type**: `object (1 property)`

Generated output artifacts.

#### [videoId](https://runware.ai/docs/models/google-gemini-omni-flash-1-2#response-outputs-videoid)

- **Path**: `outputs.videoId`
- **Type**: `string`

ID of the generated video. Provide it as `inputs.videoId` to edit the video in a follow-up request.

## Examples

### text-to-video (text-to-video)

[Watch video](https://assets.runware.ai/examples/google-gemini-omni-flash-1-2/e64c1739-23a5-4e2b-a964-d5171312b296.mp4)

```json
{
  "taskType": "videoInference",
  "taskUUID": "85500d36-754e-4c3e-b720-2f803e0c5562",
  "model": "google:gemini@omni-flash-1.2",
  "positivePrompt": "Create a polished 15-second landscape product visualization for an agricultural equipment colorway review. One continuous shot at dawn in a working hillside vineyard: a compact narrow-row electric vineyard tractor drives slowly along a gravel service lane between orderly grapevines. The tractor has a low cab, black rollover frame, cream wheels, rugged tires, visible suspension, front utility rack, and clean unbranded body panels. Keep the complete tractor visible throughout the shot. Begin with all painted body panels in a deep oxblood red satin finish. The camera tracks parallel at wheel height in a smooth stabilized move, framing the tractor in a strong three-quarter side view while pale morning mist and long amber sunlight create a refined editorial atmosphere. At approximately seven seconds, a dense cluster of foreground grape leaves passes naturally across the lens as an organic wipe. During that brief occlusion, swap only the painted oxblood body panels to a pale mineral-blue satin colorway. After the leaves clear, reveal the exact same tractor continuing at the same speed and position in mineral blue. Preserve every component, proportion, reflection, wheel rotation, shadow, background element, and camera trajectory across the swap; no morphing, model change, jump cut, duplicated vehicle, new accessories, logos, labels, or text. Continue tracking the blue version for the remainder of the clip and finish on a composed three-quarter hero view with the tractor still moving steadily. Photorealistic premium industrial cinematography, restrained natural palette, crisp material detail, realistic dust, subtle lens bloom, believable physics, no people. Native synchronized sound: quiet electric drivetrain whine, tires crunching over gravel, soft suspension movement, light dawn birds and distant vineyard ambience; the foreground leaves produce a close textured rustle exactly during the color transition, followed by a subtle mechanical confirmation click. No speech and no music.",
  "width": 1280,
  "height": 720,
  "duration": 15
}
```

---

### first-frame (first-frame)

[Watch video](https://assets.runware.ai/examples/google-gemini-omni-flash-1-2/72a9f2f4-a78d-42c8-91d6-64e9d628b2b1.mp4)

```json
{
  "taskType": "videoInference",
  "taskUUID": "79cd923e-0d28-4836-9afe-789b55834bca",
  "model": "google:gemini@omni-flash-1.2",
  "positivePrompt": "Create a single continuous eight-second vertical product shot beginning exactly from the supplied first frame. Preserve the cassette's identity, dimensions, reel positions, screws, label artwork, hand placement, apricot backdrop, hard lighting, shadow direction, macro lens character, and retro-futurist photographic style. The gloved hands slowly tilt the cassette toward the light while both reels turn gently. Add a restrained camera push-in. At roughly three seconds, the right thumb passes naturally across the cassette shell; during this brief practical occlusion, swap only the plastic shell colorway from translucent smoke gray to translucent electric cobalt blue. The transition must feel physically seamless rather than magical. Keep the transparency, internal components, cream-and-black geometric label, screws, proportions, reflections, and surface texture unchanged. Hold the completed cobalt colorway square to camera for the final two seconds as a clean catalog hero view. No cuts, extra products, text, logos, captions, interface elements, or changes to the gloves and set. Native synchronized audio: quiet studio room tone, soft cotton handling sounds, a precise plastic click at the colorway change, gentle cassette-reel whir, and one minimal warm analog-synth pulse that resolves on the final hero pose.",
  "width": 720,
  "height": 1280,
  "duration": 8,
  "inputs": {
    "frameImages": [
      "https://assets.runware.ai/assets/inputs/5d2b3355-5a05-401f-be3b-eae5140e8298.jpg"
    ]
  }
}
```

---

### first-last-frame (first-last-frame)

[Watch video](https://assets.runware.ai/examples/google-gemini-omni-flash-1-2/ae02189a-ca1c-42cc-b54c-95156dd7a77d.mp4)

```json
{
  "taskType": "videoInference",
  "taskUUID": "5ca184cd-45a0-4983-997f-d4dc244878c5",
  "model": "google:gemini@omni-flash-1.2",
  "positivePrompt": "Create a polished continuous time-of-day relight for a climate-engineering documentary, connecting the supplied first and last endpoint frames over one uninterrupted locked-off shot. Preserve the exact camera position, lens, composition, tidal barrier architecture, operations building, maintenance crane, railings, horizon and water level throughout; nothing may appear, disappear, warp or change identity. Begin in soft late-afternoon daylight. Let the ambient light fall gradually and naturally as the sky shifts through steel gray and muted cyan into deep cobalt night. Clouds drift slowly toward the left, the water maintains gentle wind-driven ripples, and the final night lighting develops progressively rather than arriving as a sudden dissolve. As dusk deepens, switch on the facility lights in a credible sequence: first the operations-building windows, then the amber service lamps beneath the gate railings, then the two small red obstruction beacons. Their reflections should emerge gradually on the darkening water. Use physically plausible exposure adaptation with retained highlight detail, realistic shadow growth and subtle cool moonlight at the endpoint. The result should feel like a premium documentary time-lapse relight, not a crossfade between still images. No camera movement, cuts, flicker, weather jump, added people, vehicles, signage, captions or logos. Native synchronized location audio only: steady estuary wind, quiet water against concrete, distant seabirds fading as night arrives, low electrical and hydraulic facility hum becoming slightly more noticeable after the lights activate; no speech and no music.",
  "resolution": "720p",
  "duration": 10,
  "inputs": {
    "frameImages": [
      {
        "image": "https://assets.runware.ai/assets/inputs/f4fa0dc3-728a-49a9-b5a4-75f626539761.jpg",
        "frame": "first"
      },
      {
        "image": "https://assets.runware.ai/assets/inputs/87dea285-514f-49dc-85ba-cd13f5da2603.jpg",
        "frame": "last"
      }
    ]
  }
}
```

---

### reference-to-video (reference-to-video)

[Watch video](https://assets.runware.ai/examples/google-gemini-omni-flash-1-2/bfabd75b-933e-4d30-9f53-e1babb065d73.mp4)

```json
{
  "taskType": "videoInference",
  "taskUUID": "28817be8-9785-4840-bc91-6a9f23262f00",
  "model": "google:gemini@omni-flash-1.2",
  "positivePrompt": "Create a shot-matched day-for-night relight of the supplied pangolin release reference video for a premium conservation documentary. Treat referenceVideos[0] as the master for framing, camera position, duration, timing, action and synchronized physical sounds. Preserve the exact locked-off composition, the pangolin's gait and position through the shot, the ranger's pose and appearance, the open crate, drifting dust, moving grass and every environmental detail. Use referenceImages[0] as the continuity authority for the pangolin's scale pattern, the ranger's unbranded khaki uniform, the crate and the woodland textures. Use referenceImages[1] exclusively as the nighttime lighting and color-grade target.\n\nTransform the late-afternoon scene into a convincing moonlit night exterior: reduce overall exposure while retaining natural documentary detail, replace warm daylight with restrained indigo-charcoal ambient light, add soft silvery moon rims to the pangolin's scales, grass and leaf edges, and keep the reddish ground subtly legible rather than crushed to black. Shadows must remain physically coherent with the original terrain and movement. Remove obvious daylight warmth and daytime highlights without changing geometry, weather, season or performance. The result should feel photographically captured at night, not covered by a blue filter. No new animals, people, lamps, fireflies, stars, mist, props, camera motion, cuts, slow motion, text or logos.\n\nAdapt the native audio to nighttime while preserving synchronization: retain the pangolin's scale rustle, footsteps, crate creak, breeze and grass movement exactly on action; replace prominent daytime birds with a sparse, realistic southern African night ambience of quiet insects and one distant nightjar. No music, narration or exaggerated animal sounds. Deliver a polished 16:9 natural-history documentary shot composed for 1080p.",
  "resolution": "1080p",
  "duration": 6,
  "inputs": {
    "referenceImages": [
      "https://assets.runware.ai/assets/inputs/c7021079-1c6b-4c9b-909a-ef1c7e750543.jpg",
      "https://assets.runware.ai/assets/inputs/0867c25a-358a-490a-bd3b-b2a5dc35f11f.jpg"
    ],
    "referenceVideos": [
      "https://assets.runware.ai/assets/inputs/29faa2c9-9956-45a5-b6c8-982870aad91f.mp4"
    ]
  }
}
```

---

### video-edit (video-edit)

[Watch video](https://assets.runware.ai/examples/google-gemini-omni-flash-1-2/a7b94b7e-ae52-40d6-bb30-f3527ea225c9.mp4)

```json
{
  "taskType": "videoInference",
  "taskUUID": "fdabda61-0a32-471e-a4e5-39be600b4b00",
  "model": "google:gemini@omni-flash-1.2",
  "positivePrompt": "Edit the source as one seamless winter-readiness VFX shot. Preserve the source video's exact duration, timing, aerial camera path, stabilization, framing, perspective, rack-rail car design, yellow paint, proportions, speed, wheel contact, direction of travel, station architecture, track layout, terrain geometry, and uninterrupted uphill action. Do not replace, redesign, recolor, duplicate, slow, or reposition the rail car. Use the reference image only as the visual guide for the blizzard's density, wind direction, cool blue-gray daylight, atmospheric visibility, wet rails, and realistic snow accumulation.\n\nBegin in the source video's clear, dry late-autumn conditions. Across the continuous take, have a fast alpine storm advance naturally over the distant ridge: high cloud shadows cool the sunlight first, wind begins moving the dry grass, then sparse sleet crosses the frame and develops into dense wind-driven snow. By the final third, the scene is inside a convincing severe blizzard matching the reference, with distant peaks partially lost in white-gray atmosphere and fresh snow collecting progressively on the sleepers, ballast, grass, rock ledges, station roof, and upward-facing surfaces of the moving rail car. Keep accumulation physically gradual and temporally coherent rather than appearing all at once. Preserve readable detail and safe operational visibility around the maintenance car while allowing the background to recede into storm haze.\n\nMaintain grounded documentary realism suitable for a mountain railway safety film: restrained ochre-to-cyan palette transition, natural exposure adaptation, plausible wind interaction, consistent moving shadows, accurate motion blur, fine snow particles at multiple depths, and no fantasy effects. The weather change must happen continuously with no cut, dissolve, time jump, camera change, new objects, people, signage, captions, logos, or audio-dependent storytelling. Deliver as a clean cinematic 16:9 720p shot.",
  "resolution": "720p",
  "inputs": {
    "video": "https://assets.runware.ai/assets/inputs/a1df8167-ae86-425f-bb85-5f3f39fd37af.mp4",
    "referenceImages": [
      "https://assets.runware.ai/assets/inputs/8eb42c6c-a1c4-4701-94dc-4b71ba78e6d8.jpg"
    ]
  }
}
```

---

### video-extend (video-extend)

[Watch video](https://assets.runware.ai/examples/google-gemini-omni-flash-1-2/6db73550-065d-4dde-a826-b4fc712dff3c.mp4)

```json
{
  "taskType": "videoInference",
  "taskUUID": "e77175ec-f042-4851-acdf-f6a722f2e898",
  "model": "google:gemini@omni-flash-1.2",
  "positivePrompt": "Extend the supplied fashion-film clip seamlessly beyond its final frame without revising or replaying any existing action. Preserve the same model, exact facial features, skin tone, ivory silk hood, limestone atelier, warm late-afternoon lighting, shallow depth of field, lens character, editorial realism, and restrained ivory, oxblood, silver, and limestone palette. Keep the hearing device perfectly consistent in scale, fit, construction, and materials: matte oxblood crescent body behind the ear, slender brushed-silver helix cuff, two pearl-white ceramic nodes, and nearly transparent sound tube. Continue the camera's clockwise orbit and subtle forward drift at the same speed and stabilization, with no cut or jump. Continue her existing chin lift and rising-hand motion naturally. Her fingertips reach the lower edge of the silver cuff and make one gentle adjustment; the cuff catches a narrow warm highlight while the oxblood body remains clearly visible. She then lowers her hand slowly as the camera completes the orbit into an elegant near-profile close-up and eases to a poised hold, keeping the entire ear and product comfortably inside frame. Maintain anatomically natural fingers, restrained expression, realistic fabric movement, and premium fashion-campaign polish. Continue the prepared-piano pulse, room tone, silk rustle, and delicate metallic resonance with identical volume, rhythm, acoustic space, and timing; add only a subtle tactile click when her fingertip touches the cuff. No dialogue, captions, logos, lettering, new objects, wardrobe changes, scene changes, cuts, transitions, duplicated jewelry, or product deformation.",
  "resolution": "720p",
  "duration": 10,
  "inputs": {
    "video": "https://assets.runware.ai/assets/inputs/6c7a2c91-7732-47cd-9c00-a8f2a6dda517.mp4"
  }
}
```