All posts
Lipsync

Sync Labs Lip Sync: Pick the Model, Then Nail the Settings

Three Sync models, three kinds of footage. Here's how to pick between Sync 3, Lipsync 2 Pro and Lipsync 1.9 beta on each::labs, prep your inputs, choose a sync_mode on purpose and build a dubbing workflow that holds up.

By Eftal Yurtseven · Nov 11, 2026 · 9 min read

Sync Labs Lip Sync: Pick the Model, Then Nail the Settings

The first lip sync you run always looks fine in the preview. Then you watch it full screen. The mouth drifts half a syllable behind the voice, the teeth go soft, and the last second of the clip loops in a way nobody asked for. Usually the model wasn't the problem. The input was, or the setting was, or you picked the wrong model for the shot.

This is a practical guide to Sync Labs lip sync on each::labs: which of the three Sync models to reach for, how to prepare the video and audio so they have a fair chance, what every real parameter does, and how to string it all into a dubbing workflow.

Sync Labs Lip Sync on each::labs: Three Models, Three Jobs

Sync, the team behind sync.so, has made lip sync its core product, and it shows. On each::labs you get three Sync models, and they aren't interchangeable versions of the same thing. They're tuned for different footage, and Sync's model docs spell out which is which.

Sync 3 is the one Sync calls its most powerful lipsync model. Earlier models worked through video in small, independent snippets. Sync 3 builds an understanding of the person across the whole shot and generates all the frames at once, from a wider window around the face. Sync's docs say it handles close-ups, profile shots, over-the-shoulder angles and obstructions like hands and microphones without any extra configuration.

Lipsync 2 Pro is Sync's highest-detail model of the lipsync-2 generation. It adds diffusion-based super resolution on top of lipsync-2, which Sync says brings out detail in beards, teeth and fine facial features. It also keeps the speaker's own speaking style, the trait Sync built lipsync-2 around.

Lipsync 1.9 beta is the legacy model. Sync describes it as fast and meant for simple videos, using standard generic lip movements rather than copying a speaker's style. It's also the only one of the three with output size, frame rate and format controls on each::labs.

The long version of what Sync 3 changed lives in Sync 3: Lipsync That Reads the Whole Scene.

The right tool is the one the job asked for, not the newest one in the drawer.
The right tool is the one the job asked for, not the newest one in the drawer.

Pick the Model by the Footage, Not the Hype

The instinct is to run the newest model every time. Look at the shot instead. The footage tells you which model to use.

Pick Sync 3 when the shot is hard. A tight close-up that crops the chin. A speaker turned three quarters away. A mic in front of the mouth, a hand drifting across the face. Those are the cases that broke earlier models, and Sync 3 reads the whole shot so it can tell what to generate and what to leave alone.

Pick Lipsync 2 Pro when the shot is clean but the face carries detail you can't afford to smear. A front-facing presenter with a full beard, or bright teeth in a big smile under studio light. Sync processes the face at 512 by 512 for the lipsync-2 models and then upscales that region with its super resolution pass, so frontal, well-lit footage is its comfort zone. The other thing Pro gives you on each::labs is a sync_mode setting, which matters a lot when your audio and video don't share a length.

Pick Lipsync 1.9 beta for simple, low-stakes jobs like a meme or a prototype. Sync itself recommends lipsync-2 or newer when accuracy matters.

One rule cuts across all three. Sync supports humanoid faces only. Animals and non-humanoid characters are out, whichever model you pick.

Whatever the lens saw, the model inherits.
Whatever the lens saw, the model inherits.

Prep the Video Before You Touch a Setting

Lip sync models edit a face that already exists, so whatever is wrong with the source comes straight through. Sync's guidance boils down to a handful of habits.

Keep the speaker talking. The lipsync-2 models want the person on screen to be visibly speaking, because they preserve that motion and restyle it to the new audio. A still, closed-mouth segment won't sync properly on Lipsync 2 Pro. If you're generating the source clip with an AI video model, Sync suggests adding a line like "the character should be speaking naturally" to the video prompt, so the generated footage has mouth movement to work with. Sync 3 is more forgiving here: its docs say it can open silent lips, though the movement comes out generic rather than in the speaker's style.

Light the face evenly. Harsh shadows, backlight that silhouettes the speaker and flickering light all show up as uneven skin tone in the synced region. Stabilize handheld footage first; jitter weakens face tracking.

Keep one face in frame, or the model can sync the wrong one.

Hit sensible specs. Sync recommends MP4 with H.264, 1920 by 1080, a constant 24, 25 or 30 fps, and at least 480p for reliable face detection. Anything above 4096 by 2160 gets rejected. Outputs are re-encoded to H.264 and HDR is normalized to SDR, so don't expect your original grade back untouched.

Cut long videos into scenes. Sync splits long jobs into 30 to 40 second chunks, and quality can dip at a chunk boundary if the face is turning, moving fast or out of frame right there. Fewer scene cuts and a visible face in most frames make for cleaner long-form results.

Clean the Audio Like It's the Whole Job

The audio drives every mouth shape. Feed the model mud and it lip syncs to mud.

Use one voice per track, with no music and no crowd under it. Background music, room noise and overlapping speakers all degrade the alignment, so run noise reduction first if the recording is rough. For a song, isolate the vocals and upload only that stem. WAV or MP3 at 44.1 or 48 kHz is the safe default; Sync downsamples anything above 48 kHz.

Match the lengths before you submit. It's the most useful habit in this guide. Sync's docs say the most predictable result comes when video and audio durations are close. On Sync 3 and Lipsync 1.9 beta, each::labs doesn't expose a sync mode at all, so trimming the two to the same length in your editor is how you decide what happens at the end of the clip.

One lever, five answers. Choose before the ship moves.
One lever, five answers. Choose before the ship moves.

The Real Settings, Model by Model

Here's what each request actually takes on each::labs, straight from the request schemas.

Sync 3 takes two required inputs and nothing else: video_url and audio_url. Sync dropped the old tuning knobs for this model because obstruction handling and expressiveness are built in, so the prep above is your settings.

{
  "video_url": "https://your-bucket.example/interview_take3.mp4",
  "audio_url": "https://your-bucket.example/interview_take3_es.wav"
}

Lipsync 2 Pro takes video_url and audio_url (both required) plus one option, sync_mode, which accepts cut_off, loop, bounce, silence or remap and defaults to cut_off. The next section covers how to choose.

{
  "video_url": "https://your-bucket.example/presenter_front.mp4",
  "audio_url": "https://your-bucket.example/presenter_de.wav",
  "sync_mode": "remap"
}

Lipsync 1.9 beta uses different field names, video and audio (both required), and adds a set of output controls. fps runs from 24 to 250 with a default of 24. output_format is mp4 or mov, default mp4. output_width and output_height both default to 700, so set them to your source size or you'll get a 700 by 700 file back. pads is a string of four comma-separated numbers, default "0,0,0,0", and adds space in the video. speedup runs from 1 to 4, default 1; I'd leave it at 1 unless you've tested a higher value on your own footage.

{
  "video": "https://your-bucket.example/meme_clip.mp4",
  "audio": "https://your-bucket.example/chorus_vocals.wav",
  "fps": 30,
  "output_format": "mp4",
  "output_width": 1080,
  "output_height": 1920
}

All three sit in the video-to-video category on each::labs behind the same API, so switching is a model change and a field rename.

Choose a sync_mode on Purpose

The sync_mode on Lipsync 2 Pro answers one question: what should happen when the audio and the video aren't the same length? The default, cut_off, is the right answer surprisingly often, but not always. Here's how each mode behaves, per Sync's sync mode guide.

cut_off keeps the shorter of the two. Longer audio gets clipped at the end of the video; a longer video gets trimmed to the audio. Use it when you want a clean, predictable output and losing a tail is fine.

bounce covers longer audio by playing the video forward, then backward, and repeating. It suits short clips where back-and-forth motion doesn't look odd.

loop restarts the video from the beginning until the audio ends. Only use it if the clip was shot or generated to loop cleanly, or the jump will show.

silence keeps the full video when the audio is shorter, padding the rest with silence. There's no speech in the padded part to drive new mouth movement, so use it when the visual clip matters more than ending on the last word.

remap speeds the video up or slows it down so it lands exactly on the audio length, keeping all of both. It's the natural fit for dubbing, where a translated line runs a little longer or shorter than the original. Keep the mismatch small, though. Sync warns that big speed changes look unnatural, and the same goes for big mismatches under bounce and loop.

One voice in, many voices out. The mouth has to follow every one.
One voice in, many voices out. The mouth has to follow every one.

A Dubbing Workflow That Holds Up

Localization is where Sync Labs lip sync earns its keep: one source video, many languages, and mouths that match every one of them. Sync says its lip sync works in any language, and its docs list 95+ languages for Sync 3. A workflow that holds up looks like this.

Start by pulling the original voice track with Audio Extractor. Its speech_ready_mono option returns mono audio prepared for speech processing, which is what you want for transcription. Transcribe and translate the script, then rewrite the translation for length: a German line that runs well past the English will force a heavy remap or a clipped ending, so it's worth an editor's pass to tighten it.

Next, voice the translated script. MiniMax Speech 2.8 HD on each::labs generates voiceovers from text and has an emotion setting, so you can match the tone of the original delivery. Export clean WAV, one speaker per file.

Then sync. Run hard shots through Sync 3, and clean frontal shots through Lipsync 2 Pro with sync_mode set to remap so the picture stretches to the new line.

Once the steps work by hand, wire them together as a flow in each::labs AI Flows, so a new language becomes one run instead of four manual handoffs. For the API side of a localization pipeline at scale, our guide to AI dubbing and lipsync API for video localization goes deeper.

Fixes for the Five Things That Go Wrong

The mouth drifts behind the voice. Check the length mismatch first. A big gap pushes remap, bounce and loop into territory where they look off, so trim the inputs closer together. If you're on Lipsync 2 Pro and still seeing drift, Sync's docs suggest trying cut_off. Then check the audio for music or noise under the voice.

The face looks smeared or blotchy. That's usually lighting or angle. Even out the light, and if the speaker is in profile or the mouth is partly covered, move the shot to Sync 3, which handles extreme angles and obstructions natively.

The wrong person's mouth moves. Two faces in frame. Crop or mask down to the speaker before you upload.

Nothing happens on a still stretch. On Lipsync 2 Pro, closed-mouth segments don't sync. Use footage where the person is actually talking, or regenerate the source with a "speaking naturally" prompt, or switch to Sync 3.

The 1.9 beta output is the wrong shape. You left output_width and output_height at 700. Set them to the source dimensions.

Still deciding whether Sync fits your footage at all? Our roundup of the best AI lip sync models in 2026 compares the field by shot type.

Frequently Asked Questions

Which Sync Labs lip sync model should I start with?

Start from the shot, not the model list. For close-ups, angled faces, microphones or hands near the mouth, go straight to Sync 3. For clean, front-facing footage where beards, teeth and skin detail have to hold up, use Lipsync 2 Pro and pick a sync_mode. Keep Lipsync 1.9 beta for quick, simple clips where speed matters more than accuracy.

Why doesn't Sync 3 have a sync_mode option on each::labs?

Its request on each::labs takes only a video URL and an audio URL. Sync also retired the older tuning options for this model because it handles obstructions and expressiveness on its own. To control how the clip ends, match the audio and video lengths in your editor before you submit.

Does Sync lip sync work for dubbing into other languages?

Yes, and that's one of its main jobs. Sync says its lip sync supports any language, and lists 95+ languages for Sync 3. Quality is decided upstream: clean single-voice audio and a translation edited to stay close to the original length.

Can I lip sync a song with these models?

You can, as long as you upload only the vocals. Music under the voice confuses the alignment, so separate the vocal stem first. Lipsync 1.9 beta is fine for a playful mimic; for a music video people will watch closely, use Sync 3 or Lipsync 2 Pro.

Start with what you need.

Scale when you’re ready.