Browse ModelsVeedVeed Lipsync V2

Veed Lipsync V2

Veed Lipsync V2

Playground

Try it on WavespeedAI!

VEED Lipsync V2 generates production-quality lip-synced videos from a source video and a replacement audio track, matching mouth movements to the new audio for dubbing, localization, creator content, and talking-video workflows. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

Features

VEED Lipsync V2

VEED Lipsync V2 generates production-quality lip-synced video from a source video and replacement audio track. Upload a video with a visible speaker, provide the new audio, and the model produces a video where the mouth movement follows the supplied audio.


Why Choose This?

  • Production-quality lipsync Generate natural mouth movement that follows the replacement audio track.

  • Simple video-to-video workflow Provide one source video and one audio file without extra tuning parameters.

  • Audio-driven duration The output video follows the uploaded audio duration.

  • Standard video output The generated video is returned as a URL in the standard WaveSpeed prediction response.


Parameters

ParameterRequiredDescription
videoYesSource video containing the face to be lip-synced.
audioYesAudio track that drives the mouth movement.

How to Use

  1. Upload source video - Provide a video with a clear, visible face.
  2. Upload audio - Provide the replacement audio track.
  3. Submit - Generate the lip-synced video.
  4. Review output - The result is returned as a video URL.

Pricing

Pricing is $0.075 per second of uploaded audio duration, rounded up to the next full second.

Audio DurationPrice
5s$0.375
10s$0.75
30s$2.25
60s$4.50

Best Use Cases

  • Video dubbing - Replace speech while keeping the original speaker video.
  • Localization - Create translated versions of existing presenter videos.
  • Dialogue replacement - Update spoken lines without reshooting footage.
  • Marketing content - Adapt spokesperson videos for different messages.
  • Education and training - Reuse presenter footage with new narration.

Pro Tips

  • Use clear audio with minimal background noise.
  • Use a source video where the mouth is visible and well-lit.
  • Avoid heavy face occlusion or fast camera movement for best results.
  • Match the style and pacing of the audio to the source footage when possible.
  • Ensure both URLs are publicly accessible.

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/veed/lipsync-v2" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{}'

# 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
audiostringYes--Input audio URL. The output video follows the audio duration.
videostringYes-Input video URL containing the face to be lip-synced.

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.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.