> ## 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 Full Parameter Overview

> - Gemini Omni 1.2 Flash provides six video task types through `POST /v1/videos/generations`.
- **Text-to-video:** `gemini-omni-1.2-flash-text-to-video`; requires only a text prompt; `3–15` seconds.
- **Image-to-video:** `gemini-omni-1.2-flash-image-to-video`; one first-frame image (`3–15` seconds) or two first/last-frame images (`3–10` seconds).
- **Reference-to-video:** `gemini-omni-1.2-flash-reference-to-video`; reference images and up to 3 reference videos. When `duration` exceeds 10 seconds, at most 1 reference video is allowed.
- **Video editing:** `gemini-omni-1.2-flash-video-edit`; one input video of up to 15 seconds and optionally up to 10 reference images. `quality` defaults to `auto`.
- **Video extension:** `gemini-omni-1.2-flash-video-extend`; one input video of up to 30 seconds and optionally up to 10 reference images. `quality` defaults to `auto`; `duration` is the number of seconds to append.
- **Video upscaling:** `gemini-omni-1.2-flash-video-upscale`; one video of up to 15 seconds in a supported standard size. Specify the target resolution with `quality`; no prompt is needed.
- **Aspect ratio:** Defaults to `auto`. Editing, extension, and upscaling preserve the input video's aspect ratio.
- The model generates synchronized native audio automatically; no extra switch is needed.
- 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-overview.json POST /v1/videos/generations
openapi: 3.1.0
info:
  title: Gemini Omni 1.2 Flash Full Parameter Overview
  description: >-
    Full parameter overview for Gemini Omni 1.2 Flash, covering six modes:
    text-to-video, image-to-video, reference-to-video, video editing, video
    extension, and video upscaling.
  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 Full Parameter Overview
      description: >-
        - Gemini Omni 1.2 Flash provides six video task types through `POST
        /v1/videos/generations`.

        - **Text-to-video:** `gemini-omni-1.2-flash-text-to-video`; requires
        only a text prompt; `3–15` seconds.

        - **Image-to-video:** `gemini-omni-1.2-flash-image-to-video`; one
        first-frame image (`3–15` seconds) or two first/last-frame images
        (`3–10` seconds).

        - **Reference-to-video:** `gemini-omni-1.2-flash-reference-to-video`;
        reference images and up to 3 reference videos. When `duration` exceeds
        10 seconds, at most 1 reference video is allowed.

        - **Video editing:** `gemini-omni-1.2-flash-video-edit`; one input video
        of up to 15 seconds and optionally up to 10 reference images. `quality`
        defaults to `auto`.

        - **Video extension:** `gemini-omni-1.2-flash-video-extend`; one input
        video of up to 30 seconds and optionally up to 10 reference images.
        `quality` defaults to `auto`; `duration` is the number of seconds to
        append.

        - **Video upscaling:** `gemini-omni-1.2-flash-video-upscale`; one video
        of up to 15 seconds in a supported standard size. Specify the target
        resolution with `quality`; no prompt is needed.

        - **Aspect ratio:** Defaults to `auto`. Editing, extension, and
        upscaling preserve the input video's aspect ratio.

        - The model generates synchronized native audio automatically; no extra
        switch is needed.

        - 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: createGeminiOmni12FlashGeneration
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GeminiOmni12FlashRequest'
            examples:
              text_to_video:
                summary: Text-to-video
                value:
                  model: gemini-omni-1.2-flash-text-to-video
                  prompt: >-
                    A glass marble rolls quickly along a wooden track, then
                    falls into water with a splash.
                  quality: 720p
                  duration: 3
                  aspect_ratio: '16:9'
              image_to_video:
                summary: First-and-last-frame image-to-video
                value:
                  model: gemini-omni-1.2-flash-image-to-video
                  prompt: >-
                    Transition the shot smoothly from sunrise to nighttime
                    lights.
                  image_urls:
                    - https://example.com/first-frame.png
                    - https://example.com/last-frame.png
                  quality: 720p
                  duration: 3
                  aspect_ratio: '16:9'
              reference_to_video:
                summary: Reference-to-video
                value:
                  model: gemini-omni-1.2-flash-reference-to-video
                  prompt: >-
                    Preserve the person’s appearance from the reference image
                    and follow the camera movement in the reference video.
                  image_urls:
                    - https://example.com/character.png
                  video_urls:
                    - https://example.com/reference.mp4
                  quality: 720p
                  duration: 3
                  aspect_ratio: '16:9'
              video_edit:
                summary: Video edit
                value:
                  model: gemini-omni-1.2-flash-video-edit
                  prompt: >-
                    Change the overall lighting to a warm sunset atmosphere
                    while keeping everything else unchanged.
                  video_urls:
                    - https://example.com/source.mp4
                  quality: auto
                  duration: auto
                  aspect_ratio: auto
              video_extend:
                summary: Video extend
                value:
                  model: gemini-omni-1.2-flash-video-extend
                  prompt: >-
                    The person continues walking forward and slowly exits the
                    frame.
                  video_urls:
                    - https://example.com/source.mp4
                  duration: 3
                  quality: auto
                  aspect_ratio: auto
              video_upscale:
                summary: Video upscaling
                value:
                  model: gemini-omni-1.2-flash-video-upscale
                  video_urls:
                    - https://example.com/source-720p.mp4
                  quality: 1080p
      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-text-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:
    GeminiOmni12FlashRequest:
      type: object
      required:
        - model
      additionalProperties: false
      properties:
        model:
          type: string
          description: >-
            Model name. Select the model ID that matches the input and task:


            - `gemini-omni-1.2-flash-text-to-video`: text-to-video

            - `gemini-omni-1.2-flash-image-to-video`: image-to-video (first
            frame or first/last frames)

            - `gemini-omni-1.2-flash-reference-to-video`: reference-to-video

            - `gemini-omni-1.2-flash-video-edit`: video editing

            - `gemini-omni-1.2-flash-video-extend`: video extension

            - `gemini-omni-1.2-flash-video-upscale`: video upscaling
          enum:
            - gemini-omni-1.2-flash-text-to-video
            - gemini-omni-1.2-flash-image-to-video
            - gemini-omni-1.2-flash-reference-to-video
            - gemini-omni-1.2-flash-video-edit
            - gemini-omni-1.2-flash-video-extend
            - gemini-omni-1.2-flash-video-upscale
          example: gemini-omni-1.2-flash-text-to-video
        prompt:
          type: string
          description: >-
            Text prompt describing the generation, editing, or continuation
            goal; supports Chinese and English. Required for every mode except
            video upscaling, which needs no prompt.


            - Describe the subject, action, scene, camera movement, and elements
            to preserve clearly.

            - Put negative requirements directly in the prompt, such as `No
            dialogue` or `No text`. There is no separate negative prompt
            parameter.


            Video upscaling does not use `prompt`; any supplied prompt is
            ignored.
          example: >-
            A glass marble rolls quickly along a wooden track, then falls into
            water with a splash.
        image_urls:
          type: array
          items:
            type: string
            format: uri
          minItems: 1
          maxItems: 10
          description: >-
            Image input array.


            - Image-to-video: required; 1–2 images. One is the first frame; two
            are the first and last frames.

            - Reference-to-video: required; the published recommendation is at
            most 10 reference images.

            - Video editing: optional; up to 10 reference images.

            - Video extension: optional; up to 10 reference images.

            - Text-to-video and video upscaling: image input is not supported.


            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: >-
            Video input array.


            - Reference-to-video: optional; the published recommendation is at
            most 3 videos. When `duration` exceeds 10 seconds, at most 1 is
            allowed.

            - Video editing: exactly 1 required, up to 15 seconds.

            - Video extension: exactly 1 required, up to 30 seconds.

            - Video upscaling: exactly 1 required, up to 15 seconds. Supported
            sizes: `640×360`, `1280×720`, `1920×1080`, and their portrait
            equivalents.

            - Text-to-video and image-to-video: video input is not supported.


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


            **Options (landscape / portrait):**

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

            - `720p`: 1280×720 / 720×1280

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

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

            - `auto`: editing and extension only; follows the input resolution.


            **Defaults:**

            - Text-to-video, image-to-video, reference-to-video: `720p`.

            - Video editing and extension: `auto`.

            - Video upscaling: required target resolution, higher than the
            input. 360p → `720p` or `1080p`; 720p → `1080p` or `4k`; 1080p →
            `4k`.


            **Billing:** Text-to-video, image-to-video, reference-to-video,
            editing, and extension are billed separately for input tokens, video
            output tokens, and other output tokens (including thinking). Video
            upscaling is billed only for video output tokens, with no input or
            thinking token charges. The charge at submission is an estimate;
            final billing uses actual usage.
          enum:
            - 360p
            - 720p
            - 1080p
            - 4k
            - auto
          example: 720p
        duration:
          description: >-
            Video duration.


            - Text-to-video and reference-to-video: integer `3`–`15` seconds;
            default `3`.

            - Image-to-video: `3`–`15` seconds with one first frame, or `3`–`10`
            seconds with first/last frames; default `3`.

            - Video editing and upscaling: only `auto`, which is also the
            default. Output duration follows the input.

            - Video extension: integer `3`–`10` seconds; default `3`. This is
            the duration to append.
          oneOf:
            - type: integer
              minimum: 3
              maximum: 15
            - type: string
              enum:
                - auto
          example: 3
        aspect_ratio:
          type: string
          description: >-
            Video aspect ratio; default `auto`.


            - `16:9`: landscape.

            - `9:16`: portrait.

            - `auto`: the model selects the ratio from the prompt and input;
            this is the default.


            Editing, extension, and upscaling allow only `auto` and preserve the
            input video's aspect ratio.
          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:
              model:
                const: gemini-omni-1.2-flash-text-to-video
            required:
              - model
          then:
            properties:
              duration:
                type: integer
                default: 3
                minimum: 3
                maximum: 15
              quality:
                enum:
                  - 360p
                  - 720p
                  - 1080p
                  - 4k
                default: 720p
              prompt:
                minLength: 1
                pattern: \S
            not:
              anyOf:
                - required:
                    - image_urls
                - required:
                    - video_urls
            required:
              - prompt
        - if:
            properties:
              model:
                const: gemini-omni-1.2-flash-image-to-video
            required:
              - model
          then:
            required:
              - prompt
              - image_urls
            properties:
              image_urls:
                maxItems: 2
              duration:
                type: integer
                default: 3
                minimum: 3
                maximum: 15
              quality:
                enum:
                  - 360p
                  - 720p
                  - 1080p
                  - 4k
                default: 720p
              prompt:
                minLength: 1
                pattern: \S
            not:
              anyOf:
                - required:
                    - video_urls
            allOf:
              - if:
                  properties:
                    image_urls:
                      minItems: 2
                  required:
                    - image_urls
                then:
                  properties:
                    duration:
                      maximum: 10
        - if:
            properties:
              model:
                const: gemini-omni-1.2-flash-reference-to-video
            required:
              - model
          then:
            required:
              - prompt
              - image_urls
            properties:
              video_urls:
                maxItems: 3
              duration:
                type: integer
                default: 3
                minimum: 3
                maximum: 15
              quality:
                enum:
                  - 360p
                  - 720p
                  - 1080p
                  - 4k
                default: 720p
              prompt:
                minLength: 1
                pattern: \S
            allOf:
              - if:
                  properties:
                    duration:
                      type: integer
                      minimum: 11
                  required:
                    - duration
                then:
                  properties:
                    video_urls:
                      maxItems: 1
        - if:
            properties:
              model:
                const: gemini-omni-1.2-flash-video-edit
            required:
              - model
          then:
            required:
              - prompt
              - video_urls
            properties:
              video_urls:
                maxItems: 1
              image_urls:
                maxItems: 10
              duration:
                type: string
                enum:
                  - auto
                default: auto
              aspect_ratio:
                enum:
                  - auto
              quality:
                enum:
                  - 360p
                  - 720p
                  - 1080p
                  - 4k
                  - auto
                default: auto
              prompt:
                minLength: 1
                pattern: \S
        - if:
            properties:
              model:
                const: gemini-omni-1.2-flash-video-extend
            required:
              - model
          then:
            required:
              - prompt
              - video_urls
            properties:
              video_urls:
                maxItems: 1
              image_urls:
                maxItems: 10
              duration:
                type: integer
                default: 3
                minimum: 3
                maximum: 10
              aspect_ratio:
                enum:
                  - auto
              quality:
                enum:
                  - 360p
                  - 720p
                  - 1080p
                  - 4k
                  - auto
                default: auto
              prompt:
                minLength: 1
                pattern: \S
        - if:
            properties:
              model:
                const: gemini-omni-1.2-flash-video-upscale
            required:
              - model
          then:
            required:
              - video_urls
              - quality
            properties:
              video_urls:
                maxItems: 1
              quality:
                enum:
                  - 720p
                  - 1080p
                  - 4k
              duration:
                type: string
                enum:
                  - auto
                default: auto
              aspect_ratio:
                enum:
                  - auto
                default: auto
            not:
              required:
                - image_urls
    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-text-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 video duration in seconds.


            - Text-to-video, image-to-video, reference-to-video: equals the
            request's `duration`.

            - Video editing: `duration` defaults to and only accepts `auto`;
            output follows the input, and this field reports the detected input
            duration.

            - Video extension: total output duration, equal to input duration
            plus the requested additional `duration`.

            - Video upscaling: same as the input; reports the detected input
            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.