Nodes/comfyui-infinitetalk-native-sampler/InfiniteTalk Auto Sampler
ComfyUI Node

InfiniteTalk Auto Sampler

A photo, an audio file, and a face that keeps talking until the audio ends

By vjumpkung·Created 7 months ago·Updated 3 months ago· 2
InfiniteTalk Auto Sampler
  • model
  • model_patch
  • positive
  • negative
  • vae
  • audio_encoder_output_1
  • audio
  • start_image
  • clip_vision_output
  • audio_encoder_output_2
  • mask_1
  • mask_2
  • images
  • audio
width832
height480
length81
motion_frame_count9
audio_scale1.00
seed0
steps4
cfg1.0
sampler_name
scheduler
denoise1.00
framerate25

You give this node a Wan 2.1 model, the InfiniteTalk model patch, a wav2vec2-encoded audio track, and optionally a photo of a person - and it hands back a video where that person talks in sync with the audio, for as long as the audio lasts. Not a fixed 5-second clip. Minutes, if that's what you feed it. The "auto" in the name is doing real work: it splits the generation into chained passes, re-conditions each one on the tail of the previous, and stitches them into one continuous take so you never have to think about extending to your audio length yourself.

What it actually is

This is the ComfyUI-native sampler for InfiniteTalk, the audio-driven talking-head model from MeiGen-AI (the Multitalk team) that landed in August 2025 on top of Wan 2.1. InfiniteTalk's launch was chaotic - the repo went live and got pulled within ~30 minutes - and most people first met it through Kijai's WanVideoWrapper. This pack is the standalone route: no Kijai wrapper, it talks straight to the comfy.ldm.wan.model_multitalk module that ships inside recent ComfyUI. The pitch over plain Wan is real: it does lip-sync plus head, body, and expression movement driven by the track. This is dubbing, not "put a voiceover over any clip."

How it works

Chunked auto-extension. The node works out how many frames your audio needs (audio duration × framerate), then runs a base pass that generates length frames from your start image (or zeros), and then extend passes: each one VAE-encodes the last motion_frame_count frames as motion conditioning and generates the next chunk on top. It accumulates pixel frames rather than latents, which is what Wan's causal VAE needs to stay consistent. Pass count is 1 + ceil((total_frames - length) / (length - motion_frame_count)) - bigger length means fewer passes but more VRAM; bigger motion_frame_count means smoother chunk transitions.

The inputs that matter

  • length (default 81, step 4) - frames generated per pass. This is your VRAM knob; if you OOM, drop it.
  • motion_frame_count (default 9) - how many previous frames carry into the next pass. More = more consistent, fewer passes total.
  • framerate (default 25) - output fps. It also drives audio resampling, so changing it affects sync.
  • audio_scale (default 1.0) - audio conditioning strength, basically the lip-sync intensity dial. The InfiniteTalk team's own guidance leans higher (audio CFG 3–5) when you want crisp sync.
  • width/height (default 832×480) - Wan 2.1 I2V's 480p comfort zone; 720p works if your GPU can breathe.

Beyond that it's a standard sampler: seed, steps (default 4 - Wan is a low-step model), cfg (default 1.0), sampler_name, scheduler, denoise. Required wires are model (Wan 2.1), model_patch (the InfiniteTalk weights, via a ModelPatchLoader node), positive/negative, vae, audio_encoder_output_1, and audio. Optional: start_image, clip_vision_output, and the multi-speaker trio audio_encoder_output_2 + mask_1 + mask_2. Outputs are images (the video frames) and audio (passed through untouched) - feed them to a SaveVideo node.

Multi-speaker gotcha: the masks route each voice to a face, but the classic failure is both characters lip-syncing to both tracks. Community fix: don't feed short clips per speaker - give each one a full-length audio file with silence where they aren't talking.

Installing

ComfyUI Manager, search infinitetalk-native-sampler - or:

cd ComfyUI/custom_nodes
git clone https://github.com/vjumpkung/comfyui-infinitetalk-native-sampler

Restart ComfyUI. There's no requirements.txt - the pack is pure Python on ComfyUI's own modules, so it needs a recent ComfyUI (the v3 extension format plus comfy.ldm.wan.model_multitalk). It downloads no models: you supply the Wan 2.1 base, the InfiniteTalk patch (the sample workflow uses wan2.1_infiniteTalk_single_fp16.safetensors), and a wav2vec2-base encoder.

Troubleshooting

  • "Audio encoder output dimensions do not match" - the encoder must be wav2vec2-base class (12 blocks / 768 channels) to match the patch's audio_proj.
  • "length must be greater than motion_frame_count" - the default 81 > 9 exists for a reason; don't set them at odds.
  • "Both mask_1 and mask_2 are required" - the multi-speaker inputs are all-or-nothing by design.
  • The c10::Half dtype error - "Input type (float) and bias type (c10::Half) should be the same" is the known ComfyUI + wav2vec2-in-fp16 crash. The README says the pack auto-patches it, but the shipped repo doesn't contain that patch file. Don't count on it - load the audio encoder in fp32 and you dodge the whole class of error.

One honest caveat: this is a tiny, young pack from a solo author, built around one specific model. Treat it as "the sampler for this model," not a general-purpose video tool.

Categoryvideo/infinitetalk

Inputs (24)

NameTypeDefaultDescription
modelMODEL
model_patchMODEL_PATCH
positiveCONDITIONING
negativeCONDITIONING
vaeVAE
audio_encoder_output_1AUDIO_ENCODER_OUTPUT
audioAUDIO
widthINT83216–4096
heightINT48016–4096
lengthINT811–4096
motion_frame_countINT91–33
audio_scaleFLOAT1.00-10–10
seedINT00–18446744073709550000
stepsINT41–10000
cfgFLOAT1.00–100
sampler_nameCOMBO44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
schedulerCOMBO9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3
denoiseFLOAT1.000–1
framerateINT251–120
start_imageoptIMAGE
clip_vision_outputoptCLIP_VISION_OUTPUT
audio_encoder_output_2optAUDIO_ENCODER_OUTPUT
mask_1optMASK
mask_2optMASK

Outputs (2)

NameTypeDescription
imagesIMAGE
audioAUDIO