Nodes/XB_ToolBox/XB-BOX - 🎵 InfiniteTalk 无限对口型总线
ComfyUI Node

XB-BOX - 🎵 InfiniteTalk 无限对口型总线

One bus for the whole talking-head pipeline

By wjluoxiao·Created 5 months ago·Updated 6 days ago· 302
XB-BOX - 🎵 InfiniteTalk 无限对口型总线
  • model
  • model_patch
  • clip
  • vae
  • audio_encoder
  • clip_vision
  • start_image
  • audio
  • 📦 WAN_INFINITETALK_BUS
negative_prompt色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走
width832
height480
total_frames0
fps25
vae_encode_tile_size256
vae_decode_tile_size192
spatial_overlap32
temporal_chunk_size96
temporal_overlap4
steps4
cfg1.0
sampler_name
scheduler
seed123456789
motion_frame_count9
audio_scale1.00
scale_methodlanczos
crop_modecenter
cleanup双次缓存清理
concat_mode自动

InfiniteTalk is the Wan-ecosystem trick for talking-head video that doesn't loop or freeze: an audio-conditioned model that drives a character's lips and motion from a voice track, segment by segment, so the clip can run as long as the audio does. XB_WanInfiniteTalk_ParamBus ("XB-BOX - 🎵 InfiniteTalk 无限对口型总线") is the pack's command center for that pipeline - the one place you set every shared parameter, load the models, and hand a single WAN_INFINITETALK_BUS to the relay nodes that actually generate each segment.

If you've used the pack's plain XB_Wan_ParamBus, this is its audio-aware sibling. Everything the Wan bus does for I2V relays, this does for InfiniteTalk relays - plus the model plumbing and the audio handling those relays need, which is why it takes more inputs.

How it works

On the model side it accepts the full stack: model and model_patch (the audio-conditioned checkpoint plus its patch - the source clones and patches a copy so an interrupted run can't poison the base model), clip, vae, audio_encoder, and clip_vision. Then the usual generation parameters: width/height (832×480 default), fps, negative_prompt, steps (default 4 - the distilled regime), cfg (1.0), sampler/scheduler/seed, plus the VAE chunking knobs (vae_encode_tile_size, vae_decode_tile_size, spatial_overlap, temporal_chunk_size, temporal_overlap) and a cleanup dropdown for post-run VRAM nuking.

Then the InfiniteTalk-specific pieces:

  • total_frames - per its tooltip, this is "bus audio mode": the total frame count from your audio-slicing node, which the relays consume until it's exhausted and then auto-stop. 0 means "independent audio mode," where each relay feeds its own audio.
  • audio (optional) - in bus audio mode you drop your long audio here and the bus encodes it once; relays then slice it automatically by frame offset. One encode for the whole track instead of re-encoding per segment.
  • motion_frame_count (default 9) and audio_scale (default 1.0) - the overlap for seamless transitions between segments, and how strongly the audio drives the motion.
  • start_image (optional) - the character's face; if you also wire clip_vision, the bus encodes it into clip-vision conditioning for identity retention.

The single output is the WAN_INFINITETALK_BUS, which you pass to any of the pack's InfiniteTalk relay nodes.

What to set

For a first run: models + clip_vision + start_image + negative_prompt, and pick your audio mode. Bus mode (long audio + total_frames from the slicer) is the one that makes "one video as long as the podcast" a real workflow. Independent mode is for per-segment audio, which is easier to iterate on. motion_frame_count of 9 is a sane overlap - lower it if transitions feel heavy, raise it if they feel jumpy.

Install

ComfyUI Manager → XB_ToolBox, or git clone https://github.com/wjluoxiao/XB_ToolBox.git into custom_nodes, restart. Declared deps: opencv-python, easyocr; no weights ship. You need the InfiniteTalk weights, the Wan audio encoder (the AUDIO_ENCODER this node takes is loaded by ComfyUI's audio-encoder node), a Wan VAE/CLIP/T5, and a CLIP Vision for identity. InfiniteTalk is a real, working open model - community threads report seamless 20-second takes with no visible transitions - but it's a niche corner of the ecosystem, so expect to debug the plumbing yourself.

CategoryXB_ToolBox/Pipeline

Inputs (29)

NameTypeDefaultDescription
modelMODEL
model_patchMODEL_PATCH
clipCLIP
vaeVAE
audio_encoderAUDIO_ENCODER
clip_visionCLIP_VISION
negative_promptSTRING色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走
widthINT832260–8192
heightINT48016–8192
total_framesINT00–999999总线音频模式:音频切片节点输出的总帧数,耗尽后自动停止接力。0=独立音频模式
fpsFLOAT251–120
vae_encode_tile_sizeINT2560–3840
vae_decode_tile_sizeINT1920–3840
spatial_overlapINT320–3840
temporal_chunk_sizeINT960–8192
temporal_overlapINT40–8192
stepsINT41–100
cfgFLOAT1.00–10
sampler_nameCOMBO41 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +35
schedulerCOMBO9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3
seedINT123456789
motion_frame_countINT91–33
audio_scaleFLOAT1.00-10–10
scale_methodCOMBOlanczos5 options: bilinear, bicubic, lanczos, nearest-exact, area
crop_modeCOMBOcenter2 options: center, disabled
cleanupCOMBO双次缓存清理4 options: 不做任何清理, 单次缓存清理, 双次缓存清理, 卸载显存模型
start_imageoptIMAGE
audiooptAUDIO总线音频模式:接入长音频,总线一次性编码,接力点自动分段
concat_modeoptCOMBO自动视频累积拼接位置

Outputs (1)

NameTypeDescription
📦 WAN_INFINITETALK_BUSWAN_INFINITETALK_BUS