Nodes/ComfyUI-LZNodes/LZ Simple Checkpoint Loader
ComfyUI Node

LZ Simple Checkpoint Loader

The lean loader that also gives you a pipe and a hash

By liz-ils·Created 7 months ago·Updated 12 days ago· 1
LZ Simple Checkpoint Loader
    • MODEL
    • CLIP
    • VAE
    • lz_pipe
    • ckpt_name
    • ckpt_hash
    ckpt_name

    Stock ComfyUI's checkpoint loader hands you MODEL, CLIP, and VAE and calls it a day. LZ Simple Checkpoint Loader does the same thing, then keeps three extra facts about the load that this pack's ecosystem wants: it also emits a ready-made lz_pipe, the checkpoint's file name, and a short hash of the file.

    The "Simple" is doing real work in the name. Unlike the pack's EZCheckpointLoader, this one does not encode prompts or build conditioning - you get the raw components and nothing else. It's strictly for extracting model pieces, which is exactly what the README says. If you just want to feed a checkpoint into your own prompt-encoding setup or drop it into a pipe, this is the node.

    The outputs

    • MODEL, CLIP, VAE - the three components, identical in nature to any stock loader's.
    • lz_pipe - a bundle with model, clip, vae, ckpt_name, and ckpt_hash already packed, so you can wire it straight into LZPipePack, a LoRA stacker, or LZSaveImageAndLog without manually packing.
    • ckpt_name - the file name you selected.
    • ckpt_hash - the first 10 hex characters of the file's SHA-256.

    That hash is the interesting bit, and it's a genuinely useful feature: because the pipe carries it, LZSaveImageAndLog prints it in your log file, giving you a fingerprint of exactly which checkpoint file produced an image - even after the filename gets lost or a folder gets reorganized. It's short-hash (10 chars), not full SHA-256, so treat it as "almost certainly this file," not "mathematically this file."

    The cost of the hash

    Here's the trade-off the README won't tell you: computing SHA-256 means reading the entire checkpoint file the first time a given file is used. On a 6 GB model that's a few seconds of disk I/O the very first load. After that it's cached - the pack remembers (file mtime, hash) per file and only rehashes when the file changes - so it's a one-time tax per checkpoint, not per run. If you load a brand-new checkpoint and wonder why that first generation took a few seconds longer than usual, that's this node earning its provenance.

    One honest note on scope

    It uses ComfyUI's load_checkpoint_guess_config, the same path the stock loader uses, so it handles SD 1.5, SDXL, and their finetunes fine. For architectures where components load separately (Anima, and the "diffusion model / text encoder / VAE" split the pack's own LZAnimaLoader exists for), this node isn't the tool - it's for merged checkpoints. And because it doesn't create conditioning, you'll still need a CLIPTextEncode (or the pack's DualCLIPTextEncode) between the CLIP output and your sampler.

    Installing it

    Part of the ComfyUI-LZNodes pack:

    cd ComfyUI/custom_nodes
    git clone https://github.com/liz-ils/ComfyUI-LZNodes
    

    Restart ComfyUI, or install via ComfyUI Manager by searching "ComfyUI-LZNodes". No requirements.txt, no model downloads - it leans entirely on ComfyUI's built-in checkpoint loading.

    CategoryMyCustomNodes/Loaders

    Inputs (1)

    NameTypeDefaultDescription
    ckpt_nameCOMBO0 options:

    Outputs (6)

    NameTypeDescription
    MODELMODEL
    CLIPCLIP
    VAEVAE
    lz_pipeLZ_PIPE
    ckpt_nameSTRING
    ckpt_hashSTRING