ComfyUI Node

Bus In

Pack up to twenty-five wires into one line

By wenchengxiang·Created 2 months ago·Updated 9 days ago· 3
Bus In
  • 输入_1
  • 输入_2
  • 输入_3
  • 输入_4
  • 输入_5
  • 输入_6
  • 输入_7
  • 输入_8
  • 输入_9
  • 输入_10
  • 输入_11
  • 输入_12
  • 输入_13
  • 输入_14
  • 输入_15
  • 输入_16
  • 输入_17
  • 输入_18
  • 输入_19
  • 输入_20
  • 输入_21
  • 输入_22
  • 输入_23
  • 输入_24
  • 输入_25
  • 总线束

Bus In is the "bundle everything" end of a 25-channel bus: it takes up to twenty-five inputs - any types at all, 输入_1 through 输入_25 - and packs whichever ones are actually connected into a single WCX_BUS object that travels down one wire. Its twin, Bus Out, unpacks that bundle back into twenty-five outputs at the far end. In between, twenty-five wires become one.

This is the context-bundle pattern the node-plumbing doc calls the most important design in the utility layer. When a dozen values - model, clip, latent, conditioning, seeds, widths - all need to travel across a large workflow, dragging each as its own wire produces the spaghetti that everyone hates. A bus collapses them into one line. rgthree's Context is the famous version of this idea; Bus In/Bus Out is this pack's, with two differences that matter: it's strictly a pack and unpack - no merging or updating, you can't push a changed value back onto the line without unpacking and repacking - and it's any-typed, so it'll carry whatever custom types you throw at it.

The mechanics are worth knowing because they're unusually careful:

  • Only connected channels get packed. The source iterates the twenty-five slots, skips anything None, and stores the rest in a dict keyed by slot number. Empty slots cost nothing and don't corrupt the bundle.
  • It returns a copy, not a reference. The author explicitly guards against ComfyUI's caching/pollution issues by handing back bus_dict.copy() - a thoughtful touch that keeps multi-output graphs from cross-contaminating.
  • The labels are Chinese. Inputs are 输入_1…输入_25 ("input"), the single output is 总线束 ("bus bundle"). Cosmetic, but expect it on an English UI.

The critical caveat, and it's a real one: WCX_BUS is a type only this pack understands. Bus In is written to be unpacked by Bus Out, and vice versa - no other tool can read the bundle. That's lock-in by design: a workflow using the bus is married to this pack, which is the same lock-in cost the KB flags for every pack-specific context type (rgthree's Context doesn't interoperate with Efficiency's pipes, either). It's the right tool when one node pair cleanly replaces forty wires; it's the wrong tool if you might hand the workflow to someone who won't have the pack installed.

Install is pack standard: ComfyUI Manager → search ComfyUI-Practical-Tools → install → restart, or git clone https://github.com/wenchengxiang/ComfyUI-Practical-Tools into ComfyUI/custom_nodes. No dependencies, no models. If an output comes back None on the far side, check that the slot was connected at Bus In - an unconnected slot packs to nothing.

CategoryPractical-Tools/Passthrough

Inputs (25)

NameTypeDefaultDescription
输入_1opt*—
输入_2opt*—
输入_3opt*—
输入_4opt*—
输入_5opt*—
输入_6opt*—
输入_7opt*—
输入_8opt*—
输入_9opt*—
输入_10opt*—
输入_11opt*—
输入_12opt*—
输入_13opt*—
输入_14opt*—
输入_15opt*—
输入_16opt*—
输入_17opt*—
输入_18opt*—
输入_19opt*—
输入_20opt*—
输入_21opt*—
输入_22opt*—
输入_23opt*—
输入_24opt*—
输入_25opt*—

Outputs (1)

NameTypeDescription
总线束WCX_BUS—