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

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

Relay_count turns N nodes into one

By wjluoxiao·Created 5 months ago·Updated 6 days ago· 302
XB-BOX - 🆕 Wan 无限接力点 (New)
  • wan_bus
  • start_image
  • prev_video
  • 📦 WAN_BUS (Pass to next)
  • 🖼️ Current End Image (Connect to next Start Image)
  • 🎞️ Accumulated Video Stream
positive_promptDescribe the specific action for this segment...
trim_head_frames1
relay_count1
total_frames_display

The original XB_Wan_InfiniteRelayNode does one segment per node, which means a 20-second clip is four copies of the same node in a row - cleaner than hand-chaining, but still repetitive. XB_Wan_InfiniteRelayNode_New ("XB-BOX - 🆕 Wan 无限接力点 (New)") is the quality-of-life update: it adds a relay_count dial so one node loops N segments internally. Set it to 3 and you get three chained relays out of a single node, each one re-seeding the next with its end image.

That's the whole pitch, and it's a good one. For a fixed-length scene you no longer add or delete nodes when the runtime changes - you just bump a number. The node's tooltip says it plainly: "本节点自动循环 N 次 = 串联 N 个接力点" (this node auto-loops N times = chaining N relay points).

What's new versus the original

The internals are the same trusted pipeline - encode prompt, build the segment latent via XB_WanImageToVideo, two-pass high/low noise sampling with the model_high/model_low split, decode, trim, progressive color correction, accumulate. The differences are the inputs it exposes directly on the node instead of burying in the bus:

  • trim_head_frames (default 1) - the overlap-dedupe count, now set per relay instead of inherited from the bus.
  • relay_count (default 1) - how many segments this node runs. The loop feeds each segment's last_frame back in as the next current_image, then accumulates everything into one stream.
  • total_frames_display - a read-only field the node fills in with its estimate of total frames ((length − trim) × relay_count), so you can sanity-check duration without doing arithmetic.

Everything else flows from the bus: resolution, length, sampler, cfg, seed, chunking, concat_mode. Outputs are unchanged - WAN_BUS to pass on, the final end image, and the accumulated video.

When it's the right tool

Use the New node when your scene is one continuous shot of a known length - a 16-second pan is relay_count: 2 at 81-frame segments, done. Use the original chain of separate relays when you want per-segment control: a different prompt per scene beat, a start_image change, or the ability to eyeball segment 2 before committing to segment 3. The loop version runs all N segments in one queue shot, so if segment 2 is bad you've already paid for 3.

Install & caveats

Same pack, same ritual: ComfyUI Manager → XB_ToolBox, or git clone https://github.com/wjluoxiao/XB_ToolBox.git into custom_nodes and restart. Declared pip deps: opencv-python, easyocr. No weights bundled.

One honest note: relay_count multiplies runtime directly - four relays is four full 81-frame generations, and on a 12GB card that's a half-hour-plus coffee break. And because every segment shares one positive_prompt here, this node is for motion continuity, not storytelling. If your segments need different action descriptions, that's the older node's job.

CategoryXB_ToolBox/Pipeline

Inputs (7)

NameTypeDefaultDescription
wan_busWAN_BUS
start_imageIMAGE
positive_promptSTRINGDescribe the specific action for this segment...
trim_head_framesINT11–8192接力重叠帧数(去重)
relay_countINT11–999接力数量设定:本节点自动循环 N 次 = 串联 N 个接力点
total_frames_displaySTRING总计生成帧数(自动计算)
prev_videooptIMAGE

Outputs (3)

NameTypeDescription
📦 WAN_BUS (Pass to next)WAN_BUS
🖼️ Current End Image (Connect to next Start Image)IMAGE
🎞️ Accumulated Video StreamIMAGE