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