Animate a character image by transferring actions from a reference video.
-
Feature summary: Transfer actions and expressions from a reference video to a character image to generate an animated video.
-
Scenarios: Replicate dances, complex body movements, and facial expressions from film and television performances. A low-cost alternative to motion capture.
Model effects
The wan2.2-animate-move model supports two service modes: standard mode wan-std and professional mode wan-pro, which differ in output quality and pricing. For more information, see Model invocation pricing.
|
Character image |
Reference video |
Output video (standard mode |
Output video (professional mode |
|
|
Prerequisites
Get an API key and export the API key as an environment variable.
The Beijing and Singapore regions have separate API keys and request endpoints. Do not use them interchangeably. Cross-region calls result in authentication failures or service errors.
HTTP
Video generation uses asynchronous calls. The process has two steps: create a task, then poll for results.
Step 1: Create a task and get the task ID
Singapore: POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/image2video/video-synthesis
Beijing: POST https://dashscope.aliyuncs.com/api/v1/services/aigc/image2video/video-synthesis
After the task is created, use the returned
task_idto query the result. Thetask_idis valid for 24 hours. Do not create duplicate tasks. Instead, use polling to retrieve the result.For a beginner's tutorial, see Use Postman or cURL.
Request parameters |
Image to actionThe base_url is for the Singapore region. If you use a model in the Beijing region, replace the base_url with the following:
|
Request headers |
|
|
Content-Type The content type of the request. Must be |
|
|
Authorization The authentication credentials using a Model Studio API key. Example: |
|
|
X-DashScope-Async Enables asynchronous processing. Must be Important Returns "current user api does not support synchronous calls" error if not included. |
|
Request body |
|
|
model The model name. Set this parameter to |
|
|
input The input parameters. Contains the following fields: |
|
|
parameters |
Response parameters |
Successful responseSave the Error responseTask creation failed. See error codes to resolve the issue. |
|
output The task output. |
|
|
request_id Unique identifier for the request. Use for tracing and troubleshooting issues. |
|
|
message Detailed error message. Returned only when the request fails. See error codes for details. |
|
|
code The error code. Returned only when the request fails. See error codes for details. |
Step 2: Query the result by task ID
Singapore: GET https://dashscope-intl.aliyuncs.com/api/v1/tasks/{task_id}
Beijing: GET https://dashscope.aliyuncs.com/api/v1/tasks/{task_id}
Polling suggestion: Video generation can take several minutes. Use a polling mechanism with a reasonable query interval, such as 15 seconds, to retrieve the result.
Task status transition: PENDING → RUNNING → SUCCEEDED or FAILED.
Result URL: After the task is successful, a video URL is returned. The URL is valid for 24 hours. After you retrieve the URL, you must immediately download and save the video to a permanent storage service, such as Object Storage Service (OSS).
task_id validity: 24 hours. After this period, you cannot query the result, and the API returns a task status of
UNKNOWN.
Request parameters |
Query task resultReplace The base_url is for the Singapore region. If you use a model in the Beijing region, replace the base_url with the following:
|
Request headers |
|
|
Authorization The authentication credentials using a Model Studio API key. Example: |
|
URL path parameters |
|
|
task_id The ID of the task to query. |
Response parameters |
Task successfulVideo URLs are retained for only 24 hours and then automatically purged. Save generated videos promptly. Task failedWhen a task fails,
|
|
output The task output. |
|
|
usage Output statistics. Only successful results are counted. |
|
|
request_id Unique identifier for the request. Use for tracing and troubleshooting issues. |
Limitations
Data validity: Task IDs and video URLs expire after 24 hours and are inaccessible afterward. Download videos promptly.
Content moderation: All inputs and outputs are automatically moderated. Non-compliant content returns an "IPInfringementSuspect" or "DataInspectionFailed" error. For more information, see Error messages.
Billing and rate limiting
-
For free quota and pricing, see Model invocation pricing.
-
For rate limits, see Wan series.
-
Billing description:
-
Only output is billed based on video duration (seconds).
-
Failed calls are free and do not consume the new user free quota.
-
Error codes
If a model call fails and returns an error message, see Error messages for resolution.
FAQ
Q: How can I optimize the quality of the generated video?
A:
-
Ensure the character occupies a similar portion of the frame in both the input image and reference video.
-
Keep body proportions consistent between image and video.
-
Use high-definition source materials. Avoid blurry images or low-frame-rate videos.
Q: How can I convert a temporary video link to a permanent one?
A: The link cannot be converted directly. Have your backend download the video and upload it to permanent object storage (like OSS) to generate a permanent URL.
Q: Can the returned video link be played directly in a browser?
A: Not recommended. The link expires after 24 hours. Have your backend download and save the video, then use a permanent link for playback.
Q: How do I get the domain name whitelist for video storage?
A: Videos generated by models are stored in OSS. The API returns a temporary public URL. To configure a firewall whitelist for this download URL, note the following: The underlying storage may change dynamically. This topic does not provide a fixed OSS domain name whitelist to prevent access issues caused by outdated information. If you have security control requirements, contact your account manager to obtain the latest OSS domain name list.
