Nodes/comfyui-rapidfire/Cached Checkpoint
ComfyUI Node

Cached Checkpoint

Stop Re-Loading the Same Model Every Run

By Zeks·Created 2 years ago·Updated 9 months ago· 3
Cached Checkpoint
    • MODEL
    • Model name
    • CLIP
    • VAE
    ckpt_name

    Every ComfyUI user has watched the same small agony: you bump a slider, queue a run, and ComfyUI spends twenty seconds grinding through the checkpoint load before a single image appears. Load checkpoint from disk is expensive - a multi-gigabyte model read, parsed, and moved to the GPU - and in a batch or iteration workflow you can do it dozens of times in a row with the same model.

    Cached Checkpoint is the pack's answer: it behaves like the stock Load Checkpoint but keeps the loaded model on the node instance, and if you ask it for the same checkpoint again, it hands back the cached copy instead of touching the disk. In a workflow that cycles through models, that turns repeated reloads into near-instant pass-throughs.

    How it works

    The node loads via the same comfy.sd.load_checkpoint_guess_config call the built-in loader uses, then remembers the checkpoint path it loaded. On the next execution it compares the requested ckpt_name against what it already has - match, and it returns the cached (MODEL, name, CLIP, VAE) tuple; different name, and it loads the new one and caches that instead.

    Two things to know about the cache:

    • It's per node instance. Two separate Cached Checkpoint nodes don't share state, so each one caches independently.
    • It holds the model resident. That's the trade for speed - the loaded checkpoint sits in memory until you switch to a different one, so if you're memory-starved, a graph full of these keeps more resident than ComfyUI's default loader would.

    The extra Model name output is a string (the checkpoint's filename) that returns alongside the MODEL, CLIP and VAE - handy when you're batching multiple checkpoints and want to record which one a given output came from.

    What you set

    Just the one input:

    • ckpt_name - the checkpoint to load, picked from your checkpoints folder. The author's own tooltip says it plainly: "The name of the checkpoint (model) to load."

    Outputs: MODEL, Model name (string), CLIP, VAE - wire them exactly like you would a stock loader.

    Where this shines is pairing with the pack's MultiModel samplers: they do their own internal caching, but if you're loading a base checkpoint for conditioning while the sampler iterates other models, Cached Checkpoint stops that base from being re-read on every queue run.

    Install

    Ships with comfyui-rapidfire, no extra Python deps, no model downloads - it loads whatever's in your models/checkpoints. Get the pack via ComfyUI Manager (search "comfyui-rapidfire") or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Zeks/comfyui-rapidfire
    

    then restart ComfyUI. If you're only generating single images, the stock loader is fine and this is overkill - this node pays for itself the moment your workflow starts loading the same model twice.

    Categorysd

    Inputs (1)

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

    Outputs (4)

    NameTypeDescription
    MODELMODEL
    Model name*
    CLIPCLIP
    VAEVAE