Pipe Out Generation Data
The generation-data pipe that fed your save nodes — now marked deprecated
- pipe
- pipe
- steps
- cfg
- sampler_name
- scheduler
- positive
- negative
- modelname
- width
- height
- seed_value
- loras
- vae_name
If you load a workflow and see "Pipe Out Generation Data [RvTools]" sitting in front of a save node, you're looking at the unpack half of a pipe pair. Somewhere upstream, a matching "Pipe In Generation Data [RvTools]" node caught your steps, CFG, prompts, model name, seed, LoRAs and VAE while you were generating, and bundled them into a single pipe. This node takes that one wire and splits it back into individual values so the rest of the graph can read them - most importantly, so a metadata-savvy save node can write them into the PNG.
The node does exactly one job. It has a single required input, pipe, and it returns that same pipe untouched plus twelve unpacked outputs: steps, cfg, sampler_name, scheduler, positive, negative, modelname, width, height, seed_value, loras, and vae_name. Read the class source and that's literally the whole implementation: unpack a tuple, hand everything back. No API, no hidden state, nothing to tune. That's the charm of the whole RvTools "Pipe In / Pipe Out" family - one fat wire keeps your graph from turning into a spiderweb of individual connections, and you only split it open where something actually needs the values.
Why does this matter for you? Two reasons. First, tidy graphs. Second, and more interesting, generation metadata. The pack's own flagship is "Save Image with Generation Data" - the README's screenshot leads with it - and it's a well-known way to embed prompts, seed, model and LoRA info into the image file so the workflow survives sharing. This Pipe Out node is the feed for that: it hands the save node the values that go into the metadata. If you've ever posted an image and had people ask for the workflow, nodes like this are why the answer is "drag the PNG back in."
The catch is in the category: this exact node is DEPRECATED. It's the v1 pipe layout, and the pack ships a successor, "Pipe Out Generation Data II [RvTools]", with a rearranged v2 pipe (adds denoise and clip_skip, different field order). The whole RvTools v2 pack is itself no longer maintained - the README points everyone to the successor pack ComfyUI_Eclipse. So if you're starting fresh, prefer the II node or Eclipse; if you're fixing an old workflow that won't load, this is often the node the error is pointing at.
Installing it
It ships in the ComfyUI-RvTools_v2 pack. Easiest path is ComfyUI Manager - search for "ComfyUI-RvTools_v2" and install. Or the manual way:
cd ComfyUI/custom_nodes
git clone https://github.com/r-vage/ComfyUI-RvTools_v2
Then restart ComfyUI. The pack's requirements (torch, numpy, Pillow, opencv-python, pilgram, plus pynvml and piexif for the monitoring/metadata bits) install automatically; there are no model downloads and no API keys. It's pure workflow plumbing.
Where people get burned
- Wrong pipe, crash. Every Pipe Out node expects a specific tuple layout. Feed it a pipe from the wrong pack or the wrong partner node and you'll get a Python
ValueError: not enough values to unpack. Match this one with a "Pipe In Generation Data" v1, or a "Generation Data II" pipe for the II output node - don't mix generations. - Deprecation whiplash. The author renamed every node between RvTools v1 and v2 to fix ComfyUI Manager's wrong-node display, which broke old v1 workflows outright. If a shared workflow references the old names, they won't auto-map.
- It does nothing by itself. No pipe in, no values out. It's a de-pipeliner, not a generator.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| pipe | pipe | — |
Outputs (13)
| Name | Type | Description |
|---|---|---|
| pipe | pipe | — |
| steps | INT | — |
| cfg | FLOAT | — |
| sampler_name | STRING | — |
| scheduler | STRING | — |
| positive | STRING | — |
| negative | STRING | — |
| modelname | STRING | — |
| width | INT | — |
| height | INT | — |
| seed_value | INT | — |
| loras | STRING | — |
| vae_name | STRING | — |