CheckpointLoaderSimpleExtended
The checkpoint loader that knows its own hash
- MODEL
- CLIP
- VAE
- CKPT_NAME
- CKPT_HASH
If you've ever uploaded an image to CivitAI and had it say "no model matched," this node is the fix. It's the boring, familiar CheckpointLoaderSimple - same dropdown, same MODEL/CLIP/VAE outputs - with one extra party trick: it also tells you the checkpoint's name and hash. That's it. That hash is the whole reason the pack exists, because CivitAI matches generation metadata to a specific model by its file hash, and the stock loader never bothers to compute one.
The pack (ComfyUI_PRNodes) is built around producing images whose embedded metadata looks like what CivitAI's own generator writes - prompt, negative, sampler, seed, and a Model hash - so that when you upload, the site recognizes your setup instead of shrugging. Everything else in the pack feeds that one goal, and this loader is the upstream that makes it possible.
How it works
Under the hood it calls the same comfy.sd.load_checkpoint_guess_config the core node uses - you're not getting a different or better model load. Then it computes a full-file SHA-256 of the checkpoint and truncates it to the first 10 hex characters. Ten characters is the A1111 convention, the same short "Model hash" format that shows up in all those shared PNGs and that CivitAI's metadata parser expects. It caches the hash per file path, so only the first load of a given checkpoint pays the cost. And that cost is real: it hashes the entire multi-gigabyte file, and the code prints hashing model... to your console while it grinds. On a big SDXL file that first load can add a noticeable pause. Second load, instant.
Inputs and outputs
Only one input you'll touch: ckpt_name, the dropdown of everything in ComfyUI/models/checkpoints.
- MODEL, CLIP, VAE - same as the core loader, wire into your sampler and conditioning.
- CKPT_NAME - the filename you picked, as a string.
- CKPT_HASH - the 10-char hash.
Those last two are pack-specific "named" types, not real values. They're meant to feed Save Image w/Metadata (also in this pack), which writes them into the PNG's CivitAI-readable comment. If you're not using that save node, these outputs are dead weight - the core loader is lighter and you don't lose anything.
Install and gotchas
Install via ComfyUI Manager (search "ComfyUI_PRNodes", it's in the Registry) or:
cd ComfyUI/custom_nodes
git clone https://github.com/pikenrover/ComfyUI_PRNodes
Then restart ComfyUI. The pack declares no pip dependencies beyond what ComfyUI core already ships, so no extra install step. It does no model downloads on its own - the checkpoint is yours.
Where people get burned: the hash is computed on first load only, so if you swap in a new checkpoint you'll see a one-time stall and wonder what broke. It didn't - it's hashing. And remember the 10-char hash is a short hash; for a giant file that's plenty to identify it on CivitAI, but if you were hoping for the full 64-char SHA-256 for some forensic purpose, this isn't the node that hands it to you.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| ckpt_name | COMBO | 0 options: |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |
| CLIP | CLIP | — |
| VAE | VAE | — |
| CKPT_NAME | CKPT_NAME | — |
| CKPT_HASH | CKPT_HASH | — |