Checkpoint Loader with Name (Image Saver)
A normal loader that also hands you the filename
- MODEL
- CLIP
- VAE
- model_name
It's the stock "Load Checkpoint" node with one extra output: the checkpoint's name as a string. That sounds trivial until you realize the whole Image Saver pack depends on you telling the saver exactly which model you used - and the cleanest way to get that name is straight from the node that loaded it. So instead of typing your checkpoint filename into the saver by hand (and misspelling it, and breaking Civitai's resource matching), you load it here and wire the name output into the saver's modelname.
If you're building a metadata-accurate pipeline, this replaces your ordinary checkpoint loader. Same load, free filename.
How it works
Under the hood it loads a checkpoint exactly like ComfyUI's built-in loader - it pulls the MODEL, CLIP and VAE out of the .safetensors file. The only addition is that it also returns the filename you selected as a text string. That string is what the saver hashes and records, guaranteeing the metadata names the real file rather than whatever you remembered to type. It's a small quality-of-life change with an outsized payoff: accurate model attribution is the difference between a Civitai upload that links your checkpoint and one that doesn't.
The inputs and outputs that matter
- ckpt_name (required) - the dropdown of checkpoints in your
models/checkpointsfolder. Pick your model, same as always.
Outputs:
- MODEL / CLIP / VAE - wire these into your sampler, text encoders and VAE decode exactly as you would from the standard loader.
- model_name - the string to feed into an Image Saver / Image Saver Metadata
modelnameinput.
That's the entire node. No hidden knobs.
Installing it
ComfyUI Manager: search ComfyUI Image Saver, install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/alexopus/ComfyUI-Image-Saver
cd ComfyUI-Image-Saver
pip install -r requirements.txt
Restart and hard-refresh. No extra model files - it just loads the checkpoints you already have.
Where people get tripped up
There's not much to break here, which is the point. The only real "gotcha" is forgetting to actually use the model_name output - people swap in this loader, wire MODEL/CLIP/VAE, and leave the name dangling, which gets you nothing over the stock loader. Connect the name to your saver.
Also worth knowing: this loads full checkpoints (SD 1.5, SDXL, and any single-file .safetensors checkpoint). If you're running a model that ships as a separate diffusion/UNet file - a lot of the Flux-era and GGUF-quantized models do - you want the pack's UNet loader with Name instead, which does the same name trick for that kind of file. Match the loader to how your model is packaged and the filename output does the rest - checkpoint here, standalone UNet there.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| ckpt_name | COMBO | checkpoint |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | U-Net model (denoising latents) |
| CLIP | CLIP | CLIP (Contrastive Language-Image Pre-Training) model (encoding text prompts) |
| VAE | VAE | VAE (Variational autoencoder) model (latent<->pixel encoding/decoding) |
| model_name | STRING | checkpoint name |