Pipe 12CH Any
Twelve loose wires, one tidy context pipe
- pipe
- any1
- any2
- any3
- any4
- any5
- any6
- any7
- any8
- any9
- any10
- any11
- any12
- pipe
- any1
- any2
- any3
- any4
- any5
- any6
- any7
- any8
- any9
- any10
- any11
- any12
Pipe 12CH Any is a context node in the rgthree style: it gathers up to twelve values of any type onto a single pipe wire, and - the part that makes it useful - it can also pass an existing pipe through and pull its contents back out. It's the "bundle it up" tool for workflows where twelve separate connections would turn the graph into a plate of spaghetti.
Let's start with how it actually behaves, because that's the part people get wrong. Every input - pipe, any1 through any12 - is optional. For each anyN, the node checks: is there a value wired into this input? If yes, that value goes into the context. If no, it falls back to whatever was already inside the incoming pipe, if anything. Then it returns the merged context as the output pipe, and also exposes every channel again as its own output. So it works in both directions at once: it's a bundler (twelve inputs β one pipe) and a splitter (one incoming pipe β twelve typed outputs). That two-way behavior is the same context-merge logic that powers rgthree's Context nodes - the source even credits rgthree's context utils directly.
Why would you want that? Two reasons. First, the classic context play: a big workflow has model, clip, vae, conditioning, latent, prompt, and seeds all heading to the same region - bundle them into one pipe, route the single fat wire across the canvas, and split them back out where they're needed. The graph reads like a schematic instead of a mess. Second, the fallback behavior is genuinely clever: because an empty input inherits from the incoming pipe, you can use the node to augment an existing context rather than rebuild it - chain pipes through groups, each one adding or overriding channels, and the values flow along without you reconnecting everything.
What's on it
pipe(optional) - an existing context to pass through and inherit from.any1β¦any12(optional, any type) - the values to bundle or override.- Outputs:
pipeplusany1β¦any12, re-exposing every channel.
Because the channel inputs are *-typed, you can throw IMAGE, MODEL, INT, STRING, MASK - anything - into any slot. That's the whole appeal.
Install
From ComfyUI-RvTools_v2. ComfyUI Manager β search "ComfyUI-RvTools_v2" β install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/r-vage/ComfyUI-RvTools_v2
Under RvTools II / Pipe. No model downloads; standard pip deps.
Caveats
The pipe type it speaks is the rgthree-style context type, so it composes with rgthree Context nodes - it is not Comfyroll's PIPE_LINE, and mixing the two will silently refuse to connect. The pack itself is deprecated in favor of ComfyUI_Eclipse - still works, frozen. And this node is the modern version of the pack's deprecated Pipe In 12CH: where that one only bundled in, this one bundles and splits, which is why it lives in the active Pipe category.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| pipeopt | pipe | β | |
| any1opt | * | β | |
| any2opt | * | β | |
| any3opt | * | β | |
| any4opt | * | β | |
| any5opt | * | β | |
| any6opt | * | β | |
| any7opt | * | β | |
| any8opt | * | β | |
| any9opt | * | β | |
| any10opt | * | β | |
| any11opt | * | β | |
| any12opt | * | β |
Outputs (13)
| Name | Type | Description |
|---|---|---|
| pipe | pipe | β |
| any1 | * | β |
| any2 | * | β |
| any3 | * | β |
| any4 | * | β |
| any5 | * | β |
| any6 | * | β |
| any7 | * | β |
| any8 | * | β |
| any9 | * | β |
| any10 | * | β |
| any11 | * | β |
| any12 | * | β |