Nodes/XB_ToolBox/XB-BOX - 🆕 InfiniteTalk 无限接力点 (New)
ComfyUI Node

XB-BOX - 🆕 InfiniteTalk 无限接力点 (New)

Relay_count for talk-till-the-audio-ends

By wjluoxiao·Created 5 months ago·Updated 6 days ago· 302
XB-BOX - 🆕 InfiniteTalk 无限接力点 (New)
  • wan_infinitetalk_bus
  • prev_video
  • prev_audio
  • audio
  • 📦 WAN_INFINITETALK_BUS (传给下段)
  • 🎞️ 累加视频流
  • 🔊 累加音频流
positive_prompt
segment_length81
motion_frame_count9
relay_count1
total_frames_display

The plain InfiniteTalk relay does one segment per node, which makes a five-minute monologue a wall of identical nodes. XB_WanInfiniteTalk_RelayNode_New ("XB-BOX - 🆕 InfiniteTalk 无限接力点 (New)") is the pack's loop-in-one-node update: it adds relay_count so a single relay internally runs N segments, each feeding the accumulated video and audio into the next. Set it to 10 and one node will chew through ten 81-frame chunks, stopping when the bus's audio budget runs out.

Same family logic as the Wan relay _New variant, but for the audio pipeline: it carries prev_video and prev_audio forward, and in bus-audio mode it respects the bus's total_frames, so you can point it at a long track and let it run until the voice stops.

What's exposed on the node

  • segment_length (81) - frames per chunk.
  • motion_frame_count (9) - the transition overlap; its tooltip notes audio and video cropping auto-align to it, so the audio stays in sync when you trim the duplicated frames.
  • relay_count (1) - how many segments this node runs internally.
  • total_frames_display - a read-only total-frames estimate, so you can see the duration you've set up before queueing.

Everything else - models, audio encoder, chunking, sampler, the pre-encoded bus audio - comes from the WAN_INFINITETALK_BUS it receives from XB_WanInfiniteTalk_ParamBus. Outputs: the bus to pass on, 🎞️ 累加视频流, and 🔊 累加音频流.

When it's right

The _New relay is for the "one continuous monologue/conversation, known length" case - a podcast clip, a speech, a character reading aloud. Because the loop shares one positive_prompt across all segments, it's not for scene changes. For per-segment direction (different action or setting per beat), the original relay chain gives you a node per segment with its own prompt field.

One behavior worth knowing: when the bus's frame budget runs out mid-loop, the relay doesn't error - it logs "frame budget exhausted, skipping" and passes through the accumulated buffers. That's how a chain of _New relays can cover an arbitrarily long track without you pre-counting segments.

Install & caveats

Pack standard: ComfyUI Manager → XB_ToolBox, or git clone https://github.com/wjluoxiao/XB_ToolBox.git into custom_nodes, restart. Deps opencv-python + easyocr, no weights bundled. And the honest math: each segment is a full 14B-class generation. Ten segments is a long wait on anything short of a 24GB card - InfiniteTalk's real cost, and the reason people recommend it for talking heads (where the payoff is worth it) rather than general video.

CategoryXB_ToolBox/Pipeline

Inputs (9)

NameTypeDefaultDescription
wan_infinitetalk_busWAN_INFINITETALK_BUS
positive_promptSTRING
segment_lengthINT811–8192
motion_frame_countINT91–33接力重叠帧数(运动过渡)
relay_countINT11–999接力数量设定
total_frames_displaySTRING总计生成帧数(自动计算)
prev_videooptIMAGE
prev_audiooptAUDIO
audiooptAUDIO

Outputs (3)

NameTypeDescription
📦 WAN_INFINITETALK_BUS (传给下段)WAN_INFINITETALK_BUS
🎞️ 累加视频流IMAGE
🔊 累加音频流AUDIO