Nodes/ComfyUI-CitronNodes/Checkpoint Loader with Name (Citron Image Saver)
ComfyUI Node

Checkpoint Loader with Name (Citron Image Saver)

Stop typing your model name into the metadata by hand

By citronlegacy·Created about a year ago·Updated 22 days ago· 0
Checkpoint Loader with Name (Citron Image Saver)
    • MODEL
    • CLIP
    • VAE
    • model_name
    ◄ckpt_name▾►

    ComfyUI's stock Load Checkpoint gives you three wires: MODEL, CLIP, VAE. This one gives you four - the same three plus model_name, a string containing the checkpoint you just loaded. That fourth wire is the entire point, and it's a small, genuinely useful idea.

    Here's the problem it kills. Your save node needs to know which checkpoint made the image so it can write Model: and Model hash: into the metadata. Typing it into a text field means two places to keep in sync, and the day you swap checkpoints and forget the text field, your files start lying. The tooltip on the fourth output is just "checkpoint name" - it's the raw ckpt_name string from the dropdown, and you wire it straight into the saver's modelname input. Now the metadata follows the loader automatically.

    How it works

    The loading path is ComfyUI's own load_checkpoint_guess_config, so behaviour matches the core loader: it guesses the config, returns MODEL/CLIP/VAE and drops the CLIP-vision model that some checkpoints carry. Then it appends ckpt_name to the tuple. Nothing is hashed here - the saver does that when it resolves the name to a file.

    Because it takes the name with its extension and any subfolder, the filename template variables behave the way you'd expect: %model gives you the filename with extension, %basemodelname gives you the filename with the extension stripped (dots inside the model name survive). So %time_%basemodelname_%seed produces clean names like 2026-10-24-141530_juggernautXL_v9_447190557.png instead of dragging .safetensors into the filename.

    The one input is ckpt_name, a dropdown fed from your checkpoints folder. Outputs: MODEL (the denoiser), CLIP (the text encoder), VAE, and model_name (the string).

    That folder restriction is the catch. If you're running Flux, Wan, Qwen-Image or an SD3-style setup where the denoiser lives in diffusion_models as a separate file, this loader will not list it - those aren't checkpoints. That's what the pack's UNet loader with Name is for. Worth knowing: the saver resolves model names against both checkpoints and diffusion_models (and tolerates .gguf) when it goes looking for a file to hash, so a UNet-style filename still gets a correct Model hash: as long as the string matches what's on disk.

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/citronlegacy/ComfyUI-CitronNodes
    # restart ComfyUI
    

    Manager search may not find it - the README lists Manager support as "coming soon" and the packaging metadata is still placeholder - so the clone is the dependable route. The pack's sole pip dependency is piexif; if it's missing, every node in the pack fails to import:

    pip install piexif
    

    No models ship with this. It reads whatever's already in your checkpoints folder.

    Common issues

    • My model isn't in the dropdown. It's not in checkpoints. UNet-only releases belong under diffusion_models and need the UNet loader variant.
    • Model hash: is empty in the saved file. Either the name didn't resolve to a file, or the saver's own metadata input never got the model_name wire. Check the string actually arrived - a text-preview node on model_name confirms it in one run.
    • First save after swapping checkpoints takes a while. That's the SHA-256 pass over the new file, printed as a progress bar and cached in a .sha256 sidecar next to the model. It doesn't repeat.
    • The whole pack is missing from the node list. Missing piexif, not a problem with this node - look for the import error in the startup console.
    CategoryCitron_ImageSaver/utils

    Inputs (1)

    NameTypeDefaultDescription
    ckpt_nameCOMBOcheckpoint

    Outputs (4)

    NameTypeDescription
    MODELMODELU-Net model (denoising latents)
    CLIPCLIPCLIP (Contrastive Language-Image Pre-Training) model (encoding text prompts)
    VAEVAEVAE (Variational autoencoder) model (latent<->pixel encoding/decoding)
    model_nameSTRINGcheckpoint name