Nodes/XB_ToolBox/XB-BOX - 🏃‍♀️ Animate 无限接力点
ComfyUI Node

XB-BOX - 🏃‍♀️ Animate 无限接力点

Chaining motion transfer past the 81-frame wall — the Animate relay node

By wjluoxiao·Created 5 months ago·Updated 6 days ago· 302
XB-BOX - 🏃‍♀️ Animate 无限接力点
  • wan_animate_bus
  • prev_video
  • 📦 WAN_ANIMATE_BUS (传给下段)
  • 🎞️ 累加视频流
segment_length81
positive_promptDescribe the scene...
use_local_ref_image继承总线全局图
ref_image_file

Wan Animate's native context is roughly 81 frames. Your driving video is almost certainly longer. XB_WanAnimate_RelayNode is the pack's answer to that gap: you chain relay nodes, each one generating one segment of the motion transfer, feeding the previous segment's tail into the next as continue_motion, and stitching everything into a single accumulated video stream. Chain a few and you've got an arbitrarily long animated take. The display name - "Animate 无限接力点" (infinite relay point) - is aspirational about the length and accurate about the mechanism.

How a relay works

Every relay reads the shared config off the incoming wan_animate_bus, figures out where it is in the source video (the bus carries a current_offset), picks a segment length, and calls the pack's XB_WanAnimateToVideo engine to build conditioning. Then it samples with the bus's KSampler settings, trims the overlap frames (both in latent and pixel space), and appends the result to the accumulated stream. If the driving video is exhausted, the relay prints a message and passes through the previous video untouched - which is how a chain with too many relays doesn't crash, it just stops growing.

Two inputs decide most of the behavior:

  • segment_length (default 81) - frames per relay. The 1+8N-safe default is right; drop it to 49 if you're VRAM-constrained.
  • use_local_ref_image - "继承总线全局图" (inherit the bus's global reference) or "独立参考图" (a separate per-segment reference from ref_image_file). Independent reference disables motion-continuity overlap, because re-encoding a different face would fight the CLIP features.

Plus positive_prompt (the per-segment scene description) and optional prev_video to seed the very first segment from outside.

Outputs: 📦 WAN_ANIMATE_BUS (传给下段) - the bus, offset advanced - and 🎞️ 累加视频流 (the accumulated IMAGE stream). Wire the bus into the next relay, and the video into a VideoCombine at the end.

The honest takes

This is where long-form Animate actually lives, and it mostly works - but it's a pipeline node, so it can fail in ways that aren't obvious. The most common beginner confusion is the positive/negative split: the positive_prompt lives on each relay, while the negative prompt lives on the bus. Change the negative on one relay and nothing happens - it's read from the bus. The other thing to expect is identity drift: continuity frames reduce the jump between segments but don't eliminate it, and the pack's own node type carries the same limitation every chunked Wan pipeline has. Finally, note this is the original relay; the pack also ships XB_WanAnimate_RelayNode_New with a relay_count that auto-chains segments inside one node - if you're building a new workflow, that one is usually the better starting point.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/WJLUOXIAO/XB_ToolBox.git

then restart, or install via ComfyUI Manager ("XB_ToolBox"). Needs the Animate model stack wired through the bus, plus a clip_vision model if you use an independent reference.

CategoryXB_ToolBox/Pipeline

Inputs (6)

NameTypeDefaultDescription
wan_animate_busWAN_ANIMATE_BUS
segment_lengthINT811–8192
positive_promptSTRINGDescribe the scene...
use_local_ref_imageCOMBO继承总线全局图2 options: 继承总线全局图, 独立参考图
ref_image_fileCOMBO2 options: example.png, vrgdg_placeholder_i2i.png
prev_videooptIMAGE

Outputs (2)

NameTypeDescription
📦 WAN_ANIMATE_BUS (传给下段)WAN_ANIMATE_BUS
🎞️ 累加视频流IMAGE