Nodes/XB_ToolBox/XB-BOX - ๐Ÿ†• InfiniteTalk ๆ— ้™ๆŽฅๅŠ›็‚น (New)
ComfyUI Node

XB-BOX - ๐Ÿ†• InfiniteTalk ๆ— ้™ๆŽฅๅŠ›็‚น (New)

Relay_count for talk-till-the-audio-ends

By wjluoxiaoยทCreated 7 months agoยทUpdated a day agoยท 406
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โ€”