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

# Gemini Omni 1.2 Flash Reference-to-Video

> - Gemini Omni 1.2 Flash (`gemini-omni-1.2-flash-reference-to-video`) generates video with native audio from reference images, optional reference videos, and a text prompt.
- **Images:** `image_urls` accepts 1–10 reference images to guide subjects, styles, or elements.
- **Videos:** `video_urls` is optional; up to 3 reference videos can guide action, camera movement, or style. When `duration` exceeds 10 seconds, at most 1 reference video is allowed.
- **Resolution:** `360p`, `720p`, `1080p`, or `4k`; default `720p`.
- **Duration:** Integer `3–15` seconds; default `3`.
- **Aspect ratio:** `16:9`, `9:16`, or `auto`; default `auto`.
- Synchronized native audio is generated automatically, with no additional parameter.
- Write negative requirements directly in `prompt` (for example, `No dialogue`); there is no separate negative prompt parameter.
- Set `seed` to improve reproducibility.
- Asynchronous processing: [query task status](/en/api-manual/task-management/get-task-detail) using the returned task ID.
- Generated video links remain valid for 24 hours; save them promptly.



## OpenAPI

````yaml en/api-manual/video-series/gemini-omni-1.2-flash/gemini-omni-1.2-flash-reference-to-video.json POST /v1/videos/generations
openapi: 3.1.0
info:
  title: Gemini Omni 1.2 Flash Reference-to-Video
  description: >-
    Generate a video with native audio from reference images, optional reference
    videos, and a text prompt
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.evolink.ai
    description: Production environment
security:
  - bearerAuth: []
paths:
  /v1/videos/generations:
    post:
      tags:
        - Video Generation
      summary: Gemini Omni 1.2 Flash Reference-to-Video
      description: >-
        - Gemini Omni 1.2 Flash (`gemini-omni-1.2-flash-reference-to-video`)
        generates video with native audio from reference images, optional
        reference videos, and a text prompt.

        - **Images:** `image_urls` accepts 1–10 reference images to guide
        subjects, styles, or elements.

        - **Videos:** `video_urls` is optional; up to 3 reference videos can
        guide action, camera movement, or style. When `duration` exceeds 10
        seconds, at most 1 reference video is allowed.

        - **Resolution:** `360p`, `720p`, `1080p`, or `4k`; default `720p`.

        - **Duration:** Integer `3–15` seconds; default `3`.

        - **Aspect ratio:** `16:9`, `9:16`, or `auto`; default `auto`.

        - Synchronized native audio is generated automatically, with no
        additional parameter.

        - Write negative requirements directly in `prompt` (for example, `No
        dialogue`); there is no separate negative prompt parameter.

        - Set `seed` to improve reproducibility.

        - Asynchronous processing: [query task
        status](/en/api-manual/task-management/get-task-detail) using the
        returned task ID.

        - Generated video links remain valid for 24 hours; save them promptly.
      operationId: createGeminiOmni12FlashReferenceToVideoGeneration
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GeminiOmni12FlashReferenceToVideoRequest'
            examples:
              reference_to_video:
                summary: Reference-to-video
                value:
                  model: gemini-omni-1.2-flash-reference-to-video
                  prompt: >-
                    Let the character from the reference image stroll through
                    the reference scene.
                  image_urls:
                    - https://example.com/character.png
                    - https://example.com/scene.png
                  quality: 720p
                  aspect_ratio: '16:9'
                  duration: 3
              reference_with_video:
                summary: Image and video references
                value:
                  model: gemini-omni-1.2-flash-reference-to-video
                  prompt: >-
                    Make the character in the reference image perform the
                    actions shown in the reference video.
                  image_urls:
                    - https://example.com/character.png
                  video_urls:
                    - https://example.com/reference.mp4
                  quality: 720p
                  aspect_ratio: '16:9'
                  duration: 3
      responses:
        '200':
          description: Video task created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VideoGenerationResponse'
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: invalid_request
                  message: Invalid request parameters
                  type: invalid_request_error
        '401':
          description: Not authenticated, token invalid or expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: unauthorized
                  message: Invalid or expired token
                  type: authentication_error
        '402':
          description: Insufficient quota, top-up required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: insufficient_quota
                  message: Insufficient quota. Please top up your account.
                  type: insufficient_quota
        '403':
          description: Access denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: model_access_denied
                  message: >-
                    Token does not have access to model:
                    gemini-omni-1.2-flash-reference-to-video
                  type: invalid_request_error
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: rate_limit_exceeded
                  message: Too many requests, please try again later
                  type: rate_limit_error
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: internal_error
                  message: Internal server error
                  type: api_error
components:
  schemas:
    GeminiOmni12FlashReferenceToVideoRequest:
      required:
        - model
        - prompt
        - image_urls
      type: object
      additionalProperties: false
      properties:
        model:
          type: string
          description: Model name, fixed to `gemini-omni-1.2-flash-reference-to-video`
          enum:
            - gemini-omni-1.2-flash-reference-to-video
          example: gemini-omni-1.2-flash-reference-to-video
          default: gemini-omni-1.2-flash-reference-to-video
        prompt:
          type: string
          description: >-
            Text prompt describing how the reference subjects, style, and motion
            should appear in the output.


            Supports Chinese and English. For more stable results, describe the
            desired action and changes clearly. Write negative requirements
            directly in `prompt`, such as `No dialogue` or `No text`; there is
            no separate negative prompt parameter.


            The prompt is required and must not be empty or contain only
            whitespace.
          example: A kitten playfully paws at a ball of yarn.
          minLength: 1
          pattern: \S
        image_urls:
          type: array
          items:
            type: string
            format: uri
          minItems: 1
          maxItems: 10
          description: >-
            Reference image URL array. Required; supports 1 to 10 images for
            constraining subjects, style, or elements.


            **Input requirements:**

            - HTTP/HTTPS image URLs only

            - Supported formats: `png`, `jpeg`, `webp`
          example:
            - https://example.com/character.png
            - https://example.com/scene.png
        video_urls:
          type: array
          items:
            type: string
            format: uri
          minItems: 1
          maxItems: 3
          description: >-
            Optional reference video array. Up to 3 videos; when `duration`
            exceeds `10` seconds, at most 1.


            Use alongside `image_urls` to guide action, camera movement, or
            style.


            **Input:** HTTP/HTTPS video URLs only; mp4 format.


            **Billing:** Each reference video's duration contributes to input
            tokens.


            Each reference video must be no longer than `10` seconds.
          example:
            - https://example.com/reference.mp4
        quality:
          type: string
          description: >-
            Video resolution; default `720p`.


            **Supported values:**

            - `360p`: landscape 640×360 / portrait 360×640

            - `720p`: landscape 1280×720 / portrait 720×1280; default

            - `1080p`: landscape 1920×1080 / portrait 1080×1920

            - `4k`: landscape 3840×2160 / portrait 2160×3840


            Orientation is controlled by `aspect_ratio`: `16:9` produces
            landscape and `9:16` produces portrait.


            **Billing:** Video output is billed by output tokens, which scale
            linearly with resolution. Relative to `720p`, `360p` uses about one
            third, `1080p` about 1.5×, and `4k` about 3×. Actual charges are
            based on generated usage.
          enum:
            - 360p
            - 720p
            - 1080p
            - 4k
          default: 720p
          example: 720p
        duration:
          type: integer
          description: >-
            Video duration in seconds; default `3`. Accepts any integer from `3`
            to `15`. Duration directly affects billing.
          minimum: 3
          maximum: 15
          default: 3
          example: 3
        aspect_ratio:
          type: string
          description: 'Aspect ratio: 16:9, 9:16, or auto; default auto.'
          enum:
            - '16:9'
            - '9:16'
            - auto
          default: auto
          example: auto
        seed:
          type: integer
          description: >-
            Random seed; random by default.


            - Range: `0`–`4294967295`.

            - Fixing the seed reduces variation from parameter changes when
            tuning prompts and improves reproducibility.
          minimum: 0
          maximum: 4294967295
          example: 42
        callback_url:
          type: string
          description: >-
            HTTPS callback URL to notify when the task completes


            **Callback timing:**

            - Triggered when the task completes (completed), fails (failed), or
            is cancelled (cancelled)

            - Sent after billing is confirmed


            **Security restrictions:**

            - HTTPS protocol only

            - Callbacks to internal IP addresses are forbidden (127.0.0.1,
            10.x.x.x, 172.16-31.x.x, 192.168.x.x, etc.)

            - URL length must not exceed `2048` characters


            **Callback mechanism:**

            - Timeout: `10` seconds

            - Up to `3` retries on failure (retried `1`s / `2`s / `4`s after
            each failure respectively)

            - The callback body format matches the response of the task query
            endpoint

            - A 2xx status code from the callback URL is treated as success;
            other status codes trigger a retry
          format: uri
          example: https://your-domain.com/webhooks/video-task-completed
      allOf:
        - if:
            properties:
              duration:
                type: integer
                minimum: 11
            required:
              - duration
          then:
            properties:
              video_urls:
                maxItems: 1
    VideoGenerationResponse:
      type: object
      properties:
        created:
          type: integer
          description: Task creation timestamp
          example: 1757169743
        id:
          type: string
          description: Task ID
          example: task-unified-1757169743-7cvnl5zw
        model:
          type: string
          description: The model name actually used
          example: gemini-omni-1.2-flash-reference-to-video
        object:
          type: string
          enum:
            - video.generation.task
          description: The specific type of the task
        progress:
          type: integer
          description: Task progress percentage (0-100)
          minimum: 0
          maximum: 100
          example: 0
        status:
          type: string
          description: >-
            Task status. The create endpoint always returns `processing`; the
            internal `pending` state is also exposed to clients as `processing`.
          enum:
            - pending
            - processing
            - completed
            - failed
          example: processing
        task_info:
          $ref: '#/components/schemas/VideoTaskInfo'
          description: Detailed video task information
        type:
          type: string
          enum:
            - text
            - image
            - audio
            - video
          description: The output type of the task
          example: video
        usage:
          $ref: '#/components/schemas/Usage'
          description: Usage and billing information
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              description: Error code identifier
            message:
              type: string
              description: Error description message
            type:
              type: string
              description: Error type
    VideoTaskInfo:
      type: object
      properties:
        can_cancel:
          type: boolean
          description: Whether the task can be cancelled
          example: false
        estimated_time:
          type: integer
          description: Estimated completion time (seconds)
          minimum: 0
          example: 60
        video_duration:
          type: integer
          description: Output duration in seconds; equals duration.
          example: 3
    Usage:
      type: object
      description: Usage and billing information
      properties:
        billing_rule:
          type: string
          description: Billing rule
          enum:
            - per_call
            - per_token
            - per_second
          example: per_token
        credits_reserved:
          type: number
          description: Estimated credits to be consumed
          minimum: 0
          example: 102.34
        user_group:
          type: string
          description: Billing group the user belongs to
          example: default
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        ##All endpoints require authentication using a Bearer Token##


        **Get your API Key:**


        Visit the [API Key management page](https://evolink.ai/dashboard/keys)
        to obtain your API Key


        **Add it to the request header:**

        ```

        Authorization: Bearer YOUR_API_KEY

        ```

````

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