SP Any Pipe [5 Ports]
Bundle five wires into one so your graph stops looking like spaghetti
- cpipe_in
- any_1_in
- any_2_in
- any_3_in
- any_4_in
- any_5_in
- cpipe_out
- any_1_out
- any_2_out
- any_3_out
- any_4_out
- any_5_out
Once a workflow gets past a certain size, the actual problem isn't the sampling math - it's the wires. You've got MODEL, CLIP, VAE, a couple of conditionings and a seed all needing to travel from one side of the graph to the other, and if you route them individually you end up with a rat's nest crossing every other connection on the canvas. SP Any Pipe [5 Ports] is the smallest of five sizes in this pack (5/20/30/40/50) that exist purely to fix that: bundle up to five arbitrary values into a single wire, run that one wire across your graph, then unbundle it wherever you need the pieces back.
This is the same idea behind rgthree's Context node and Impact Pack's basic pipes - take a handful of things that always travel together and give them one visual line instead of five. Five ports is the size to reach for when you're bundling something small and self-contained: a checkpoint's MODEL/CLIP/VAE plus a couple of conditionings, say, or a latent plus a couple of settings you're passing to a subgraph. If five stops being enough, the pack has bigger sizes - but check those out before over-provisioning; a 50-port pipe with 45 empty sockets is its own kind of clutter.
How it works
Every any_N_in socket accepts genuinely anything - the schema types them as *, ComfyUI's wildcard type, so you can plug a MODEL into slot 1 and a plain STRING into slot 2 without complaint. Whatever you connect comes back out the matching any_N_out on the other end, in the same order. There's no repacking or relabeling; it's a straight pass-through, position for position.
The one input that isn't a wildcard is cpipe_in, typed specifically as sp_anypipe rather than *. That's the mechanism for chaining: it only accepts another SP Any Pipe node's cpipe_out. Run out of the five slots here and instead of jumping straight to a bigger node, you can feed this pipe's output into a second one as cpipe_in and keep going - useful if your bundle grows past five later and you'd rather extend than rewire from scratch.
Inputs and outputs
any_1_in…any_5_in- five wildcard inputs, each optional.cpipe_in- optional, typesp_anypipe, for chaining another Any Pipe node in.- Outputs mirror the inputs one-for-one:
any_1_out…any_5_out, pluscpipe_outfor continuing the chain.
Nothing here is required - leave a slot empty and its output is simply empty too.
Installing it
Through ComfyUI Manager: search "SP-Nodes", install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/bananasss00/ComfyUI-SP-Nodes
then restart ComfyUI. No models to download for this node specifically - the pack as a whole reaches into a lot of territory (Telegram bots, KoboldCPP, wildcards), but the pipe nodes themselves are pure Python plumbing with nothing to fetch.
Common issues
A wire looks connected but the downstream node complains about type. Because every slot is the * wildcard, ComfyUI won't catch a mismatch when you build the graph - it only shows up as an error at execution time, once the real object hits a node that expected something else. If a run fails with a type error several nodes downstream of a pipe, that's the first place to look, not the node that actually threw.
You forget what's in slot 3. With five wildcard sockets and no labels beyond their index, a pipe you built two weeks ago is not self-documenting. Renaming the node title (right-click → Title) to something like "ckpt bundle" is worth the ten seconds - the port numbers alone won't remind you.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| cpipe_inopt | sp_anypipe | — | |
| any_1_inopt | * | — | |
| any_2_inopt | * | — | |
| any_3_inopt | * | — | |
| any_4_inopt | * | — | |
| any_5_inopt | * | — |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| cpipe_out | sp_anypipe | — |
| any_1_out | * | — |
| any_2_out | * | — |
| any_3_out | * | — |
| any_4_out | * | — |
| any_5_out | * | — |