XB-BOX - 🆕 InfiniteTalk 无限接力点 (New)
Relay_count for talk-till-the-audio-ends
- wan_infinitetalk_bus
- prev_video
- prev_audio
- audio
- 📦 WAN_INFINITETALK_BUS (传给下段)
- 🎞️ 累加视频流
- 🔊 累加音频流
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.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| wan_infinitetalk_bus | WAN_INFINITETALK_BUS | — | |
| positive_prompt | STRING | — | |
| segment_length | INT | 811–8192 | — |
| motion_frame_count | INT | 91–33 | 接力重叠帧数(运动过渡) |
| relay_count | INT | 11–999 | 接力数量设定 |
| total_frames_display | STRING | 总计生成帧数(自动计算) | |
| prev_videoopt | IMAGE | — | |
| prev_audioopt | AUDIO | — | |
| audioopt | AUDIO | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| 📦 WAN_INFINITETALK_BUS (传给下段) | WAN_INFINITETALK_BUS | — |
| 🎞️ 累加视频流 | IMAGE | — |
| 🔊 累加音频流 | AUDIO | — |