Nodes/🐰 MaraScott Nodes/🐰 AnyBus - UniversalBus - v2 /*
ComfyUI Node

🐰 AnyBus - UniversalBus - v2 /*

A bus that actually cleans up your workflow β€” and plays nice with rgthree and KJNodes

By MaraScottΒ·Created 3 years agoΒ·Updated 10 months agoΒ· 179
🐰 AnyBus - UniversalBus - v2 /*
  • bus
  • * 01
  • * 02
  • * 03
  • * 04
  • * 05
  • * 06
  • * 07
  • * 08
  • * 09
  • * 10
  • * 11
  • * 12
  • * 13
  • * 14
  • * 15
  • * 16
  • * 17
  • * 18
  • * 19
  • * 20
  • * 21
  • * 22
  • * 23
  • * 24
  • bus
  • * 01
  • * 02
  • * 03
  • * 04
  • * 05
  • * 06
  • * 07
  • * 08
  • * 09
  • * 10
  • * 11
  • * 12
  • * 13
  • * 14
  • * 15
  • * 16
  • * 17
  • * 18
  • * 19
  • * 20
  • * 21
  • * 22
  • * 23
  • * 24

By the time you're managing a workflow with more than a dozen wires, the graph stops being a diagram and starts being a bowl of spaghetti. The usual answers are reroute nodes that hide the wires, but hiding them doesn't tell you which output feeds which input. AnyBus is the alternative: a single node with up to 25 generic in/out slots that bundles a bundle of values into one BUS wire, so one line on screen does the work of twenty. It's the node the MaraScott pack is best known for, and the author calls it the "UniversalBus" for a reason - it's descended from the old WAS Bus node idea, modernized.

You drop an AnyBus at the "send" end of a section, set its slot names, then drop another AnyBus downstream and connect the bus outputs to bus inputs. Every value you put in comes out the other side under its own name.

How it works

Each AnyBus has a bus input and bus output of the special BUS type, plus 24 named * 01…* 24 any-type slots on both sides. The magic is in the profiles: a set of AnyBus nodes connected in the same flow share a profile name, and they synchronize their slot labels automatically. Name a slot "model" on the sending bus and the receiving bus picks the same label up - that's the "dyslexia-friendly" readability the author brags about. The profile system also lets you run several independent bus flows in one workflow without them colliding: connect a main-profiled bus into a default bus and it adopts the profile; try to splice two differently-named flows and the connection is refused rather than silently merging.

The slots are plain pass-throughs - you feed a value into slot 5 and it emerges from slot 5 on the paired bus. You can mix a bus input with individual slot inputs; the individual wire takes precedence.

What matters when you use it

  • Slot names - set them once on one bus and profiles propagate them. This is the feature, not the slots.
  • The bus wire is what carries the whole bundle, and it chains: AnyBus β†’ AnyBus.
  • Reroute support is narrower than you'd hope. The README is explicit: KJNodes' SetNode/GetNode work, and rgthree's Reroute works, but native ComfyUI Reroute doesn't (it won't accept an any-type origin), pysssss's reroute shows no slot name, and the 0246 cast reroute is officially "undefined behavior." So use the supported reroutes, or just let buses talk to buses.

Installing it

ComfyUI Manager β†’ search "MaraScott" β†’ Install β†’ restart ComfyUI. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/MaraScott/ComfyUI_MaraScott_Nodes

Then restart. The pack's requirements.txt pins transformers==4.37.2 and pulls in opencv-python, numba and friends even though a bus needs none of them - it's a big install for a wire-organizer, but you're getting the whole pack.

Common issues

If a slot shows up empty on the receiving bus, check you're not mixing a profile-named flow into a default one - the sync only happens between same-name connected buses. And if you were hoping this replaced "Use Everywhere", it's a different philosophy: AnyBus is explicit wiring, not implicit broadcast, which is exactly why profiles exist. For very large graphs people still pair it with rgthree's context/reroute pack; the two coexist fine as long as you stick to the supported reroutes.

Category🐰 MaraScott/Utils

Inputs (25)

NameTypeDefaultDescription
busoptBUSβ€”
* 01opt*β€”
* 02opt*β€”
* 03opt*β€”
* 04opt*β€”
* 05opt*β€”
* 06opt*β€”
* 07opt*β€”
* 08opt*β€”
* 09opt*β€”
* 10opt*β€”
* 11opt*β€”
* 12opt*β€”
* 13opt*β€”
* 14opt*β€”
* 15opt*β€”
* 16opt*β€”
* 17opt*β€”
* 18opt*β€”
* 19opt*β€”
* 20opt*β€”
* 21opt*β€”
* 22opt*β€”
* 23opt*β€”
* 24opt*β€”

Outputs (25)

NameTypeDescription
busBUSβ€”
* 01*β€”
* 02*β€”
* 03*β€”
* 04*β€”
* 05*β€”
* 06*β€”
* 07*β€”
* 08*β€”
* 09*β€”
* 10*β€”
* 11*β€”
* 12*β€”
* 13*β€”
* 14*β€”
* 15*β€”
* 16*β€”
* 17*β€”
* 18*β€”
* 19*β€”
* 20*β€”
* 21*β€”
* 22*β€”
* 23*β€”
* 24*β€”