check usage model and node
Find the ComfyUI models and nodes you're never going to use again
- STRING
Somewhere in your ComfyUI/models folder is a checkpoint you downloaded, used twice, and will never touch again. It's probably a few gigabytes. ComfyUI has no way to tell you which files are still load-bearing and which are just digital hoarding - so this little Japanese utility fills the gap.
ComfyUIUsageChecker (display name "check usage model and node") isn't a pipeline node. You don't wire it into your generation graph and you'd never leave it in a production workflow. It's a one-shot auditor: point it at a folder of workflow JSONs, run it, and it hands you a text report of every model you actually use, every model you don't, and every custom-node directory you could probably delete. The r/comfyui "why is my hard drive full" crowd has been asking for this for years; this is the closest thing to an answer.
How it actually works
Here's the honest version, straight from the source. The README claims a "resolver" that checks models through ComfyUI's folder_paths.get_full_path(). The code that ships does something simpler: it walks every folder_paths category (checkpoints, loras, vae, controlnet, clip, embeddings, unet, whatever your extra packs register), builds a case-insensitive basename map of every .safetensors, .ckpt, .pt, .pth, .bin, .onnx, and .gguf file, then recursively scans every .json in your workflow directory and pulls out all strings.
Matching is three-pass:
<lora:name>tags - auto-appends.safetensorsembedding:nameand<embedding:name>tags - auto-appends.pt- plain basename matches against the full model map
It also collects every node type it sees, maps those back to custom_nodes directories through NODE_CLASS_MAPPINGS, and flags any directory whose node types are all unused - or that defines no nodes at all - as "removable."
Same spirit as the README's pitch, less magic. This is a "does this basename exist anywhere in models/" heuristic, not forensics. For finding dead weight that's plenty.
The one input that matters
The only knob is workflow_dir, a plain string defaulting to user/default/workflows - which resolves relative to your ComfyUI install root, so the default just works. Drop in your actual workflow folder (relative paths are recommended on Windows) and hit run. The single STRING output is the whole report: used/unused models, removable node directories, and a dependency summary line. It's meant to be read, so view it in the node's output or wire it to any text-display node.
Install
No dependencies, no model downloads, no requirements.txt - the node only imports ComfyUI core (folder_paths, nodes), so it's about as safe as custom nodes get. Try ComfyUI Manager first (search the pack title); if it doesn't show up in the registry, clone it:
cd ComfyUI/custom_nodes
git clone https://github.com/masaosans/ComfyUI_usage_checker
Then restart ComfyUI. Note the README's own clone command uses ComfyUI_Usage_Checker with a capital C - GitHub redirects it, but the lowercase URL above is the real repo.
Where you'll get burned
- False "unused" flags: embedding detection only appends
.pt, so a.safetensorsembedding referenced asembedding:foowon't match and shows as unused. Same if a<lora:subfolder/name>tag uses a path - the regex stops at the slash. - Duplicate basenames collapse: if two folders hold a
foo.safetensors, the map keeps one of them. - "Removable" isn't proof: packs that register no node mappings - UI extensions, or packs that are just dependencies of other packs - get flagged as deletable even when something imports them. The README says deletion is your responsibility, and it means it. It never deletes anything itself, which is the right call; use the report as a lead, not a verdict.
Also remember it only sees what's baked into saved workflows. Models loaded on the fly by scripts or temporary loads won't be detected - that's expected, not a bug. If the report says "Unused Models: 0", congratulations, you have a problem-free node collection. The rest of us finally know which ghosts to evict.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| workflow_dir | STRING | user/default/workflows | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | — |