Nodes/Checkpoint Thumbnail Exporter/Checkpoint Thumbnail Exporter
ComfyUI Node

Checkpoint Thumbnail Exporter

Give every checkpoint a real thumbnail — from images you actually made

By ruminar·Created 3 months ago·Updated 21 days ago· 1
Checkpoint Thumbnail Exporter
      source_image_root
      target_formatOGN-ModelManager
      max_size512
      jpeg_quality90
      operationinstall_missing
      run_modedry_run

      If you've ever stared at a grid of 100 checkpoints in a model manager and tried to remember which one is the good Illustrious merge, you know the pain this node exists to kill. Checkpoint Thumbnail Exporter is a standalone utility that looks at the images you actually generated with each checkpoint, picks a recent representative one, and writes a small .jpg next to the model file so your manager finally has something to show.

      The trigger for it: OGN-ModelManager (a ComfyUI model-management extension) reads sidecar thumbnails - a .jpg sitting right next to the .safetensors - and shows them in its UI. Without one, you get an empty slot, and there's no built-in way to fill 100 of them. This node is a one-trick pony, but that trick is "turn your own generation history into a visual checkpoint catalog without scraping Civitai."

      How it works

      It's deliberately filesystem-based. It reads the ComfyUI checkpoint list, checks each one for an existing sidecar thumbnail (it looks for .png, .jpg, .jpeg, .webp, .gif, .svg next to the model), and only for the ones missing a thumbnail does it scan your image folders. Matching is by name: it generates a key from each checkpoint's filename, then looks for that key in a parent folder, the filename stem, or the path of your saved images. The standard layout that just works:

      inventory/
        waiNSFWIllustrious_v150/image_0001.jpg
        noobai_xl_vpred/image_0001.jpg
      

      Exact folder matches beat substring matches, and if one image would match two checkpoints equally well it's skipped as ambiguous rather than guessed wrong. The representative chosen is the newest by modification time, and it keeps a stable pick stable - a cached thumbnail doesn't get swapped out just because a newer image appears. Everything goes through a disposable JSON index under your ComfyUI user folder, so it doesn't rescan your whole output tree every run.

      It writes a resized .jpg next to the checkpoint (foo.safetensorsfoo.jpg), shrink-only, aspect ratio preserved. Two details matter: it stamps a JPEG comment marker (cte_comment_v1) into every file it creates, and it never overwrites an existing thumbnail.

      The widgets you'll touch

      Only a handful exist, and three of them are defaults you can ignore.

      • source_image_root - where your generated images live. Leave empty and it uses the ComfyUI output folder. Set it if you use an explicit output dir.
      • max_size (default 512) - longest edge of the thumbnail; shrink only, so bigger source images get scaled down and small ones pass through.
      • jpeg_quality (default 90) - quality of the JPEGs it writes.
      • operation - install_missing fills gaps; uninstall_managed removes only the thumbnails it created.
      • run_mode - dry_run vs execute. Changing operation resets you to dry_run, and execute resets back after a run. It's a deliberate safety latch.

      The one thing that trips people up: this node has no outputs and queuing it does nothing. It's a panel, not a pipeline node. You click the button inside the node - its label tells you what it'll do, like 🎨 [Dry Run] Find Missing Thumbnails - and read the report in the node body. You don't wire it to anything.

      Installing it

      In ComfyUI Manager, search for Checkpoint Thumbnail Exporter, or clone it manually:

      cd ComfyUI/custom_nodes
      git clone https://github.com/ruminar/ComfyUI-CheckpointThumbnailExporter
      

      Restart ComfyUI. The only dependency is Pillow, which virtually every ComfyUI install already has - no model downloads, no GraphicsMagick, nothing heavy.

      Gotchas

      • Everything unmatched? Check source_image_root first. The empty default is the ComfyUI output folder, so if GM Image Saver or HandpickerSuite writes to an explicit folder (or your output is a symlink/junction), the node can't see your images.
      • Thumbnails not appearing in OGN-ModelManager? This node only drops files where OGN already looks; reload OGN or restart ComfyUI.
      • To refresh a managed thumbnail, run uninstall_managed first, then install_missing again - it won't overwrite, by design. The uninstaller is careful: it only deletes JPEGs carrying its exact comment marker, so your manual or OGN-uploaded thumbnails are safe, and execute demands a fresh dry run within 10 minutes.
      • One honest caveat: the source images get re-encoded to JPEG, so whatever workflow metadata was in your original PNGs is gone from the thumbnails. They're for browsing, not for rebuilding workflows.

      It's a niche tool, and if you have five checkpoints you don't need it. At fifty-plus, it turns an afternoon of squinting into one dry run.

      Categoryutils/checkpoint

      Inputs (6)

      NameTypeDefaultDescription
      source_image_rootSTRINGRoot folder containing HandpickerSuite / GM Image Saver images. Empty = ComfyUI output folder.
      target_formatCOMBOOGN-ModelManager1 options: OGN-ModelManager
      max_sizeINT51264–4096Maximum thumbnail width/height. Shrink only.
      jpeg_qualityINT901–100JPEG quality for generated thumbnails.
      operationCOMBOinstall_missing2 options: install_missing, uninstall_managed
      run_modeCOMBOdry_run2 options: dry_run, execute

      Outputs (0)

      No outputs