Nodes/ComfyUI_MaraScott_Nodes/❌ AnyBus - UniversalBus v2 /*
ComfyUI Node

❌ AnyBus - UniversalBus v2 /*

A universal bus for ComfyUI that actually stays readable

By MaraScott·Created 3 years ago·Updated 10 months ago· 178
❌ 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

ComfyUI has a wiring problem: the more nodes you chain, the more the canvas becomes a plate of spaghetti, and at some point you're spending more time tracing wires than making images. The standard answer is a bus node - one fat bundle of connections that carries a dozen signals from one side of your graph to the other. AnyBus v2 is MaraScott's take on that, and its profile system is the thing that separates it from the pack.

The pitch is simple. AnyBus has up to 24 AnyType slots (plus a bus connection that links buses together), and because the slots are AnyType (* 01 through * 24), they'll carry an image, a model, a conditioning, a string, whatever - no cast nodes, no type conflicts. You connect a bunch of outputs into an AnyBus on the left side of the graph, and a matching AnyBus on the right side fans them back out to where they're needed. One line of sight, no ten-kilometer wires.

How the magic works

Two behaviors make this usable rather than cursed.

Native broadcast. Any input on an AnyBus acts like a "Use Everywhere" node - an unconnected input elsewhere can pick up a value that's been put on the bus, without an explicit wire. That's the part to be careful with: the KB's ecosystem notes that "Anything Anywhere"-style nodes got a whole community backlash for making graphs impossible to debug. AnyBus keeps the explicit bus chain and the visible slots, so it's more disciplined than full "use everywhere," but the same debugging rule applies - if a value shows up somewhere you didn't wire, check the bus.

Profiles. This is the v2 headline and the author's own framing for it: "dyslexia-friendly." Bus nodes connected in the same flow (through the bus input/output) share a profile name, and editing one updates the others. The default profile is called default; connect your default bus into a flow named main and the whole chain renames to main. Connect a differently-named flow and the connection is refused. That refusal is a feature - it stops two unrelated bus systems in the same workflow from bleeding into each other. You get multiple independent flows in one graph, and only buses with the same profile name ever sync.

What plugs in (and what doesn't)

The README is unusually explicit about reroute compatibility:

  • Supported: SetNode / GetNode from KJNodes, and "Reroute (rgthree)" from rgthree-comfy.
  • Not supported: ComfyUI's native Reroute (it won't pass a non-Any type through), ReroutePrimitive from pysssss (loses the origin slot's name), and 0246.CastReroute (undefined behavior, per the author).

If a reroute behaves oddly, this compatibility list is the first place to look - it's the pack's single most-asked-about gotcha.

Installing it

cd ComfyUI/custom_nodes
git clone https://github.com/davask/ComfyUI-MarasIT-Nodes

Restart ComfyUI. Or ComfyUI Manager → search "MaraScott" → Install → restart. The current pack exports the modern class as MaraScottAnyBus_v2; the MaraScottAnyBusNode name here is the older registration of the same v2 design, kept so legacy workflows still load.

Verdict

For a big workflow, a bus is almost mandatory, and AnyBus v2 is a good one: no type casts, visible slots, and profile isolation that most bus nodes just don't offer. It won't replace rgthree's Context if that's your habit - but if you want the wires gone and your sanity intact, this is a legitimately nice way to get there.

CategoryMaraScott/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*