> ## Documentation Index
> Fetch the complete documentation index at: https://docs.unifically.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Gemini Omni Flash 1.2 Video

> Generate 3 to 15 second videos with audio using Google's Gemini Omni 1.2 Flash. See supported inputs, parameters, response fields, and API examples.

Generate text-to-video, frames-to-video, and reference-to-video clips with Google's Gemini Omni 1.2 Flash, released November 6, 2026. Compared with 1.1 it takes any whole-second length from 3 to 15 seconds, follows character and scene references more closely, gives better control over jump cuts, and renders sharper visuals. The request body is the same as [Gemini Omni Flash 1.1 Video](https://docs.unifically.com/models/video/google/gemini-omni-flash-1.1-video.md), so moving over is a change of the model string.

Try it in the browser: [Gemini Omni Flash 1.2 API playground](https://unifically.com/models/gemini-omni-flash-1.2).

## Model

```text theme={null}
google/gemini-omni-flash-1.2-video
```

## Parameters

| Parameter | Type | Required | Default | Description |
| - | - | - | - | - |
| `prompt` | string | Yes | - | Main video prompt. Use `@ImageN` or `@CharacterN` to point at specific references. Unknown references are left as plain text. |
| `seed` | integer | No | Random | Seed for reproducible results, `0` to `2147483647`. If omitted, a seed is generated automatically and returned when available. |
| `duration` | integer | No | `4` | Clip length in seconds. Any whole number from `3` to `15`. First + last frame mode allows up to `10`. |
| `resolution` | string | No | `"720p"` | Output resolution. Allowed: `"360p"`, `"720p"`, `"1080p"`, `"4k"`. `"360p"` and `"720p"` generate natively. With `"1080p"` or `"4k"`, the video is upscaled after generation as part of the same task. |
| `aspect_ratio` | string | No | `"16:9"` | Output orientation. Allowed: `"16:9"`, `"9:16"`. |
| `start_image_url` | string | No | - | Publicly reachable image URL used as the first frame. Cannot be combined with `reference_image_urls` or `reference_characters`. |
| `end_image_url` | string | No | - | Publicly reachable image URL used as the last frame. Requires `start_image_url`; the clip animates from the first frame to the last frame. Max `duration` is `10` in this mode. |
| `reference_image_urls` | string\[] | No | - | Publicly reachable image reference URLs. Max 7. Cannot be combined with start/end frame fields. |
| `reference_characters` | array | No | - | Character references. Max 3 character items. Refer to them in the prompt as `@Character1`, `@Character2`, `@Character3`. |
| `voice` | string or string\[] | No | - | Google voice preset ID, or an array of up to 5 IDs. Requires at least one reference image or character. See [available voices](https://docs.unifically.com/api-reference/resources.md#get-google-veo-voices). |
| `allow_audio_filtered` | boolean | No | `false` | When `true`, the generation runs without audio instead of failing when the audio track is filtered. |
| `nsfw_check` | boolean | No | `false` | Check the prompt and input images for NSFW content before generating. Off unless set to `true` |

> [!NOTE]
>
> Price depends on `duration` and `resolution`: every whole second from 3 to 15 has its own price at each resolution. 360p is the cheapest draft tier. See current rates on the [pricing page](https://unifically.com/pricing).

> [!WARNING]
>
> Frame mode and reference mode are separate generation modes. Do not combine `start_image_url`/`end_image_url` with `reference_image_urls` or `reference_characters`.

## Character References

Each character must be an object with `image_urls`. Even one-image characters must use an array.

```json theme={null}
{
  "image_urls": [
    "https://example.com/character-front.png",
    "https://example.com/character-profile.png"
  ],
  "name": "Ada",
  "description": "warm, sharp, curious"
}
```

| Field | Type | Required | Description |
| - | - | - | - |
| `image_urls` | string\[] | Yes\* | Publicly reachable character image URLs. Use 1-10 images for a character entity. |
| `name` | string | No | Display name for the character. |
| `description` | string | No | Character notes/personality text. |

\*`image_urls` must contain at least one URL.

## Example — 7 Second Character Clip

```bash theme={null}
curl -X POST https://api.unifically.com/v1/tasks \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "google/gemini-omni-flash-1.2-video",
    "input": {
      "prompt": "@Character1 walks into a sunlit bakery and picks up a croissant. Cut to a close-up of her first bite.",
      "reference_characters": [
        {
          "image_urls": [
            "https://example.com/mia.png"
          ],
          "name": "Mia"
        }
      ],
      "voice": "kore",
      "duration": 7,
      "resolution": "720p",
      "aspect_ratio": "9:16"
    }
  }'
```

## Example — 360p Draft

```bash theme={null}
curl -X POST https://api.unifically.com/v1/tasks \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "google/gemini-omni-flash-1.2-video",
    "input": {
      "prompt": "A paper boat drifts down a rainy street gutter, cinematic close-up",
      "duration": 13,
      "resolution": "360p",
      "aspect_ratio": "16:9"
    }
  }'
```

## Example — First + Last Frame

Provide both frames and the clip animates from `start_image_url` to `end_image_url`.

```bash theme={null}
curl -X POST https://api.unifically.com/v1/tasks \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "google/gemini-omni-flash-1.2-video",
    "input": {
      "prompt": "The flower blooms in a smooth timelapse",
      "start_image_url": "https://example.com/bud.jpg",
      "end_image_url": "https://example.com/bloom.jpg",
      "aspect_ratio": "16:9",
      "duration": 6
    }
  }'
```

## Prompt References

| Token | Refers to |
| - | - |
| `@Image1`, `@Image2` | Items from `reference_image_urls` only |
| `@Character1`, `@Character2` | Items from `reference_characters` only. With multiple `image_urls`, the token points to the character item; extra images are identity references |

## Rejected Combinations

| Input | Why rejected |
| - | - |
| `duration` below 3, above 15, or not a whole number | Allowed lengths are whole seconds from 3 to 15. |
| `end_image_url` with `duration` above 10 | First + last frame mode is capped at 10 seconds. |
| `end_image_url` without `start_image_url` | The last frame requires a first frame. |
| `start_image_url`/`end_image_url` with `reference_image_urls` or `reference_characters` | Frame mode and reference mode are separate generation modes. |
| More than 7 `reference_image_urls` | Reference image limit. |
| More than 3 character items | Character item limit. |
| More than 5 voices, or `voice` with no reference image or character | Voice presets need a reference to attach to. |
| `image_url` on a character | Use `image_urls` instead, even for one image. |
| Empty `image_urls`, or more than 10 on one character | A character needs 1-10 images. |

## Response

```json theme={null}
{
  "code": 200,
  "success": true,
  "data": {
    "task_id": "abc123def456",
    "status": "processing"
  }
}
```

> [!NOTE]
>
> **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.