> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.

# SyncLipSyncNode - ComfyUI Built-in Node Documentation

> This node re-syncs mouth movement in a video to new speech audio using the sync.so API.

This node re-syncs mouth movement in a video to new speech audio using the sync.so API. It handles close-ups, profiles and obstructions automatically while preserving the speaker's expression. Cost scales with output duration.

## Inputs

| Parameter | Description | Data Type | Required | Range |
| - | - | - | - | - |
| `video` | Footage of the speaker to re-sync. Up to 4K (4096x2160); a constant frame rate of 24/25/30 fps works best. | VIDEO | Yes | - |
| `audio` | Speech audio to sync the mouth to. | AUDIO | Yes | - |
| `seed` | Seed controls whether the node should re-run; results are non-deterministic regardless of seed (default: 42). | INT | Yes | 0 to 2147483647 |
| `model` | sync.so generation model. | COMBO | Yes | "sync-3" |

The `model` parameter is a dynamic combo that includes the following sub-parameters:

| Sub-parameter | Description | Data Type | Required | Range |
| - | - | - | - | - |
| `sync_mode` | How to handle a duration mismatch between video and audio; this also sets the output length. bounce: video plays forward then backward until the audio ends (output = audio length). loop: video restarts until the audio ends (output = audio length). remap: video is time-stretched to match the audio (output = audio length). cut\_off: the longer track is trimmed (output = shorter length). silence: nothing is trimmed; the shorter track is padded (output = longer length). (default: "bounce") | COMBO | Yes | "bounce"<br />"cut\_off"<br />"loop"<br />"silence"<br />"remap" |
| `speaker_selection` | Which face to lipsync when several people are visible. default: let the model decide. auto-detect: detect and follow the active speaker. coordinates: target the face at pixel (speaker\_x, speaker\_y) in the frame chosen by speaker\_frame. (default: "default") | COMBO | Yes | "default"<br />"auto-detect"<br />"coordinates" |
| `speaker_frame` | Video frame used to locate the speaker. Only used when `speaker_selection` is 'coordinates'. (default: 0) | INT | No | 0 to 1,000,000 |
| `speaker_x` | X pixel coordinate of the speaker's face. Only used when `speaker_selection` is 'coordinates'. (default: 0) | INT | No | 0 to 4096 |
| `speaker_y` | Y pixel coordinate of the speaker's face. Only used when `speaker_selection` is 'coordinates'. (default: 0) | INT | No | 0 to 4096 |

**Constraints:**

* Video resolution must not exceed 4K (4096x2160). Videos above this limit will raise an error.
* Video and audio durations must not exceed 600 seconds (10 minutes).
* The `speaker_frame`, `speaker_x`, and `speaker_y` parameters are only used when `speaker_selection` is set to "coordinates".

## Outputs

| Output Name | Description | Data Type |
| - | - | - |
| `video` | The re-synced video with mouth movement matched to the provided audio. | VIDEO |

> This documentation was AI-generated. If you find any errors or have suggestions for improvement, please feel free to contribute! [Edit on GitHub](https://github.com/Comfy-Org/embedded-docs/blob/main/comfyui_embedded_docs/docs/SyncLipSyncNode/en.md)

***

**Source fingerprint (SHA-256):** `b41f8c9bf0d55059f081a66af20636ec96462c3fd9caeb685cab10278f84678a`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.