Avatars, lip-sync and character animation

Make talking avatars, put new lines on existing footage and animate photos with POST /v1/videos. InfiniteTalk, LatentSync and Wan Animate 2, priced per output second.

On this page
  1. Make a photo talk (InfiniteTalk)
  2. New lines on existing footage (LatentSync)
  3. Animate a photo (Wan Animate 2)
  4. Billing
  5. Troubleshooting
  6. Related

All four avatar models create tasks with POST /v1/videos; status and download work as in Video generation. You pay per output second, and the length comes from your input audio or video. Failed and cancelled tasks are free.

Model Input Output Good for
infinitetalk image (portrait) or video (one person), plus input_audio (speech or song) The person speaks or sings Presenters, product videos, explainers
latentsync video (one person, clear face) + input_audio (speech) Same footage with only the mouth redrawn, using your audio New lines, dubbing
latentsync-music video + input_audio (song) Vocals drive the lips; the full song is kept Lip-synced singing
wan-animate-2 image (a person) and/or video (motion reference), optional input_audio Natural movement, or the motion and expressions from the video Bringing photos to life, motion transfer

Inputs are public https:// URLs or base64 data URIs, up to 50 MB each.

#Make a photo talk (InfiniteTalk)

bash
curl https://bigmodel.io/v1/videos \
  -H "Authorization: Bearer $BIGMODEL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "infinitetalk",
    "image": "https://example.com/host.jpg",
    "input_audio": "https://example.com/script.mp3",
    "prompt": "natural smile, slight nods"
  }'
  • The voice track can be up to 60 seconds.
  • With video instead of image, the person, body movement and background are kept and only the mouth is redrawn.
  • Make the voice track with Text to speech and pass its URL.

#New lines on existing footage (LatentSync)

bash
curl https://bigmodel.io/v1/videos \
  -H "Authorization: Bearer $BIGMODEL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "latentsync",
    "video": "https://example.com/talking.mp4",
    "input_audio": "https://example.com/new-line.wav"
  }'
  • One person with a clear, front-facing face, up to 1080p. image is not accepted.
  • Audio must be wav or mp3. latentsync takes up to 120 seconds; latentsync-music is for songs up to 15 seconds.
  • If the video is shorter than the audio, latentsync loops it forward and back; latentsync-music holds the last frame.

#Animate a photo (Wan Animate 2)

bash
curl https://bigmodel.io/v1/videos \
  -H "Authorization: Bearer $BIGMODEL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "wan-animate-2",
    "image": "https://example.com/character.png",
    "video": "https://example.com/dance.mp4"
  }'
  • image only: about 5 seconds of natural movement.
  • With video: the motion and expressions move onto the person in the image; length follows the video, up to 60 seconds.
  • video only: the first frame is used as the person.
  • input_audio only replaces the soundtrack and does not drive the lips; use infinitetalk for that.

#Billing

Billed seconds come from the real input length: the voice track for infinitetalk and latentsync, the motion video for wan-animate-2 (5 seconds for an image alone). Prices are in Models → Video. Add "dry_run": true to estimate first:

json
{"object": "quote", "model": "infinitetalk", "unit": "per_second", "estimated_units": 12.5, "estimated_cost_usd": 0.16}

#Troubleshooting

Symptom Fix
400 Give image … or video … plus input_audio infinitetalk needs either image or video, plus input_audio.
400 image is not accepted The latentsync models take only video and input_audio.
Lips drift or the face flickers Use footage of one person with a clear, evenly lit face; remove background music from the voice track.
failed, input could not be processed Check the audio format (wav/mp3) and length limits.

Updated · View as Markdown