Nodes/Replicate Select/HeyGen Lipsync Precision (Replicate)
ComfyUI Node

HeyGen Lipsync Precision (Replicate)

HeyGen Lipsync Precision — swap a voice in existing footage, cleanly

By Pharma-Lobby·Created 2 months ago·Updated 2 months ago· 0
HeyGen Lipsync Precision (Replicate)
  • audio
  • video_path
video
enable_dynamic_durationtrue
disable_music_trackfalse
enable_speech_enhancementfalse

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.
CategoryReplicate Select/lipsync

Inputs (5)

NameTypeDefaultDescription
videoSTRINGSource video file to lip-sync.
audioAUDIOReplacement audio file. The video's lip movements will be re-animated to match this audio using high-accuracy avatar inference.
enable_dynamic_durationoptBOOLEANtrueAllow the output duration to adjust to match the new audio length.
disable_music_trackoptBOOLEANfalseStrip background music from the source video.
enable_speech_enhancementoptBOOLEANfalseEnhance speech quality in the output.

Outputs (1)

NameTypeDescription
video_pathSTRING