Nodes/ComfyUI-CheckpointHandpickerSuite/Checkpoint Tag Export / Import
ComfyUI Node

Checkpoint Tag Export / Import

Back up your checkpoint review verdicts before you break the drive

By ruminar·Created 3 months ago·Updated a day ago· 3
Checkpoint Tag Export / Import
      tag_transfer_directory

      If you've gone all in on CheckpointHandpickerSuite's review workflow - cycling checkpoints, tagging the keepers with 👑 god / 💛 favorite / 👍 nice / ✔ keep / 🗑 delete - you've built up a judgement database that lives in a state file inside ComfyUI. Lose the install, or swap machines, and every verdict you hand-picked goes with it. Checkpoint Tag Export / Import is the backup button for that database. One click dumps your evaluations to a portable JSON; one click on the new machine restores them.

      It's the quietest node in the suite: no outputs, no wiring, and its Python class literally does nothing (noop). All the work happens in the frontend - the node draws an Export and an Import button on itself and talks to the suite's backend API. You add it to a graph, hit a button, and the result (a full per-checkpoint report) appears in the panel under the buttons. It's a management tool you drop into any tab, not a link in your generation chain.

      The one input that matters

      The only field in info_schema is tag_transfer_directory, and it's saved with your workflow. Leave it empty and it uses ComfyUI/output/CheckpointHandpickerSuite/ (shown as a placeholder). The catch: if you type a custom path, it must be an existing full path - local absolute or UNC/network share both work, but a missing directory is an error. It won't create it for you, and it won't silently fall back to the default. That's the whole input story.

      How export and import actually behave

      Export snapshots your current evaluations and writes checkpoint_tags_YYYYMMDD_HHMMSS.json into that directory. Each record is deliberately stripped to three portable fields:

      {
        "file_name": "modelA.safetensors",
        "file_size": 6847213568,
        "tag": "favorite"
      }
      

      No paths, no file timestamps - that's what makes the file portable between machines and review PCs. The file is written to a temp name and renamed into place, with a short-lived reservation so two PCs sharing a network folder don't stomp each other's export.

      Import is where the identity rules bite. Checkpoints are matched by exact file name + file size, not by path or content. So:

      • Rename a checkpoint and its tag comes back as Missing.
      • Two different checkpoints sharing a name and byte size collide as Ambiguous (and if two evaluations disagree, the export omits them entirely).
      • If your current tag differs from the imported one, that's a Conflict - your current tag wins, which is the safe default.

      Also note the delete safety valve: an imported delete tag never creates a deletion reservation and never deletes a file. If you want that checkpoint on the chopping block after an import, toggle delete off and on again in the Status Tagger. The suite is review-first to the end.

      Install and troubleshooting

      Zero Python dependencies - nothing to pip, no models to download. Via ComfyUI Manager, search "Checkpoint Handpicker Suite", or:

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

      then restart ComfyUI.

      Real failure modes, from the docs and source: import grabs the newest timestamped file and won't fall back if it's invalid; a custom directory that doesn't exist errors out; and the backend rejects a second export/import while one is running (you'll see BUSY). Every operation prints a readable report in the node's result panel - read it before you trust an import, because Imported / Unchanged / Conflict counts are the difference between "restored" and "partially restored".

      Honest verdict: it's a backup utility for a niche review workflow, and it's the one you'll appreciate exactly twice - right after a fresh install, and when a 200-checkpoint folder disappears. For the rest of the time, it just sits there quietly being reliable.

      Categorycheckpoint/handpicker

      Inputs (1)

      NameTypeDefaultDescription
      tag_transfer_directorySTRING

      Outputs (0)

      No outputs