Nodes/NF Preview Selector/NF Preview Selector
ComfyUI Node

NF Preview Selector

Pick keepers mid-queue with NF Preview Selector

By NyaFuP·Created about a year ago·Updated about a year ago· 2
NF Preview Selector
  • images
  • latents
  • selected_images
  • selected_latents
  • selection_indices
modereview_and_select
timeout60
selection_indices

Every ComfyUI user hits the same wall: you queue up eight variants of a prompt, and then you have to deal with all eight. Either you upscale everything and sort through the results afterward, or you kill the queue, note which seed you liked, and re-run the whole thing. NF Preview Selector is the node that ends that loop. It pauses mid-queue, pops up a floating dialog over your screen, and lets you click the keepers before anything expensive runs on them.

The name is a lie in the best way - it's not a preview. It's a gatekeeper. The intended flow, straight from the README: generate a batch, pick your favorites, then process them with hires fixes or other enhancements. That's the classic "generate small, curate, then upscale the survivors" pattern, and this node makes the curate step a literal click instead of a memory exercise.

How it works

NF Preview Selector subclasses ComfyUI's core PreviewImage node, so it saves the incoming batch to your output folder (files get the NFPreview prefix) and renders them for the UI. But instead of stopping there, it ships the images to a floating dialog over ComfyUI's WebSocket channel and waits. While you decide, it moves the image and latent tensors back to CPU and clears VRAM - a small touch that matters if your review window overlaps other GPU work. When you confirm, it slices out only the selected items and the queue carries on with them.

In the dialog itself you get a grid of images, green numbered marks on whatever you click, a selection counter, and a countdown. A pin button keeps the window open (handy when you're comparing against something else), and double-clicking an image expands it full-screen with zoom and pan (added in v1.2.5). It remembers its window position between runs, which is the kind of quality-of-life detail a reviewer-friendly tool actually needs.

The inputs that matter

You mostly touch three things:

  • mode - review_and_select (default) opens the dialog. pass_through forwards the whole batch untouched, take_first and take_last grab one image automatically. Once you've debugged a workflow, switching it to pass_through is the fastest way to re-run without babysitting.
  • timeout - an integer from 10 to 300 seconds, default 60. Set this to something you can actually live with; more on why below.
  • images - the batch you're curating.

The one input worth wiring on purpose is latents (optional). If you feed the node a LATENT batch from your sampler alongside the images, it returns the corresponding selected latents too - so you can pass your keepers straight into a latent-space hires pass without a VAE decode/encode round trip. It's a real efficiency win, not a gimmick.

There's also an optional selection_indices STRING input, but be honest with yourself about it: in the current source it's accepted and then never read. Consider it a stub. The selection_indices output is the real deal - a string like "0,2,4" listing what you chose, which is nice for logging or scripting.

Outputs are selected_images (IMAGE), selected_latents (LATENT), and selection_indices (STRING). The node is an output node, so wire selected_images into your upscaler (tiled or ControlNet-Tile paths pair beautifully here) and selected_latents into any latent-space refinement.

Installing it

Boring in a good way. ComfyUI Manager → search "Preview Selector" and hit install, or clone manually:

cd ComfyUI/custom_nodes
git clone https://github.com/NyaFuP/ComfyUI_Preview_Selector

Restart ComfyUI and the node appears under the image/preview category. That's the whole install: no model files to download, and pyproject.toml lists zero dependencies beyond what ComfyUI already ships (it leans on ComfyUI's own torch, PromptServer, and aiohttp). Cleanest install of the week.

Where people get burned

The biggest trap is that this node interrupts the entire queue if you hit Cancel or let the countdown run out - it raises ComfyUI's interrupt exception, so everything after it stops, not just this step. That's often what you want (you cancelled because you didn't like the batch), but it means your timeout needs to be generous enough that you're never the thing that times out. The author also flags a known issue in the README: if you cancel or time out, the preview isn't saved, and they candidly admit they haven't figured out how to fix it yet. That honesty is worth setting expectations.

Which brings up the last thing: this is a one-person tool, built by a self-described beginner with Claude Code's help, "because I needed it for my own use." It's not Impact Pack - don't expect a support channel. But for the narrow job of choosing between eight variations of the same prompt before spending GPU time on them, it does exactly what it says, and nothing else does it quite this smoothly.

Categoryimage/preview

Inputs (5)

NameTypeDefaultDescription
imagesIMAGE
modeCOMBOreview_and_select4 options: review_and_select, pass_through, take_first, take_last
timeoutINT6010–300
latentsoptLATENT
selection_indicesoptSTRING

Outputs (3)

NameTypeDescription
selected_imagesIMAGE
selected_latentsLATENT
selection_indicesSTRING