The digital human wan2.2-s2v model generates natural talking, singing, or performing videos based on a single image and an audio file .
- Audio-driven: Input human-voice audio to drive the person in a static image, synchronizing lip movements, facial expressions, and actions with the audio.
- Rich scenarios: Supports three lip-sync scenarios: "speaking", "singing", and "performing".
- Diverse character styles: Supports real people (portrait, half-body, full-body) and cartoon characters.
- Output video resolution: Provides 480P and 720P resolution options.
Models and pricing
Model name | Price | Throttling (shared by primary account and RAM users) | |
|---|---|---|---|
Task submission RPS limit | Concurrent tasks limit | ||
wan2.2-s2v | 480P: $0.071677/second 720P: $0.129018/second | 5 | 1 |
HTTP API
Prerequisites
- Activate the service and obtain an API key: Obtain an API key.
- Configure environment variables: Configure API key as an environment variable.
Step 1: Create a task to get a task ID
{WorkspaceId} with your actual workspace ID.
- Because this model takes a long time to process, tasks are created asynchronously.
- After a task is created, the system immediately returns a
task_id. In the next step, use this task_id to query the task result within 24 hours.
Request parameters
| Parameter | Type | Location | Required | Description | Example value |
|---|---|---|---|---|---|
| Content-Type | String | Header | Yes | Request type: application/json. | application/json |
| Authorization | String | Header | Yes | API key in the format Bearer sk-xxx. | Bearer sk-1a**2b |
| X-DashScope-Async | String | Header | Yes | Fixed value: enable. Indicates that the asynchronous calling method is used. | enable |
| model | String | Body | Yes | Specifies the model to call. | wan2.2-s2v |
| input.image_url | String | Body | Yes | URL of the uploaded image.
| http://aaa/bbb.jpg |
| input.audio_url | String | Body | Yes | URL of the uploaded audio file.
| http://aaa/bbb.mp3 |
| parameters.resolution | String | Body | No | Video resolution tier.Valid values: 480P and 720P. Default value: 480P.The model tries to keep the output video's aspect ratio consistent with the input image, and adjusts the total pixel count to the selected tier while keeping the aspect ratio unchanged.
Examples 480P: typically 640 x 480 (about 310,000 pixels), 4:3 aspect ratio.720P: typically 1280 x 720 (about 920,000 pixels), 16:9 aspect ratio.Example: If the input image has a 4:5 aspect ratio and you select the 480P tier, the output video keeps the 4:5 aspect ratio and the resolution is adjusted to about 310,000 pixels. For example, the output video resolution is 480 x 600, for a total of 288,000 pixels. This data is for reference only; the actual output may vary. | 480P |
Response parameters
Parameter | Type | Description | Example value |
|---|---|---|---|
output.task_id | String | Unique ID of the asynchronous task. | a8532587-fa8c-4ef8-82be-0c46b17950d1 |
output.task_status | String | Job status after the asynchronous task is submitted. | PENDING |
request_id | String | Unique ID of this request. | 7574ee8f-38a3-4b1e-9280-11c33ab46e51 |
Request example
Response example
Step 2: Query results by task ID
Use the task_id obtained in the previous step to send a GET request to query the task status and result. Replace {task_id} in the URL with your actual task ID,and replace {WorkspaceId} with your actual workspace ID.
- Video generation tasks take a long time (about 5-10 minutes). We recommend using a polling mechanism with a reasonable query interval (for example, 15 seconds) to retrieve results.
- The
video_urlreturned after a successful task is valid for 24 hours. Download and save the video promptly.
Request parameters
Parameter | Type | Location | Required | Description | Example value |
|---|---|---|---|---|---|
Authorization | String | Header | Yes | API key, for example, Bearer sk-xxx. | Bearer sk-xxx |
task_id | String | Url Path | Yes | ID of the task to query. | a8532587-fa8c-4ef8-82be-0c46b17950d1 |
Response parameters
Parameter | Type | Description | Example value |
|---|---|---|---|
output.task_id | String | ID of the queried task. | a8532587-fa8c-4ef8-82be-0c46b17950d1 |
output.task_status | String | Task status. Possible values:
| SUCCEEDED |
output.submit_time | String | Task submission time. | 2025-09-01 09:37:27.468 |
output.scheduled_time | String | Task execution start time. | 2025-09-01 09:37:34.885 |
output.end_time | String | Task completion time. | 2025-09-01 09:40:20.734 |
output.results.video_url | String | Generated video file. The video_url is valid for 24 hours. Download it promptly. | https://xxx/1.mp4?Expires=xxx |
usage.duration | Float | Video duration in seconds. Used for billing, charged per second. | 10.23 |
usage.video_count | Integer | Number of generated videos. | 1 |
usage.SR | Integer | Resolution tier of the generated video. | 480 |
usage.size | String | Resolution of the video generated by this request. | "size": "640*480" |
usage.fps | Integer | Frame rate of the video generated by this request. | "fps": 16 |
output.code | String | Error code. Returned when the task fails. | InvalidParameter |
output.message | String | Error details. Returned when the task fails. | The request is missing required parameters or in a wrong format |
request_id | String | Unique ID of this request. | 7574ee8f-38a3-4b1e-9280-11c33ab46e51 |
Request example
Replace 86ecf553-d340-4e21-xxxxxxxxx with the actual task_id,and replace {WorkspaceId} with your actual workspace ID.
Response example
- Successful response
- Failed response
Billing and throttling
- For model free quotas and pricing, see Wanx-Digital Human.
- For model throttling, see Wanxiang series.
-
Billing notes:
- Input is not billed; output is billed. You are charged by the number of seconds in the successfully generated video.
- Failed model calls or processing errors are not charged and do not consume Free quota for new users.