ND Variant Preview Selector
Pick the third of eight, then upscale only that one
- params
- params
Generating eight and picking the best is the normal way to work. The painful part isn't the generating, it's everything after: eight files in a folder, you like #3, and now you want your own upscale chain on exactly that image - which in stock ComfyUI means saving it, loading it back, and rebuilding half the graph around a second workflow.
This node is the answer to that annoyance. It shows the batch, you click the one you want, and one button sends it through the upscale branch you build in the same workflow.
It is not an upscaler
Worth stating flatly, because the button is called Upscale and people file that as a bug. Nothing in this node resizes anything. The Upscale button queues a run with a flag set to true; what happens next is entirely up to the nodes you put after it - any upscale nodes, model upscalers, tiled passes, third-party packs, whatever. The node's contribution is the hand-off.
The wiring
It has one input and one output, both parameters wires, which is the pack's convention for "carries several named values".
In (params): connect an ND Pack Parameters and it reshapes to the fields this node wants - images (the batch, required) and image, optional, where the upscaled result comes back in. That image pin is the whole hand-off: the end of your upscale branch plugs there, the result is saved, and the node shows it with a Compare button that flips a before/after slider against what was sent.
Out (params): open with ND Unpack Parameters and you get three fields:
selected_index(INT, 0-based) - the variant you're looking at. The UI numbers variants from 1, so the third thumbnail outputs2. That off-by-one will bite you exactly once, in aswitchnode, at midnight.multi_variant(BOOLEAN) - state of the Multi-Variant toggle at the bottom left (its label is renameable, but the output name staysmulti_variant).upscale(BOOLEAN) - true only on a run started by the Upscale button.
Those three wire into whatever you like: selected_index into one of the pack's switches, upscale into a gate so the upscale branch only runs when you asked for it. The gear holds the rest - file name (ND_Image), variant name suffix (variant), upscaled suffix (upscaled), whether the Upscale button shows, whether variants are saved on every run, and live preview.
What actually happens when you click Upscale
This is the good engineering, so here it is plainly. Upscale doesn't queue your workflow normally. It builds the prompt, drops the feedback wire (result → this node, which would otherwise be a cycle), sets upscale_trigger = true, restores the seeds and control values from the last Run so the sampling comes out of cache - no regenerate - and sends that prompt directly to the API. A normal Run does the opposite: upscale_trigger = false and the wire into image is removed from the prompt, so your upscale branch is never evaluated and costs you nothing.
Two consequences worth internalising. First, an upscale takes seconds because it isn't sampling again - if yours re-samples, something upstream forces a re-run. Second, the selector's outputs don't come from the node itself at runtime: the frontend routes them through an internal helper (ND Variant Values) holding the values on screen when you queued, which is why wiring the selector's output back into a node that feeds it doesn't throw a circular connection error.
Saving behaves like Save Image: ND_Image_variant_00001_.png, metadata embedded. The upscaled image is always saved; variants are saved on a normal Run if you enabled Save variants, and always if you turned the Upscale button off.
Install
Part of Neural Dreamer Nodes - v1.1.0, MIT, no Python dependencies (it uses PIL, numpy and torch, which ComfyUI already has), and no model files. The pack comes from a Russian-language ComfyUI tutorial channel that publishes matching workflows on Boosty/Patreon, so documentation lives in the README rather than in forum threads - Reddit barely knows this pack exists yet.
cd ComfyUI/custom_nodes
git clone https://github.com/neural-dreamer/ComfyUI-NeuralDreamer-Nodes.git
Restart and refresh the tab. ComfyUI Manager: search "Neural Dreamer Nodes".
Common issues
"Variant Preview Selector: no images." The images field wasn't fed. Connect a Pack Parameters to the input and plug the batch into its images pin - the error message says exactly this, which is rarer than it should be.
The node is empty after a reload. Expected. After a reload or restart it's blank until the next Run, and a reloaded workflow starts at variant 1. Within a session it keeps its images and your selection across workflow tabs.
Live preview does nothing. It's off by default - turn it on in the gear. Without an ND Live Preview Bridge in front of your sampler, the node falls back to ComfyUI's own previews, so Settings → Comfy → Execution → Live preview method has to be on something other than None.
Nothing is saved. You probably have the Upscale button enabled and only ever clicked Upscale - an upscale run doesn't re-save the variant batch. Enable Save variants, or do one normal Run.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| params | ND_PARAMS | — | |
| multi_variant | BOOLEAN | false | — |
| selected_index | INT | 00–100000 | — |
| upscale_trigger | BOOLEAN | false | — |
| filename_prefix | STRING | ND_Image | — |
| save_previews | BOOLEAN | false | — |
| variant_suffix | STRING | variant | — |
| upscaled_suffix | STRING | upscaled | — |
| upscale_button | BOOLEAN | true | — |
| preview_metadata | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| params | ND_PARAMS | — |