Checkpoint Loader with Names
The Checkpoint Loader That Tells You What It Loaded
- model
- clip
- vae
- checkpoint_name
- vae_name
Most of the time, ComfyUI's built-in Checkpoint Loader is fine. But the moment you want the name of the model you just used - baked into the PNG metadata, logged to a text file, handed to another node - you're stuck retyping it and hoping you don't drift. Checkpoint Loader with Names is the fix: it gives you the same model, clip, and vae outputs as the stock loader, plus two STRING outputs carrying the checkpoint and VAE filenames. The name follows the file you picked, automatically.
It ships in ComfyUI-ImageWithMetadata, a small MIT pack by shin131002 built around batch image load/save with metadata (the loader logic is lifted from WAS Node Suite's BatchImageLoader, a proven, stable pattern). The whole pack exists so generation parameters - prompts, seed, steps, CFG, and the model names - survive a round-trip. This node is the model-name half of that promise.
What it actually does
Reading the source: it's a thin wrapper, and it stays thin on purpose. It imports ComfyUI's own CheckpointLoaderSimple, calls its load_checkpoint(), then adds the name plumbing. No new weights, no custom sampling code, nothing exotic that can rot on a ComfyUI update. If you pick a VAE from the dropdown, it also calls core VAELoader and swaps it in.
The one wrinkle: vae_name defaults to "Baked VAE", which isn't a file - it means "use the VAE baked into the checkpoint." In that case the vae_name string output is set to "<checkpoint name> (Baked VAE)" rather than a real filename. Cosmetic, but worth knowing: "Baked VAE" never appears in your logged metadata; the checkpoint's own name does.
The inputs that matter
There are only two, and you'll mostly touch one:
ckpt_name(required) - dropdown of everything in your checkpoints folder.vae_name(optional, default "Baked VAE") - the baked option, or any VAE in your vae folder.
Outputs are model, clip, vae (wire them into KSampler, CLIP Text Encode, and VAE Decode exactly like stock) plus checkpoint_name and vae_name as STRINGs. Those two strings are the whole point: feed checkpoint_name into this pack's Save Image with Metadata node and the model name lands in the output PNG's metadata automatically - no retyping, no stale hardcoded name when you switch models mid-batch.
Installing it
Search "ImageWithMetadata" in ComfyUI Manager, or:
cd ComfyUI/custom_nodes/
git clone https://github.com/shin131002/ComfyUI-ImageWithMetadata.git
Restart ComfyUI. That's the entire install - there's no requirements.txt and nothing to download, because it runs on ComfyUI's built-in libraries (numpy, torch, PIL, folder_paths). Fair warning: this is a personal project with an explicit "responses not guaranteed" support policy and a changelog that starts in early 2026. Treat it as a stable, quiet utility, not something with an active dev standing by.
Gotchas
- The name outputs only know what the dropdown said. If you rename or move the file, the dropdown refreshes on restart - but anything already written into metadata keeps the old name.
- If you load an external VAE whose filename coincidentally matches a checkpoint's baked VAE, the
vae_namestring reports the external file. Glance at it before trusting your logs. - Be honest about the value: you could type the model name into Save Image with Metadata by hand. The node earns its place when you're rotating through a folder or running batches, where hand-typing guarantees a mistake eventually. That's precisely the use case its sibling in the pack - Random Checkpoint Loader with Names - is built around.
Wire this in when reproducible metadata matters and you'll stop hardcoding filenames for good.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| ckpt_name | COMBO | 0 options: | |
| vae_nameopt | COMBO | 1 options: Baked VAE |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| clip | CLIP | — |
| vae | VAE | — |
| checkpoint_name | STRING | — |
| vae_name | STRING | — |