NF Preview Selector
NF Preview Selector
- images
- latents
- selected_images
- selected_latents
- selection_indices
Here's the workflow this node is built for. You generate eight candidates at a sane first-pass resolution, look at them, and only the two you like go through the expensive second half - hires fix, detailing, upscaling, the save. The problem has always been that ComfyUI has no natural place for that "look at them" step. You get a Preview Image at the end, you note which seed was good, you go change the batch size and seed, you re-run everything.
NF Preview Selector is that missing step. It shows the batch as a clickable gallery on the node, you pick the images you want, and Continue runs only the downstream part with just those. The upstream half is not re-run.
How it works
The node is an output node, so a normal Queue executes it. When it does, it saves the incoming batch to ComfyUI's temp directory as a .pt file (under nf_preview_selector), publishes a preview of every image as a UI payload, and then decides what to do based on mode.
In the default review_and_select mode it returns an execution blocker instead of outputs - a silent block. Downstream nodes simply don't execute. There's no error, no red node, nothing waiting on a server thread; your queue is free and you can keep working. That surprises people in both directions: if you don't know it happened, the workflow looks half-broken, and if you expect a modal prompt you'll wait forever.
Pressing Continue is the clever half. The frontend rewrites the prompt: your selector node is swapped for NF_PreviewSelectorSource, a variant with no link inputs that takes a batch_id and a selection string and loads the stored batch back off disk. Then it queues only the output nodes that depend on the selector. So the sampler, the checkpoints, the whole upstream branch are simply not in the job - this is why Continue is nearly instant compared to re-running.
Before Generate it also applies seed_mode to the upstream branch, same as NF Independent Queue does (partial runs skip ComfyUI's own control_after_generate handling, so something has to advance the seeds or you'd get the same batch back).
The inputs and outputs that matter
images- the batch to review. Wire it from your decode, or from an Image batch of candidates.mode-review_and_select(default; block until you pick and press Continue),pass_through(everything goes downstream, no stopping),take_firstandtake_last(automatic pick of one image).pass_throughis what you switch to once you're done fiddling and want the workflow to just run unattended.seed_mode-randomize/follow/off, applied to upstream seeds before Generate.latents(optional) - connect this if you want the chosen latents back out. If you don't,selected_latentshas nothing to offer and you shouldn't feed it to anything expecting a LATENT.
Outputs are selected_images, selected_latents (both 1:1 with the selection), and selection_indices - a string like 0,2 naming which positions you kept, which is genuinely useful for filenames or for a note node that records what you chose.
Right-clicking an image in the gallery gives Copy / Open / Save. Copy needs a secure context - https or localhost. If you drive ComfyUI over plain http from another machine, Copy silently won't work; use Open and copy from the new tab.
Installing it
Search ComfyUI-NF_Suite in ComfyUI Manager (pack title "NF Suite"), or:
cd ComfyUI/custom_nodes
git clone https://github.com/NyaFuP/ComfyUI-NF_Suite.git
Restart. No extra packages, no models; the gallery UI is a prebuilt Vue frontend in web/, no npm needed. You need ComfyUI 0.22.0+ and frontend 1.44.19+ - the gallery is a custom node widget, so an older frontend means an unusable node.
Common issues
"The candidate images are no longer available." Candidates live in ComfyUI's temp folder, and ComfyUI empties that on startup. Restart ComfyUI, lose your batch, get that error on Continue. Only the 20 most recent batches are kept, too, so a long session of Generate presses ages the old ones out. Press Generate again and pick afresh.
The workflow appears to stop with no error. That's review_and_select working as designed. Downstream nodes were skipped deliberately. Press Continue with at least one image selected.
Continue errors immediately. Two usual causes: nothing selected (the selection parser requires at least one index), or ComfyUI was restarted since Generate, so the batch id no longer resolves. If the selector node got muted or bypassed, Continue can't find it in the prompt at all and complains in those words.
It keeps stopping even after you've picked. A full Queue always re-executes an output node, and the selector is one. When you're done reviewing, set mode to pass_through so subsequent runs sail straight through - or keep using Continue, which targets only the downstream half.
Continue only works from the root graph. Like the Run button on Independent Queue, the Generate/Continue buttons need the node at the top level; inside a subgraph they don't function.
Coming from NF_Tools? The old node was NFPreviewSelector2 and its timeout widget is gone - the new one doesn't wait, it blocks silently. Workflows referencing the old node get a Replace Node option in the error panel, which remaps images, latents, mode and all three outputs for you.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| mode | COMBO | review_and_select | 4 options: review_and_select, pass_through, take_first, take_last |
| seed_mode | COMBO | randomize | Before Generate: randomize/follow/off upstream seeds (see NF Independent Queue). |
| latentsopt | LATENT | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| selected_images | IMAGE | — |
| selected_latents | LATENT | — |
| selection_indices | STRING | — |