πͺ Pipe to/edit any
Bundle six wires into one link (and the recursion trap to avoid)
- CPipeAny
- any_1
- any_2
- any_3
- any_4
- any_5
- any_6
- CPipeAny
Once a ComfyUI graph grows past a screenful, half the mess isn't the sampling logic, it's six loose noodles running the length of the canvas because you needed to carry a model, a couple of conditionings, and some latents from one side to the other. Pipe to/edit any is Crystools' fix: it bundles up to six arbitrary links into a single pipe wire, so instead of six long cables you drag one.
This isn't a novel idea - rgthree's Context nodes and reroute-heavy setups solve the same "my workflow is unreadable" problem in different ways - but Crystools' version is deliberately untyped. It doesn't care what you put in each slot, which is both the whole point and the thing that'll bite you if you're not careful (more on that below).
How it works
Feed it up to six things via any_1 through any_6, and it packs them into a CPipeAny output you can run anywhere in your graph and unpack later with the companion Pipe from any node (documented in the README but not covered here). The "edit" half of its name comes from the optional CPipeAny input: feed an existing pipe back in, and you can add to or overwrite specific slots and send the modified bundle onward under the same pipe number - handy when you want to inject one new value into a pipe that's already carrying five others without rebuilding it from scratch.
The inputs and outputs that matter
CPipeAny(optional input) - an existing pipe to edit, rather than building a new one from scratch.any_1β¦any_6- up to six values of any type to pack in.- Output:
CPipeAny- the bundled pipe, which you unpack downstream with Pipe from any, or split with a second Pipe to/edit any to bifurcate the flow into two branches.
How to install it
Through ComfyUI Manager, search crystools and install. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/crystian/comfyui-crystools.git
cd comfyui-crystools
pip install -r requirements.txt
Restart, find it under crystools πͺ / Pipe. Nothing to download, no GPU dependency for this node specifically.
Common issues & troubleshooting
The one real landmine here is called out explicitly in the README, and it's worth repeating because the failure mode is nasty: because the pipe doesn't validate that what goes into slot 3 matches what comes out of slot 3 downstream, it's entirely on you to keep your links straight, number by number. Mix up the flow direction - route a pipe's own output back into feeding itself, even indirectly through an edit further down the chain - and you get a RecursionError: maximum recursion depth exceeded. That's not a warning you shrug off; it can lock up the server hard enough that you need to restart it. If you see that error, the fix isn't in the traceback, it's in your graph: trace every pipe wire and make sure the data only ever flows one direction, never back into a node it originated from.
Short of that, the failure mode people actually hit day to day is just forgetting which slot is which - since nothing validates types, plugging a LATENT into any_2 on one side and expecting an IMAGE out the other side on your Pipe from any node will "work" (no error) and then quietly break something three nodes later. Label your pipes or keep them short; six untyped slots is a lot to hold in your head past workflow number two.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| CPipeAnyopt | CPipeAny | β | |
| any_1opt | * | β | |
| any_2opt | * | β | |
| any_3opt | * | β | |
| any_4opt | * | β | |
| any_5opt | * | β | |
| any_6opt | * | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CPipeAny | CPipeAny | β |