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

SP Any Pipe [40 Ports]

For control-panel-sized workflows

By bananasss00·Created 2 years ago·Updated 12 days ago· 20
SP Any Pipe [40 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
  • any_31_in
  • any_32_in
  • any_33_in
  • any_34_in
  • any_35_in
  • any_36_in
  • any_37_in
  • any_38_in
  • any_39_in
  • any_40_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
  • any_31_out
  • any_32_out
  • any_33_out
  • any_34_out
  • any_35_out
  • any_36_out
  • any_37_out
  • any_38_out
  • any_39_out
  • any_40_out

Forty ports is big-workflow territory - the size you reach for when a single graph is doing enough that it effectively needs a "master settings" bundle: this pack even ships a dedicated ParameterControlPanel node for exactly that pattern, and a 40-port Any Pipe is the kind of wire you'd use to carry that panel's output somewhere it's actually consumed. If you're still counting how many things you're bundling, you probably don't need this size yet - 20 or 30 ports covers most real workflows. Forty is for the graphs that have genuinely outgrown that.

The mechanism is identical across every size this pack ships (5/20/30/40/50): bundle a pile of arbitrary values into one wire instead of routing each individually. It's the same idea as rgthree's Context node or Impact Pack's basic pipes, just scaled up for a workflow with a lot more moving parts.

How it works

Every any_N_in socket takes ComfyUI's wildcard * type - a MODEL in slot 1, a STRING in slot 2, a FLOAT in slot 3, no complaints. Each any_N_out re-emits exactly what came in on the matching input, unchanged, in order. The exception is cpipe_in/cpipe_out, typed sp_anypipe specifically - that pair only accepts another Any Pipe's output, and it's how you chain nodes together if even forty ports isn't enough, or how you'd link this pipe as one stage of a longer pipeline of pipes.

Inputs and outputs

  • any_1_in through any_40_in - forty optional wildcard inputs.
  • cpipe_in - optional, sp_anypipe, chains in a prior pipe.
  • Outputs: any_1_out through any_40_out, plus cpipe_out.

Every slot is optional - an empty input just produces an empty output.

Installing it

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

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

then restart ComfyUI. It's plain Python plumbing - nothing to download, no extra pip requirements specific to this node.

Common issues

A 40-port node is a big rectangle. At this size the node itself takes up real canvas space just listing sockets, most of which will sit empty in any given workflow. That's a fair trade if you genuinely need the ports, but if you're consistently using under half of them, dropping to 20 or 30 keeps the graph more readable without losing any capability.

Type errors surface far from their cause. Because every port is wildcard-typed, ComfyUI validates nothing about what's actually flowing through until a downstream node tries to use it - and with forty slots the odds of one being wired to the wrong thing go up. When something errors well past a big pipe, trace back through it before trusting the node that actually threw the error.

Losing track of which slot is which. Forty unlabeled index numbers is not a filing system. Group related ports into consistent ranges (settings in 1-10, conditionings in 11-20, and so on) and rename the node itself to say what it's carrying - the alternative is re-deriving your own workflow from scratch every time you reopen it.

CategorySP-Nodes/Pipes

Inputs (41)

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*
any_31_inopt*
any_32_inopt*
any_33_inopt*
any_34_inopt*
any_35_inopt*
any_36_inopt*
any_37_inopt*
any_38_inopt*
any_39_inopt*
any_40_inopt*

Outputs (41)

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*
any_31_out*
any_32_out*
any_33_out*
any_34_out*
any_35_out*
any_36_out*
any_37_out*
any_38_out*
any_39_out*
any_40_out*