Sync Mode

sync_mode controls what happens when your video and audio inputs are different lengths. It applies to video + audio generations. For image inputs, sync_mode is ignored because images have no intrinsic duration.

Use sync_mode in the options object when creating a generation:

1{
2 "input": [
3 { "type": "video", "url": "https://example.com/video.mp4" },
4 { "type": "audio", "url": "https://example.com/audio.wav" }
5 ],
6 "model": "lipsync-2",
7 "options": {
8 "sync_mode": "cut_off"
9 }
10}

Quick recommendation

GoalRecommended modeWhy
Keep the output short and avoid fillercut_offUses the shorter input duration.
Make a short video cover longer audio naturallybouncePlays forward, then in reverse, repeating until audio ends.
Repeat a short video over longer audioloopRestarts the video until audio ends.
Preserve the full video when audio is shortersilencePads the remaining video with silence.
Preserve all video and all audio contentremapTime-stretches video to match audio duration.

For the most predictable result, make your video and audio durations close before submitting. Large duration mismatches can make bounce, loop, or remap visually obvious.

Behavior matrix

This matrix shows the effective behavior when the durations do not match.

ModeAudio longer than videoVideo longer than audioEffective output duration
bounceVideo plays forward, then backward, repeating until the audio ends.Video is trimmed to the audio length.Audio length
loopVideo restarts and loops until the audio ends.Video is trimmed to the audio length.Audio length
cut_offAudio is clipped to the video length.Video is trimmed to the audio length.Shorter input length
silenceOutput keeps the audio length.Audio is padded with silence through the full video.Longer input length
remapVideo is slowed down to match the audio length.Video is sped up to match the audio length.Audio length

Example output durations

For a 4.00s video with 8.64s audio:

ModeOutput durationWhat happens
bounce8.64sVideo bounces to cover the full audio.
loop8.64sVideo loops to cover the full audio.
cut_off4.00sAudio is clipped at the end of the video.
silence8.64sOutput keeps the full audio length.
remap8.64sVideo is slowed down to match the audio.

For a 10.00s video with 1.74s audio:

ModeOutput durationWhat happens
bounce1.74sVideo is trimmed to the audio length.
loop1.74sVideo is trimmed to the audio length.
cut_off1.74sVideo is trimmed to the audio length.
silence10.00sAudio is padded with silence over the full video.
remap1.74sVideo is sped up to match the audio.

Mode details

cut_off uses the shorter input length. If audio is longer than video, the extra audio is removed. If video is longer than audio, the video is trimmed.

Choose this when you want a simple, predictable output and do not need to preserve every second of both inputs.

bounce is useful when the video is shorter than the audio. The video plays forward, then reverses direction, and repeats until the audio ends.

Choose this for short looping clips where a forward/backward motion looks acceptable.

loop restarts the video from the beginning until the audio ends.

Choose this when your source video is designed to loop cleanly.

silence preserves the full video when the audio is shorter by padding the remaining duration with silence. During the silent portion, there is no spoken audio to drive new lip movement.

Choose this when the full visual clip matters more than ending exactly when speech ends.

remap changes video playback speed so the video duration matches the audio duration.

Choose this when you need to preserve all video and audio content, but avoid extreme mismatches. Large speed changes can look unnatural.

Studio defaults

When Studio detects a duration mismatch, it only shows modes that are valid for that direction:

MismatchStudio modesDefault
Audio longer than videoloop, bounce, remap, cut_offbounce
Video longer than audiosilence, remap, cut_offcut_off

Segments

Segment-level sync_mode works the same way, but the mismatch is evaluated per segment. If a segment window and its audio are different lengths, the mode determines whether that segment is trimmed, padded, looped, bounced, or time-remapped.

See the Segments guide for segment request examples.