HighSync LipSync
Make a face talk from plain IMAGE + AUDIO — no video model, no API key
- highsync_model
- images
- audio
- images
- audio
- frame_rate
- output_video_path
HighSync LipSync is the "just make it work" entry point of this pack. You hand it frames, you hand it an audio track, it hands you back a clip where the person's mouth actually moves in sync. No API, no key, no calling out to some hosted service - the whole HighSync pipeline runs in-process, which is the whole point of a wrapper like this.
Here's the context you actually need: the talking-head/avatar field splits into two camps. There are big video-diffusion routes (Wan, HunyuanVideo-Avatar, LTX-2 with native audio) that are flexible but chunky, and there are dedicated audio-driven lip-sync models that consume audio as a driving signal and only move the mouth. HighSync is the second kind, and it's cheap in a way that matters: the model is SD1.5-class diffusion running natively at 512×512, not a 14B video model. You can run this on a normal mid-range ComfyUI rig, and it doesn't need a video model sitting behind it.
How it works, in six stages the wrapper logs as it goes. Your IMAGE frames get resampled to 25fps and your AUDIO downmixed to mono 16kHz. Whisper tiny (the audio_processor from the model pack) turns the audio into conditioning features. Then comes the clever part: faces are tracked per frame - OpenCV Haar detection by default, or DeepFace if you happen to have it installed - and only the face region is regenerated at 512×512 by the diffusion pipeline, in ~12-frame windows that get padded when a clip runs short. Each generated face is blended back into its original frame with a feathered mask. Frames where no face is detected pass through untouched, so your background and hands stay put - a surprisingly common failure mode in sloppier lip-sync tools. Finally ffmpeg muxes the video with the original audio track and writes final.mp4 to ComfyUI/output/highsync/<task_id>/.
Inputs and outputs that matter
Four required inputs. Three of them are the actual content:
highsync_model- the bundle from HighSync Model Loader. This node refuses to run on anything else, so wire the loader in first.images-IMAGEframes, usually from VideoHelperSuite or any loader that can output a frame sequence.audio- native ComfyUIAUDIO, from a TTS node, a loaded track, whatever you have.input_fps(default 25) andmax_frames(default 0) - the frame rate you're feeding in, and a cap on how many frames to process.max_frames = 0means all of them, after the 25fps conversion.
Outputs: images (the new frames), audio, frame_rate (always 25 in this v1 implementation), and output_video_path - the string path to the muxed final.mp4. In practice you grab the path and the images; the video file is the deliverable.
Install
Clone into custom_nodes and put the requirements into the same Python env ComfyUI runs in:
cd ComfyUI/custom_nodes
git clone https://github.com/magicwang1111/ComfyUI-HighSync-Wrapper
cd ComfyUI-HighSync-Wrapper
pip install -r requirements.txt
Restart, and make sure ffmpeg is on your PATH - the wrapper shells out to it to mux the final file, and it errors out hard if it can't find it. (ComfyUI Manager also has this pack; search "ComfyUI-HighSync-Wrapper".) You'll also need the models downloaded first - run HighSync Download Models with download=True, or grab saeed-5959/high_sync from Hugging Face into models/highsync.
Setting expectations
Straight talk: this wrapper is brand new and obscure. When I checked, the pack had zero impressions and there's no community chatter to speak of - HighSync is a 2026 academic model (arXiv 2605.16918), and this wrapper is its first serious ComfyUI bridge. The polished community defaults for local talking heads are things like InfiniteTalk; think of this as the "I want the actual research model, and I'm okay filing the rough edges myself" path. Expect the first run to be slow (model load plus face tracking plus diffusion), expect to babysit it, and don't be surprised if you're one of the first few people on your corner of the internet running it.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| highsync_model | HIGHSYNC_MODEL | — | |
| images | IMAGE | — | |
| audio | AUDIO | — | |
| input_fps | INT | 251–120 | — |
| max_frames | INT | 00–100000 | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| audio | AUDIO | — |
| frame_rate | INT | — |
| output_video_path | STRING | — |