Wan2.6 Reference Video

  • WAN2.6 (wan2.6-reference-video) model supports reference video-to-video generation
  • Upload reference videos, the model will extract character appearance and voice to generate new videos
  • Asynchronous processing mode, use the returned task ID to query status
  • Generated video links are valid for 24 hours, please save them promptly
  • Billing: Combined billing based on input + output video duration, only charged after successful generation, no charges for failures

OpenAPI

````yaml en/api-manual/video-series/wan2.6/wan2.6-reference-video.json post /v1/videos/generations openapi: 3.1.0 info: title: wan2.6-reference-video API description: >- Generate videos using the WAN2.6 model with reference videos, extracting character appearance and voice from uploaded reference videos to create new videos license: name: MIT version: 1.0.0 servers: - url: https://ai.odkkk.com/apiv1 description: Production Environment security: - bearerAuth: [] paths: /v1/videos/generations: post: tags: - Video Generation summary: wan2.6-reference-video API description: >- - WAN2.6 (wan2.6-reference-video) model supports reference video-to-video generation

    - Upload reference videos, the model will extract character appearance
    and voice to generate new videos

    - Asynchronous processing mode, use the returned task ID to [query
    status](/en/api-manual/task-management/get-task-detail)

    - Generated video links are valid for 24 hours, please save them
    promptly

    - **Billing**: Combined billing based on input + output video duration,
    only charged after successful generation, no charges for failures
  operationId: createWan26ReferenceVideoGeneration
  requestBody:
    required: true
    content:
      application/json:
        schema:
          $ref: '#/components/schemas/Wan26ReferenceVideoRequest'
        examples:
          reference_video:
            summary: Reference Video to Video
            value:
              model: wan2.6-reference-video
              prompt: A person dancing
              video_urls:
                - >-
                  https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/xxx.mp4
  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: 400
              message: Invalid request format
              type: invalid_request_error
              param: model
    '401':
      description: Authentication failed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: 401
              message: Invalid authentication credentials
              type: authentication_error
    '403':
      description: Access denied
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: 403
              message: Access denied for this model
              type: permission_error
              param: model
    '404':
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: 404
              message: Specified model not found
              type: not_found_error
              param: model
              fallback_suggestion: wan2.6-reference-video
    '429':
      description: Rate limit exceeded
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: 429
              message: Rate limit exceeded
              type: rate_limit_error
              fallback_suggestion: retry after 60 seconds
    '500':
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: 500
              message: Internal server error
              type: internal_server_error
              fallback_suggestion: try again later
    '502':
      description: Upstream service error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: 502
              message: Bad gateway
              type: upstream_error
              fallback_suggestion: try again later
    '503':
      description: Service temporarily unavailable
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: 503
              message: Service temporarily unavailable
              type: service_unavailable_error
              fallback_suggestion: retry after 30 seconds

components: schemas: Wan26ReferenceVideoRequest: type: object required: - model - prompt - video_urls properties: model: type: string description: Model name enum: - wan2.6-reference-video default: wan2.6-reference-video example: wan2.6-reference-video prompt: type: string description: >- Prompt describing the video you want to generate, limited to 1500 characters example: A person dancing maxLength: 1500 video_urls: type: array items: type: string format: uri description: >- Array of reference video file URLs. Used to extract character appearance and voice from reference videos to generate new videos.

        **URL Requirements:**

        - Supports HTTP or HTTPS protocol

        - Local files can obtain temporary URLs via [File
        Upload](/en/api-manual/file-series/upload-base64)


        **Array Limits:**

        - Maximum 3 videos


        **Video Requirements:**

        - Format: mp4, mov

        - Duration: 2~30 seconds

        - File size: Single video no more than 100MB


        **Input Video Billing Rules:**

        - Each reference video is truncated and summed, total input billing
        duration capped at `5` seconds

        - 1 video: `min(video duration, 5s)`

        - 2 videos: `min(video1 duration, 2.5s) + min(video2 duration,
        2.5s)`

        - 3 videos: `min(video1 duration, 1.65s) + min(video2 duration,
        1.65s) + min(video3 duration, 1.65s)`

        - `1080p` quality has a higher price
      maxItems: 3
      example:
        - >-
          https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/xxx.mp4
    aspect_ratio:
      type: string
      description: >-
        Video aspect ratio, defaults to `16:9`


        **Options:**

        - `720p`: Supports `16:9` (landscape), `9:16` (portrait), `1:1`
        (square), `4:3`, `3:4`

        - `1080p`: Supports `16:9` (landscape), `9:16` (portrait), `1:1`
        (square), `4:3`, `3:4`
      example: '16:9'
    quality:
      type: string
      description: >-
        Video quality, defaults to `720p`


        **Options:**

        - `720p`: Standard definition, standard price, this is the default

        - `1080p`: High definition, higher price


        **Note:** Different quality levels support different aspect ratios,
        see `aspect_ratio` parameter
      example: 720p
    duration:
      type: integer
      description: >-
        Specifies the duration of the generated video (in seconds)


        **Note:**

        - Only supports `5`, `10` values, representing `5 seconds`, `10
        seconds`


        **Output Video Billing Rules:**

        - Output video billing duration: The number of seconds of video
        successfully generated by the model
      enum:
        - 5
        - 10
      example: 5
    model_params:
      type: object
      description: Model parameter configuration
      properties:
        shot_type:
          type: string
          description: >-
            Specifies the shot type for the generated video, i.e., whether
            the video consists of a single continuous shot or multiple
            switching shots


            **Parameter Priority:**

            - `shot_type` > `prompt`

            - For example, if `shot_type` is set to `single`, even if the
            `prompt` contains `generate multi-shot video`, the model will
            still output a single-shot video


            **Options:**

            - `single`: Default, outputs single-shot video

            - `multi`: Outputs multi-shot video


            **Note:**

            - Use this parameter when you want to strictly control the
            narrative structure of the video (e.g., single shot for product
            showcases, multi-shot for short stories)
          enum:
            - single
            - multi
          example: single
    callback_url:
      type: string
      description: >-
        HTTPS callback URL for task completion


        **Callback Timing:**

        - Triggered when task is completed, failed, or cancelled

        - Sent after billing confirmation


        **Security Restrictions:**

        - Only HTTPS protocol is supported

        - Callbacks to internal IP addresses are prohibited (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 after failure (retries at `1`/`2`/`4` seconds
        after failure)

        - Callback response format is consistent with the task query API
        response

        - 2xx status codes are considered successful, other status codes
        trigger retries
      format: uri
      example: https://your-domain.com/webhooks/video-task-completed
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: Actual model name used
      example: wan2.6-reference-video
    object:
      type: string
      enum:
        - video.generation.task
      description: Task type
    progress:
      type: integer
      description: Task progress percentage (0-100)
      minimum: 0
      maximum: 100
      example: 0
    status:
      type: string
      description: Task status
      enum:
        - pending
        - processing
        - completed
        - failed
      example: pending
    task_info:
      $ref: '#/components/schemas/VideoTaskInfo'
      description: Video task details
    type:
      type: string
      enum:
        - text
        - image
        - audio
        - video
      description: Task output type
      example: video
    usage:
      $ref: '#/components/schemas/Usage'
      description: Usage and billing information
ErrorResponse:
  type: object
  properties:
    error:
      type: object
      properties:
        code:
          type: integer
          description: Error code
        message:
          type: string
          description: Error message
        type:
          type: string
          description: Error type
        param:
          type: string
          description: Parameter that caused the error
        fallback_suggestion:
          type: string
          description: Suggested solution
VideoTaskInfo:
  type: object
  properties:
    can_cancel:
      type: boolean
      description: Whether the task can be cancelled
      example: true
    estimated_time:
      type: integer
      description: Estimated completion time (seconds)
      minimum: 0
      example: 120
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_call
    credits_reserved:
      type: number
      description: Estimated credits consumption
      minimum: 0
      example: 5
    user_group:
      type: string
      description: User group category
      enum:
        - default
        - vip
      example: default

securitySchemes: bearerAuth: type: http scheme: bearer description: >- ## All APIs require Bearer Token authentication ##

    **Get API Key:**


    Visit the [API Key Management Page](https://ai.odkkk.com/apiv1/dashboard/keys)
    to get your API Key


    **Add to request header:**

    ```

    Authorization: Bearer YOUR_API_KEY

    ```

````


To find navigation and other pages in this documentation, fetch the llms.txt file at: https://ai.odkkk.com/apiv1/docs/llms.txt