Model Details
LatentSync 1.0 takes a talking-head video and a separate speech track and re-animates the speaker's mouth to match the new audio. Identity, lighting and background carry over from the source; only the mouth is regenerated, and the result keeps the input's frame size. It is audio-conditioned latent diffusion: Whisper audio embeddings are cross-attended into the diffusion model with no intermediate landmark or motion representation, and TREPA, LPIPS and SyncNet losses keep mouth motion steady frame to frame. At $0.014 per second of delivered video — about $0.28 for a 20-second clip — it is the lowest-priced lip sync in the catalog. Feed it an MP4 with one clearly visible, front-facing speaker plus an MP3, AAC, WAV or M4A speech track; there is no text prompt.
## Best for - Dubbing talking-head footage into another language so the lips match the translated voiceover - Re-voicing an interview, tutorial, or ad with a cleaner or re-recorded audio take - Fixing a take where the recorded speech and the mouth have drifted out of sync - Chaining after a text-to-speech model: generate the voice, then lip-sync the footage to it - High-volume or long-form lip sync where cost per second matters
## Choose another model when - You need control over how a length mismatch is handled — this model always trims to the shorter of the two; `sync/lipsync/v2` exposes `sync_mode` with loop, bounce, silence and remap - You are starting from a still photo rather than footage — use `bytedance/omnihuman/v1.5` or `wan-video/wan/v2.7/image-to-video/audio-driven` to animate a portrait - You still need to produce the speech — this endpoint takes an existing audio file and no text prompt, so run a text-to-speech model first and feed its output here
## Tips - Supply audio slightly shorter than the video: the result runs for the shorter of the two, trimmed to a whole multiple of 0.64 seconds, so a trailing fragment of speech is dropped - Trim the source video to roughly the audio's length; extra video is discarded and only slows the run
## Limitations - Every frame needs a detectable face: a cutaway or a frame with no face fails the whole run (nothing is charged) - Frame rate is not adjustable — the result is delivered at 25 fps, so other rates are resampled - Mouth detail is modest; this generation was not trained at high resolution - The soundtrack comes back re-encoded to 16 kHz mono AAC
To run via the ModelRunner JavaScript client: ```js import { modelrunner } from "@modelrunner/client";
const result = await modelrunner.subscribe("bytedance/latentsync", { input: { video_url: "https://media.modelrunner.ai/NLaN6i1oQvbd8Mn4oEDXs.mp4", audio_url: "https://media.modelrunner.ai/lZfxwe6ZN6ZikXQhVtiq7.wav", }, }); ```


