Nodes/SP-Nodes/SP Any Pipe [30 Ports]
ComfyUI Node

SP Any Pipe [30 Ports]

For when 20 wasn't enough

By bananasss00·Created 2 years ago·Updated 12 days ago· 20
SP Any Pipe [30 Ports]
  • cpipe_in
  • any_1_in
  • any_2_in
  • any_3_in
  • any_4_in
  • any_5_in
  • any_6_in
  • any_7_in
  • any_8_in
  • any_9_in
  • any_10_in
  • any_11_in
  • any_12_in
  • any_13_in
  • any_14_in
  • any_15_in
  • any_16_in
  • any_17_in
  • any_18_in
  • any_19_in
  • any_20_in
  • any_21_in
  • any_22_in
  • any_23_in
  • any_24_in
  • any_25_in
  • any_26_in
  • any_27_in
  • any_28_in
  • any_29_in
  • any_30_in
  • cpipe_out
  • any_1_out
  • any_2_out
  • any_3_out
  • any_4_out
  • any_5_out
  • any_6_out
  • any_7_out
  • any_8_out
  • any_9_out
  • any_10_out
  • any_11_out
  • any_12_out
  • any_13_out
  • any_14_out
  • any_15_out
  • any_16_out
  • any_17_out
  • any_18_out
  • any_19_out
  • any_20_out
  • any_21_out
  • any_22_out
  • any_23_out
  • any_24_out
  • any_25_out
  • any_26_out
  • any_27_out
  • any_28_out
  • any_29_out
  • any_30_out

Thirty ports is where you land once a 20-port pipe genuinely isn't enough - usually because you're merging two things that each had their own bundle. Say one branch of your workflow already pipes model+clip+vae+conditioning+latent (five things) through its own Any Pipe, and a second branch pipes a dozen settings through another. Rather than picking apart both bundles and re-wiring everything into a single mega-pipe by hand, SP Any Pipe [30 Ports] gives you the headroom to combine them into one wire without running out of sockets.

It works exactly like the smaller sizes in this pack (5/20/30/40/50 ports) - this is the same node, just with more slots - because the whole family solves one problem: carrying a bunch of arbitrary values across a graph as a single visual line instead of a dozen crossing wires, the same trick rgthree's Context node and Impact Pack's pipes use.

How it works

Every any_N_in is typed *, ComfyUI's wildcard - you can put a MODEL in one slot and a plain INT in the next without the editor objecting. Each output mirrors its input one-for-one and unchanged. The cpipe_in/cpipe_out pair is typed sp_anypipe, not *, and exists specifically for chaining: it only accepts another Any Pipe node's output, which is how you'd extend past thirty ports without jumping to the 40-port node if that's not worth the extra visual weight.

Inputs and outputs

  • any_1_in through any_30_in - thirty optional wildcard inputs.
  • cpipe_in - optional, sp_anypipe, for chaining.
  • Outputs: any_1_out through any_30_out, plus cpipe_out.

All optional; an empty slot just passes through empty.

Installing it

ComfyUI Manager - search "SP-Nodes", install, restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/bananasss00/ComfyUI-SP-Nodes

then restart. Pure organizational node, no models or heavy dependencies attached to it specifically.

Common issues

Silent type mismatches. The wildcard typing that makes these pipes flexible is also what hides a plumbing mistake until runtime - ComfyUI can't warn you at graph-build time that slot 12 now has a LATENT where a downstream node expects a MASK. If a run errors with a type complaint several nodes after a pipe, check what actually went into that slot before debugging the node that threw.

Thirty slots you can't tell apart. At this size, index numbers alone stop being useful documentation. If you're combining two bundles into one pipe (the usual reason to reach for 30 over 20), keep a consistent block ordering - say, ports 1-10 for one bundle and 11-20 for the other - so future-you can tell at a glance which half is which without hovering over every wire.

Reaching for 30 when 20 would do. If you're consistently leaving ten-plus ports empty, that's a sign the smaller size was the right call - fewer unused sockets to scroll past on the node itself.

CategorySP-Nodes/Pipes

Inputs (31)

NameTypeDefaultDescription
cpipe_inoptsp_anypipe
any_1_inopt*
any_2_inopt*
any_3_inopt*
any_4_inopt*
any_5_inopt*
any_6_inopt*
any_7_inopt*
any_8_inopt*
any_9_inopt*
any_10_inopt*
any_11_inopt*
any_12_inopt*
any_13_inopt*
any_14_inopt*
any_15_inopt*
any_16_inopt*
any_17_inopt*
any_18_inopt*
any_19_inopt*
any_20_inopt*
any_21_inopt*
any_22_inopt*
any_23_inopt*
any_24_inopt*
any_25_inopt*
any_26_inopt*
any_27_inopt*
any_28_inopt*
any_29_inopt*
any_30_inopt*

Outputs (31)

NameTypeDescription
cpipe_outsp_anypipe
any_1_out*
any_2_out*
any_3_out*
any_4_out*
any_5_out*
any_6_out*
any_7_out*
any_8_out*
any_9_out*
any_10_out*
any_11_out*
any_12_out*
any_13_out*
any_14_out*
any_15_out*
any_16_out*
any_17_out*
any_18_out*
any_19_out*
any_20_out*
any_21_out*
any_22_out*
any_23_out*
any_24_out*
any_25_out*
any_26_out*
any_27_out*
any_28_out*
any_29_out*
any_30_out*