Browse ModelsSyncSync Lipsync 3

Sync Lipsync 3

Sync Lipsync 3

Playground

Try it on WavespeedAI!

Sync Lipsync 3 synchronizes lip movements in any video to supplied audio using zero-shot lip-sync technology. Supports multiple sync modes for handling duration mismatches, works with live-action, 3D characters, and AI-generated avatars. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

Features

LipSync-3

LipSync-3 is Sync’s advanced lip synchronization model. Upload a video and an audio track — the model automatically syncs the speaker’s lip movements to the new audio with high accuracy and natural motion. Supports multiple sync modes to handle length mismatches between video and audio.


Why Choose This?

  • High-accuracy lip synchronization Precisely maps audio phonemes to lip movements for natural, believable sync across a wide range of speakers and languages.

  • Flexible sync mode control Choose how the model handles video-audio length mismatches — loop, bounce, cut off, silence, or remap — to fit your specific use case.

  • Broad video compatibility Works on talking head videos, interviews, presentations, and any footage with visible facial movement.

  • Simple two-input workflow Just a video and an audio file — no manual keyframing, no masking, no technical setup required.


Parameters

ParameterRequiredDescription
videoYesInput video to apply lip sync to (URL or file upload).
audioYesAudio track to sync the lip movements to (URL, file upload, or microphone recording).
sync_modeNoHow to handle video-audio length mismatches. Options: bounce, loop, cut_off (default), silence, remap.

Sync Mode Options

  • cut_off — Cuts the output at whichever is shorter, video or audio.
  • loop — Loops the video to match the length of the audio.
  • bounce — Plays the video forward then backward repeatedly to match audio length.
  • silence — Pads the shorter input with silence or a still frame to match the longer one.
  • remap — Remaps the video timing to match the audio duration.

How to Use

  1. Upload your video — provide the talking head or speaker video via URL or drag-and-drop.
  2. Upload your audio — provide the replacement audio track via URL, file upload, or microphone recording.
  3. Select sync_mode (optional) — choose how to handle length differences between the video and audio.
  4. Submit — generate, preview, and download your lip-synced video.

Pricing

$0.134 per second of input video.


Best Use Cases

  • Dubbing & Localization — Replace the original audio with a translated voiceover and sync lip movements to match.
  • Voice Replacement — Swap out a speaker’s audio while maintaining natural facial animation.
  • AI Avatar Video — Generate talking head videos with custom audio for virtual presenters and digital avatars.
  • Content Repurposing — Update or correct existing video audio without reshooting.
  • Accessibility — Create lip-synced versions of content for accessibility and localization workflows.

Pro Tips

  • Use clean, well-lit talking head footage with a clearly visible face for the most accurate sync results.
  • Minimize background noise in your audio track — cleaner audio produces better phoneme mapping.
  • If your audio is shorter than your video, use cut_off or silence mode depending on whether you want the video trimmed or padded.
  • For seamless looping content, bounce or loop modes work well when the video is shorter than the audio.

Notes

  • Both video and audio are required fields.
  • Pricing is based on the duration of the input video at $0.134 per second.
  • Ensure video and audio URLs are publicly accessible if using links rather than direct uploads.

Authentication

For authentication details, please refer to the Authentication Guide.

API Endpoints

Submit Task & Query Result


# Submit the task
curl --location --request POST "https://api.wavespeed.ai/api/v3/sync/lipsync-3" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
    "sync_mode": "cut_off"
}'

# Get the result
curl --location --request GET "https://api.wavespeed.ai/api/v3/predictions/${requestId}/result" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}"

Parameters

Task Submission Parameters

Request Parameters

ParameterTypeRequiredDefaultRangeDescription
videostringYes-The video to be used for generation
audiostringYes--The audio to be used for generation
sync_modestringNocut_offbounce, loop, cut_off, silence, remapDefines how to handle duration mismatches between video and audio inputs. See the Media Content Tips guide https://docs.sync.so/compatibility-and-tips/media-content-tips#sync-mode-options for a brief overview, or the SyncMode enum below for detailed explanations of each option.

Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
data.idstringUnique identifier for the prediction, Task Id
data.modelstringModel ID used for the prediction
data.outputsarrayArray of URLs to the generated content (empty when status is not completed)
data.urlsobjectObject containing related API endpoints
data.urls.getstringURL to retrieve the prediction result
data.has_nsfw_contentsarrayArray of boolean values indicating NSFW detection for each output
data.statusstringStatus of the task: created, processing, completed, or failed
data.created_atstringISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”)
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds

Result Request Parameters

ParameterTypeRequiredDefaultDescription
idstringYes-Task ID

Result Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
dataobjectThe prediction data object containing all details
data.idstringUnique identifier for the prediction, the ID of the prediction to get
data.modelstringModel ID used for the prediction
data.outputsstringArray of URLs to the generated content (empty when status is not completed).
data.urlsobjectObject containing related API endpoints
data.urls.getstringURL to retrieve the prediction result
data.statusstringStatus of the task: created, processing, completed, or failed
data.created_atstringISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”)
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds
© 2025 WaveSpeedAI. All rights reserved.