ImageDir Preview
A contact sheet of every image a checkpoint actually made — with a delete button
"You've seen one checkpoint's outputs" is the sales pitch of the whole suite, and this is the node that makes it true. ImageDir Preview takes a checkpoint name (ckpt_name_str, from the List Selector or Cycler), scans your output folder for images that checkpoint produced, and lays them out as a contact sheet. Select a model on the left, and here's every generation it's ever made, newest first, in one glance.
That's the part people underestimate. When you've batch-cycled through thirty checkpoints, output becomes a pile of images you can't attribute to anything. This node's matching logic walks your output directories and picks out files whose path contains the checkpoint's filename-safe name (or its stem) - which is exactly why the suite's recommended setup saves images into checkpoint-aware folders in the first place. No checkpoint-aware filenames, and it can't tell who made what. The two companion saver nodes the author recommends (ComfyUI-GMImageSaver and ComfyUI-PillowImageSaver) just exist to make that naming automatic.
Inputs that matter
ckpt_name_str- which checkpoint to show. Required, and normally driven by the List Selector's Sync button rather than typed.search_directory- where to look. Leave blank for the default output folder. Wire a string in if your images live elsewhere.max_preview_images- 1 to 80, default 12. This one's worth actually tuning. The README says it plainly: smaller values for review (each tile stays inspectable), larger for overview. For deciding keep-vs-delete, 12 is plenty; crank it up only when you want the big picture.
It's an output node - no outputs, nothing to wire onward. What it produces is the contact sheet itself, and contact sheets have rules: they don't upscale, and if the sheet would exceed ComfyUI's 4096px content limit, images get scaled down to fit. So a 12-tile review grid is the sweet spot for actually reading images; a 60-tile overview is a thumbnail wall.
Left-click: the action menu
Click any live image tile and you get two actions:
- Delete image - asks for confirmation, then deletes the source file. Hard delete, no trash directory, so the confirmation dialog is the only safety net. After deletion the tile stays put with a
NO IMAGEoverlay and stops being clickable. - Set as checkpoint thumbnail - copies that image as the checkpoint's sidecar thumbnail, which the List Selector then shows on hover. That's how you give your favorites a recognizable face instead of a filename.
That's the entire review loop in one node: see the outputs, kill the failed ones, promote the best one to thumbnail. It's not a gallery app, and it won't touch images outside your search directory, but for "which of my forty models is actually good" it's the fastest honest answer.
Install
Same pack, same zero-dependency install:
cd ComfyUI/custom_nodes
git clone https://github.com/ruminar/ComfyUI-CheckpointHandpickerSuite.git
Restart ComfyUI. Nothing to download, no pip step.
Realistic take
The delete button has real teeth (hard file deletion), so the confirm dialog is there for a reason - respect it. And remember the whole pipeline leans on how you save images: if your saver isn't writing checkpoint-aware paths, this node has nothing to find. Set that up first, and this becomes the most-used node in the suite.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| ckpt_name_str | STRING | — | |
| search_directoryopt | STRING | — | |
| max_preview_imagesopt | INT | 121–80 | — |
| hps_tab_idopt | STRING | — |
Outputs (0)
No outputs