Skip to content

Wan-2.2 Speech-to-Video 14B

Integrate

Model id wan/v2.2-14b/speech-to-video
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/wan/v2.2-14b/speech-to-video?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
    "image": "https://content.doitong.com/images/showcase/v3/avatar/talking_avatar.jpg",
    "audio": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3"
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Files like the example: $0.50 500 API credits your files are measured before the run Run it on this page

Get API key
Alibaba Lipsync & Avatars Lipsyncup to 720p #audio-to-video#talking-head

Makes a talking video from a still image and an audio file, guided by a text prompt

Made on Doitong

Public works made with Wan v22 Large by the Doitong community. Reuse a prompt in one click.

Public works shown: 2
Create a realistic cinematic UGC-style commercial video, exactly 30 seconds long. The entire scen... Video

Create a realistic cinematic UGC-style commercial video, exactly 30 seconds long. The entire scene takes place inside a modern passenger airplane during a daytime flight. Natural smartphone-like cinematography, realistic airplane cabin, authentic passengers, natural lighting, realistic skin...

Реалистичная бытовая сцена в советской одесской квартире зимним вечером. Женщина находится на кух... Video

Реалистичная бытовая сцена в советской одесской квартире зимним вечером. Женщина находится на кухне, мужчина — в комнате и прихожей. Атмосфера обычной советской семьи перед приходом гостей. Голоса: все персонажи говорят по-русски с естественным, выразительным одесским говором. Характерная...

Build a request

Controls are generated from the model schema. The code and the price update as you change them.

•required

Text prompt used to generate the video.

•required image_url
Drop a file, or

Source image URL, with the selected aspect ratio determining whether preprocessing is needed: a mismatch triggers resizing followed by a center crop.

•required audio_url
Drop a file, or

URL pointing to the audio file.

resolution default 480p

Output video resolution: 480p, 580p, or 720p.

default 80

Choose a multiple of 4 within 40–120 to set how many frames are generated.

Advanced negative_prompt · video_quality · video_write_mode · frames_per_second · num_inference_steps · guidance_scale · shift · seed · enable_safety_checker · enable_output_safety_checker
default

Negative prompt applied when generating a video.

video_quality default high

Output video quality setting that trades larger files for improved visuals as the setting increases.

video_write_mode default balanced

Video writing mode, with balanced offering a compromise between speed and quality. Choose small for the smallest files and slowest writing; faster writing returns results sooner but creates larger files.

default 16

Generated video frame rate, accepting values from 4 to 60; setting `adjust_fps_for_interpolation` to false preserves this rate unchanged. With interpolation in use and `adjust_fps_for_interpolation` true (its default), multiply this rate by one plus the interpolated frame count to obtain the final FPS. For example, 16 FPS with 1 interpolated frame becomes 32 FPS.

default 27

Sampling step count, trading longer processing time for better quality as the count increases.

default 3.5

Classifier-free guidance strength, trading possible quality loss for closer prompt matching as the scale increases.

default 5

Video shift setting, with an allowed range of 1.0–10.0.

Seed that makes generation reproducible. Setting it to None selects a seed randomly.

POST /run/wan/v2.2-14b/speech-to-video?wait=20 quote → $0.50
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/wan/v2.2-14b/speech-to-video?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
    "image": "https://content.doitong.com/images/showcase/v3/avatar/talking_avatar.jpg",
    "audio": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3"
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Run this request

Your key stays in this browser: it is sent only to the Doitong API and saved (localStorage) only if you tick Remember. Get an API key

About Wan-2.2 Speech-to-Video 14B

Needs a `prompt`, a source `image_url` and an `audio_url`, and produces a video of the pictured subject driven by the audio. `num_frames` runs from 40 to 120 in multiples of 4, at 16 fps by default. `resolution` can be 480p, 580p or 720p. Sampling steps, guidance, interpolation and a `negative_prompt` are adjustable.

Parameters

Send either the canonical name or the native name, not both. Canonical names

NameType DefaultAllowed Description
promptrequired
Typestring
Text prompt used to generate the video.
negative_promptoptional
Typestring
Default
Negative prompt applied when generating a video.
num_framesoptional
Typeinteger
Default80
40 – 120
Choose a multiple of 4 within 40–120 to set how many frames are generated.
frames_per_secondoptional
Typeinteger | null
Default16
4 – 60
Generated video frame rate, accepting values from 4 to 60; setting `adjust_fps_for_interpolation` to false preserves this rate unchanged. With interpolation in use and `adjust_fps_for_interpolation` true (its default), multiply this rate by one plus the interpolated frame count to obtain the final FPS. For example, 16 FPS with 1 interpolated frame becomes 32 FPS.
seedoptional
Typeinteger | null
Seed that makes generation reproducible. Setting it to None selects a seed randomly.
resolutionoptional
Typeenum
Default480p
480p580p720p
Output video resolution: 480p, 580p, or 720p.
num_inference_stepsoptional
Typeinteger
Default27
2 – 40
Sampling step count, trading longer processing time for better quality as the count increases.
enable_safety_checkeroptional
Typeboolean
Defaultfalse
Input safety screening before processing, which only authorized accounts may turn off. Requests lacking authorization are always screened; otherwise, true enables screening.
enable_output_safety_checkeroptional
Typeboolean
Defaultfalse
Controls safety screening of the generated video; setting true enables a check after generation.
guidance_scaleoptional
Typenumber
Default3.5
1 – 10
Classifier-free guidance strength, trading possible quality loss for closer prompt matching as the scale increases.
shiftoptional
Typenumber
Default5
1 – 10
Video shift setting, with an allowed range of 1.0–10.0.
video_qualityoptional
Typeenum
Defaulthigh
lowmediumhighmaximum
Output video quality setting that trades larger files for improved visuals as the setting increases.
video_write_modeoptional
Typeenum
Defaultbalanced
fastbalancedsmall
Video writing mode, with balanced offering a compromise between speed and quality. Choose small for the smallest files and slowest writing; faster writing returns results sooner but creates larger files.
image_urlrequired image
Typeurl · image
Source image URL, with the selected aspect ratio determining whether preprocessing is needed: a mismatch triggers resizing followed by a center crop.
audio_urlrequired audio
Typeurl · audio
URL pointing to the audio file.
required Canonical name, also accepted

File parameters take a public https:// URL, a data: URI up to 10 MB, or the file_url of an upload. Files

Output

GET /requests/req_8k2m4q7x1z9c3v5b6n0p2r4t
{
  "id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
  "object": "request",
  "model": "wan/v2.2-14b/speech-to-video",
  "status": "succeeded",
  "created_at": "2026-10-20T12:00:00Z",
  "started_at": "2026-10-20T12:00:02Z",
  "completed_at": "2026-10-20T12:00:09Z",
  "queue_position": null,
  "cost": {
    "credits": 500,
    "usd": "0.50",
    "charged": 500,
    "refunded": 0
  },
  "input": {
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
    "image_url": "https://content.doitong.com/images/showcase/v3/avatar/talking_avatar.jpg",
    "audio_url": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3"
  },
  "output": {
    "video": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
      "content_type": "video/mp4",
      "file_name": "0-output.mp4",
      "file_size": 1843200
    }
  },
  "outputs": [
    {
      "type": "video",
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
      "content_type": "video/mp4",
      "file_size": 1843200,
      "width": 1280,
      "height": 720,
      "duration": 5,
      "stored": true
    }
  ],
  "error": null,
  "metrics": {
    "inference_seconds": 6.8
  },
  "urls": {
    "self": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
    "cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
  }
}
Your files, your choiceEvery outputs[].url is a copy on our storage: kept forever (paid per GB-month) or 7 days for free, by your account setting or ?storage=.
Same shape on every modeltype, url, content_type, width, height and duration, for images, video and audio alike. output is the model’s own result object.
Fields of output
video
object {url, content_type, file_name, file_size}Video file produced by generation.

More models: Lipsync & Avatars

For AI agents: this page as Markdown is at https://doitong.com/developers/models/wan/v2.2-14b/speech-to-video.md. All models and guides: https://doitong.com/developers/llms.txt