HeyGen Lipsync Precision (Replicate)
HeyGen Lipsync Precision — swap a voice in existing footage, cleanly
- audio
- video_path
HeyGen is one of the big commercial avatar-and-lipsync companies, and this node brings its precision tier to your ComfyUI graph: you give it existing footage of a person talking plus a new audio track, and it re-animates the lips to match using high-accuracy avatar inference. It's a video-in, video-out swap - the same shape as Replicate_sync_lipsync_2_pro, but with a cleaner, more opinionated set of controls and fewer knobs to fight.
Where this one earns its "Precision" branding is the handling of real-world source footage: it can adjust the output duration to the new audio's length, strip background music out of the source video, and optionally enhance the speech in the result. If your use case is "the actor's original audio is unusable but the footage is good," those three switches are exactly the pipeline.
How it works
Standard engine around heygen/lipsync-precision. The mechanism detail from the pack source, same as the other video-input lipsync: the source video is a STRING field expecting a URL - Replicate's workers need a fetchable file, so you can't just drop a local video on the canvas. Your audio, by contrast, is a native AUDIO input uploaded as WAV. The output comes back as an MP4 saved to output/video/ with video_path returned as a STRING.
The inputs that matter
- video (required) - the source video, as a URL string. Host it somewhere reachable first.
- audio (required) - the replacement audio. The source video's lip movements get re-animated to match it.
- enable_dynamic_duration - default true: let the output duration adjust to match the new audio's length. Turn it off if you need the output to keep the source clip's exact duration, even at the cost of sync.
- disable_music_track - default false. Set it true to strip background music from the source video - important when you're replacing dialogue and the original BGM would collide with the new voice.
- enable_speech_enhancement - default false. Enhances speech quality in the output; a finishing pass for noisy source audio.
Output: video_path, a STRING.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/Pharma-Lobby/ComfyUI-Replicate-Select
Or ComfyUI Manager → Install Custom Nodes → "Replicate Select", restart. Dependency: replicate>=1.0.7. Auth via environment variable:
export REPLICATE_API_TOKEN=r8_...
Where people get burned
- The URL-vs-file split again. Video as URL, audio as AUDIO. This is the #1 first-run failure for every video-input lipsync node in this pack.
- Dynamic duration off means sacrifices. With it disabled, the model has to fit the new voice into the old clip's length - either pacing gets weird or sync suffers. Leave it on unless you have a hard duration requirement.
- Background music bleeds through. If the source has music under the dialogue and you don't flip
disable_music_track, you get a muddy mix with two audio layers competing. Flip it before you render, not after. - It's commercial-grade and metered. This is a paid cloud call per render. Do your sync-mode and source-audio checks with a short clip before spending a full-length render.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| video | STRING | Source video file to lip-sync. | |
| audio | AUDIO | Replacement audio file. The video's lip movements will be re-animated to match this audio using high-accuracy avatar inference. | |
| enable_dynamic_durationopt | BOOLEAN | true | Allow the output duration to adjust to match the new audio length. |
| disable_music_trackopt | BOOLEAN | false | Strip background music from the source video. |
| enable_speech_enhancementopt | BOOLEAN | false | Enhance speech quality in the output. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video_path | STRING | — |