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

> Complete documentation for the SyncLipSyncNode node in ComfyUI. Learn its inputs, outputs, parameters and usage.

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      | See below       |

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 (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: "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 1000000                                                              |
| `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                                                                 |

**Sync mode options:**

* `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)

**Speaker selection options:**

* `default`: Let the model decide which face to lipsync
* `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`

**Constraints:**

* Video resolution must not exceed 4K (4096x2160). Videos above this limit will raise an error.
* Audio duration 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`
