Skip to main content
Video gen & edits

Digital human video generation

Create talking, singing, and performing videos from a portrait image and audio

Quick links: API reference: Create a digital human video, Retrieve the result, Detect a portrait image wan2.2-s2v generates a digital human video from a single portrait image and an audio file. The person in the image talks, sings, or performs in sync with the audio, with natural facial expressions and head movement. Supported regions: China North 2 (Beijing) only. Use an API key created in that region and the https://cn-beijing.maas.qwencloudapi.com endpoint. See Regions and endpoints.
Before running the SDK examples below, ensure your DashScope SDK is up to date.

Input requirements

InputRequirements
Portrait imageJPG, JPEG, PNG, BMP, or WEBP. Width and height between 400 and 7,000 pixels. Must be a publicly accessible HTTP or HTTPS URL.
AudioWAV or MP3. File size under 15 MB, duration under 20 seconds. Must contain clear, loud human speech without background noise or music.
To check whether an image meets the portrait requirements before generating, use Detect a portrait image.

Parameters

ParameterTypeRequiredDescription
modelstringYes"wan2.2-s2v"
input.image_urlstringYesPublicly accessible URL of the portrait image.
input.audio_urlstringYesPublicly accessible URL of the audio file.
parameters.resolutionstringNo"480P" or "720P". Default: "480P".

Generate a video

The model keeps the aspect ratio of the input image and adjusts the total pixel count to the selected resolution tier. The output video lasts as long as the input audio.
  • curl
  • Python
Step 1: Create a task
# China North 2 (Beijing). This model is available only in this region.
# API keys are region-specific. See https://docs.qwencloud.com/developer-guides/getting-started/regions
curl --location 'https://cn-beijing.maas.qwencloudapi.com/api/v1/services/aigc/image2video/video-synthesis' \
  -H 'X-DashScope-Async: enable' \
  -H "Authorization: Bearer $DASHSCOPE_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "wan2.2-s2v",
  "input": {
    "image_url": "https://img.alicdn.com/imgextra/i3/O1CN011FObkp1T7Ttowoq4F_!!6000000002335-0-tps-1440-1797.jpg",
    "audio_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250825/iaqpio/input_audio.MP3"
  },
  "parameters": {
    "resolution": "480P"
  }
}'
Step 2: Get the result using the task IDReplace {task_id} with the task_id value returned by the previous call.
# China North 2 (Beijing). This model is available only in this region.
# API keys are region-specific. See https://docs.qwencloud.com/developer-guides/getting-started/regions
curl -X GET 'https://cn-beijing.maas.qwencloudapi.com/api/v1/tasks/{task_id}' \
  -H "Authorization: Bearer $DASHSCOPE_API_KEY"

Poll for the result

Video generation takes about 5 to 10 minutes. Poll the task endpoint every 15 seconds until task_status is SUCCEEDED or FAILED, then download the video from video_url.
  • video_url expires after 24 hours.
  • A task_id is valid for 24 hours.
  • Task status flow: PENDING → RUNNING → SUCCEEDED or FAILED.

Tips

  • Use a clear portrait: A front-facing image with a single person, even lighting, and no obstructions produces the best lip sync.
  • Keep audio short: The video length equals the audio length and the audio must be under 20 seconds. For longer content, generate one video per audio segment and merge the results.
  • Remove background noise: Background music or noise reduces lip-sync accuracy.