Nodes/ComfyUI Emotional Gallery/Checkpoint · ComfyUI Emotional Gallery
ComfyUI Node

Checkpoint · ComfyUI Emotional Gallery

Load Checkpoint that notices you swapped the file

By nikminer·Created about a month ago·Updated 16 days ago· 0
Checkpoint · ComfyUI Emotional Gallery
    • MODEL
    • CLIP
    • VAE
    ◄ckpt_name▾►

    EGCheckpointLoader looks exactly like ComfyUI's stock Load Checkpoint: one dropdown of checkpoint filenames, three outputs - MODEL, CLIP, VAE. If you saw the two side by side you wouldn't spot the difference.

    There is one, and it's in the caching.

    What it actually changes

    The class is a subclass of CheckpointLoaderSimple with the loading code untouched. The only thing overridden is IS_CHANGED, which returns a fingerprint of the file instead of the filename:

    {"path": ".../sd_xl_base_1.0.safetensors", "size": 6930040448,
     "mtime_ns": 1733..., "ctime_ns": 1733...}
    

    The source comment spells out why: a replacement at the same filename must invalidate its previews.

    This is a real, boring, frequently-reported annoyance. ComfyUI caches node execution keyed on the input values - for a loader, that value is the string in the dropdown. Download a new build of your favourite Illustrious merge, drop it over the old file with the same name, hit queue, and the engine looks at ckpt_name, sees it hasn't changed, and reuses everything downstream. You get an old-looking image and no error. Users end up renaming files to -v2, -v2-FINAL, -v2-fixed purely to force a reload.

    The file-identity hash kills that. Swap the bytes and the node re-runs.

    Why it's here

    The gallery keys every cached expression preview to an identity built from the model files - resolved path, size, mtime, ctime - plus prompts, strengths, seed and sampling settings, then hashes it into a 32-character set id. A new checkpoint at the same path is therefore a new set, not a mutation of the old one. That contract only holds if the loader re-executes when the file changes, hence this node.

    The gallery uses it for every checkpoint-based model profile: Illustrious / NoobAI, Pony, SDXL and SD 1.5. Flux, Qwen Image, Z-Image and Anima are split-file architectures and use the separate diffusion/encoder/VAE loaders instead.

    Inputs and outputs

    • ckpt_name - a file from ComfyUI/models/checkpoints. Your .safetensors and .ckpt files show up here; nothing else does.
    • MODEL - what the sampler denoises with.
    • CLIP - the text encoder bundled in the checkpoint, feeding your CLIPTextEncode.
    • VAE - the bundled decoder, feeding VAEDecode.

    That's the complete surface. No weight_dtype, no force-reload toggle, no bypass switch. If you need dtype control you're in the wrong node - the gallery's split profiles use EGDiffusionLoader for that.

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/nikminer/ComfyUI-Emotional-Gallery.git comfyui_emotional_gallery
    

    Restart ComfyUI, Ctrl+F5. No dependencies to install and no models downloaded - the pack runs on what you already have. It's in ComfyUI Manager as "ComfyUI Emotional Gallery" too.

    Note the category: this node is filed under Emotional Gallery/internal and the pack's frontend hides it from the Add Node menu and search along with the other eight. It remains registered, so workflows containing it load and execute; you just can't browse to it. That's by design - the gallery is the interface, and these loaders exist so the generated graphs behave consistently.

    Common issues

    The dropdown is empty. No files in ComfyUI/models/checkpoints, or you're pointing at a portable install with a different base path. Fix the files first, then restart.

    You added a checkpoint and it doesn't appear. ComfyUI lists the folder at startup; a restart (or the gallery's "Refresh models and LoRAs") picks up new files.

    It behaves nothing like Load Checkpoint for me. It should be identical on the loading side. The difference only shows when a file is replaced in place: this one re-runs, stock doesn't. If you're seeing a genuine load failure, it's the checkpoint, not the node - check that the file isn't a truncated download.

    Model loaded but images look wrong for the checkpoint. The three outputs are separate; the gallery wires the checkpoint's VAE into VAEDecode, but a hand-built graph that attaches a different VAE will drift in colour and detail. Use the one baked into the checkpoint unless you have a reason not to.

    A missing-node error on an old workflow. If ComfyUI won't load the pack at all, it's usually an out-of-date ComfyUI rather than a missing file - see the triple-encoder node's article for why this pack touches comfy_extras at import time.

    CategoryEmotional Gallery/internal

    Inputs (1)

    NameTypeDefaultDescription
    ckpt_nameCOMBOThe name of the checkpoint (model) to load.

    Outputs (3)

    NameTypeDescription
    MODELMODELThe model used for denoising latents.
    CLIPCLIPThe CLIP model used for encoding text prompts.
    VAEVAEThe VAE model used for encoding and decoding images to and from latent space.