RedNode Stage Tap
Photograph any point in the graph so you can compare runs later
- image
- latent
- vae
- image
- latent
The useful question after a run isn't "does the final image look right", it's "what changed between the pre-upscale version and the final one". RedNode Stage Tap is the instrumentation for that: drop it into a chain, give it a label, and it photographs that moment for the Stage View panel - while passing the image or latent straight through. The Stage View finds the taps by itself, so there's no wiring between them, no Set/Get pairs, and nothing to redo when the workflow changes.
The design is the wireless pattern the Studio pack leans on everywhere: taps write to an in-memory store keyed by run, and the view reads it. That's why the taps and the view never touch each other in the graph - the wires that aren't there are the point. A tap notices a new run and the view shows the last run's taps in the order they executed, so you can compare any two stages with a drag-across wipe and see exactly what a step did.
How it works
A tap has a label ("after upscale", "before detailer") and an optional image input plus an optional latent input. Whichever you wire comes out the matching output untouched - tap is transparent to data. Wire a vae as well when you're tapping a latent, and the preview shows what that latent actually looks like; without a VAE a latent still passes through, just without a picture.
Here's the rule that catches people: wire the output onward. A tap left dangling doesn't run - the description says it outright, and it's deliberate. The tap used to be an output node, and that was wrong, because an output node executes everything upstream of it, so a tap sitting on an unselected switch branch would drag the whole branch into execution. Making it run only when wired inline gives you taps that stay where they belong and never force an unchosen branch to run. An empty label just numbers the step.
The inputs
label- what this point in the workflow is.image/latent(optional) - whatever you want to photograph; it passes through untouched.vae(optional) - only needed to preview a latent.
Outputs: image and latent, passthrough.
Installing it
git clone https://github.com/RedNodeAI/ComfyUI-RedNodeStudio.git ComfyUI/custom_nodes/ComfyUI-RedNodeStudio
Restart ComfyUI, or search RedNode Studio in ComfyUI Manager. No pip deps, no models. Python 3.10+.
The honest take
A tap does nothing by itself - it's the feed for the Stage View panel, which is where the wipe-compare lives, so place a tap and a view together or don't bother. The dangling-output rule is the one real trap, and it's a feature dressed as a footgun: if your taps show nothing, check that each one's output is actually wired onward. And keep in mind taps remember the last run only - they're a debugging instrument, not an archive. For comparing "before/after" moments in a long pipeline, it's the closest thing to a before-and-after slider that ComfyUI has out of the box.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| label | STRING | what this point in the workflow is, e.g. 'after upscale'. Empty just numbers the step | |
| imageopt | IMAGE | wire the image through this node; it comes out of the image output untouched | |
| latentopt | LATENT | or wire a latent through. It passes out unchanged either way; wire a vae as well and the preview shows what that latent looks like | |
| vaeopt | VAE | only needed to preview a LATENT: wire the same VAE your workflow decodes with. Without it a latent still passes through, just without a picture |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| latent | LATENT | — |