XB-BOX - 🆕 Animate 无限接力点 (New)
The better relay — one node that loops as many Animate segments as you need
- wan_animate_bus
- prev_video
- 📦 WAN_ANIMATE_BUS (传给下段)
- 🎞️ 累加视频流
The original XB_WanAnimate_RelayNode chains one segment per node - which means a 20-second take is five nodes in a row, each holding its own prompt, and editing the chain length means adding or deleting nodes. XB_WanAnimate_RelayNode_New fixes the ergonomics: it adds a relay_count input, and one node loops through that many segments internally, feeding each segment's tail into the next. Want 5 segments of 81 frames? One node, relay_count = 5. The display name calls it the "🆕" version, and that's honestly what it is - the same relay machinery, looped.
The loop logic is the interesting part to understand, because it's where the "infinite" promise gets its safety rails. Each iteration checks the bus's current_offset against the source video's total frame count: if the driving video is exhausted, it breaks out and skips the rest of the relays. So relay_count = 999 on a 400-frame video just generates until the source runs out - it doesn't invent motion or crash. There's also a continue_motion_max_frames (default 5) that sets the overlap frames used for the transition between loops, and it's now per-relay rather than inherited from the bus, so you can tune it per relay point.
What you set
- wan_animate_bus - the packed config from
XB_WanAnimate_ParamBus. - segment_length (default 81) - frames per loop iteration; keep it at a 1+8N safe value.
- positive_prompt - one scene description for the whole run. If you need different prompts per segment, this is the wrong node - that's what chaining the original relay nodes is for.
- use_local_ref_image / ref_image_file - inherit the bus's global reference or use a per-run independent image.
- relay_count (default 1) - how many segments to generate. This is the whole point of the node.
- total_frames_display - a read-only widget showing the computed total (segment_length × relay_count minus overlaps).
Outputs: 📦 WAN_ANIMATE_BUS (传给下段) with the advanced offset, and 🎞️ 累加视频流 - the fully accumulated IMAGE stream, ready for a VideoCombine.
The honest takes
This is the relay I'd actually start from in 2026 - the loop is tidy, the exhaustion check means you can't accidentally overshoot your driving video, and the read-only total-frame display is a nice touch. The trade-off: because it's a loop, every segment shares the same positive prompt, so it's for "same scene, long take" work, not for storyboard-style per-segment rewrites. And the usual caveat applies - identity drift across chunk boundaries is reduced by the overlap but never fully gone, and the more segments you chain, the more it accumulates. If a take drifts, that's the model's 81-frame reality, not a bug in the loop.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/WJLUOXIAO/XB_ToolBox.git
then restart, or install via ComfyUI Manager ("XB_ToolBox"). Same stack as the original relay: Wan 2.2 Animate model, clip_vision for the reference, and a bus feeding it.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| wan_animate_bus | WAN_ANIMATE_BUS | — | |
| segment_length | INT | 811–8192 | — |
| positive_prompt | STRING | Describe the scene... | — |
| use_local_ref_image | COMBO | 继承总线全局图 | 2 options: 继承总线全局图, 独立参考图 |
| ref_image_file | COMBO | 2 options: example.png, vrgdg_placeholder_i2i.png | |
| continue_motion_max_frames | INT | 50–16 | 接力重叠帧数(衔接过渡) |
| relay_count | INT | 11–999 | 接力数量设定 |
| total_frames_display | STRING | 总计生成帧数(自动计算) | |
| prev_videoopt | IMAGE | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| 📦 WAN_ANIMATE_BUS (传给下段) | WAN_ANIMATE_BUS | — |
| 🎞️ 累加视频流 | IMAGE | — |