Nodes/RocM Ninodes/ROCm Checkpoint Loader
ComfyUI Node

ROCm Checkpoint Loader

The checkpoint loader that remembers what it just loaded

By iGavroche·Created 11 months ago·Updated a day ago· 43
ROCm Checkpoint Loader
    • MODEL
    • CLIP
    • VAE
    ckpt_name
    use_cachetrue
    force_reloadfalse
    compatibility_modefalse

    ROCm Checkpoint Loader is a drop-in for ComfyUI's stock Load Checkpoint that keeps one trick up its sleeve: an in-memory cache. Load a checkpoint, and the next time your workflow runs with the same file selected, it hands back the already-loaded MODEL, CLIP and VAE instead of grinding through disk again. That's the whole pitch, and for the right workflow it's genuinely useful.

    It sits in the ROCm Ninodes/Loaders category and behaves like any checkpoint loader you've used. Pick a file from the dropdown, then wire MODEL → your KSampler, CLIP → the CLIP Text Encode nodes, and VAE → VAE Decode. The outputs are identical in kind to stock, so you can swap it in without rewiring anything downstream.

    How it works

    Under the hood it's honest about where the heavy lifting happens: it calls ComfyUI's own load_checkpoint_guess_config, which is the same loader the stock node uses. What the pack adds is bookkeeping and diagnostics. The cache is single-slot - it only remembers the last checkpoint loaded. Switch to a different file and the old entry is evicted (with a gentle memory cleanup so a unified-memory APU like Strix Halo doesn't slowly fill up), then the new one is cached. That design means the cache pays off on repeat runs of the same checkpoint - API calls, queued batches, iterative workflow tweaks - and does nothing for you if you bounce between ten different models all day.

    It also sniffs the filename for quantized markers (fp8, int8, int4, gguf) and logs a note not to force-convert those models, since quantized weights break when you shove them into a different dtype. And it prints memory status before and after the load, which is handy the first time you're diagnosing an OOM on a big file.

    The inputs that matter

    You mostly touch two of these:

    • use_cache (default on) - the whole point of the node. Leave it on unless you're seeing stale-state weirdness.
    • force_reload - bypasses the cache and loads from disk fresh. Flip this when you just swapped a model file out from under ComfyUI and want it picked up without a restart.

    There's also compatibility_mode (off by default), which runs extra validation on the loaded CLIP and friends for "quantized/unusual models." It's a debug switch; ignore it until something actually misbehaves. ckpt_name is just the file dropdown.

    Installing it

    This ships in the ROCm Ninodes pack, so install is the same as for every node in it. Easiest via ComfyUI Manager - search for rocm-ninodes (display name "ROCm Ninodes") - or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/iGavroche/rocm-ninodes.git
    

    Then restart ComfyUI. If you were on a v1.x copy of the pack, run the upgrade script once or you'll chase phantom "node not found" errors:

    uv run python tools/upgrade_to_v2.py
    

    The pack's actual dependencies are light - numpy, Pillow, psutil, gguf, safetensors - but the real requirement is a ROCm build of PyTorch. On a gfx1151 (Strix Halo) box the README points at the AMD ROCm nightly index. No model downloads come from the pack itself.

    The honest version

    The "ROCm-optimized" label on this one oversells slightly: the loading itself is ComfyUI's stock code, and a fast machine won't get faster loads. What you get is a cache, cleaner logs, and quantized-model awareness - all aimed at the API/automation crowd and at AMD boxes where repeated loads churn unified memory. If you load one checkpoint per session by hand, this buys you almost nothing over stock. If you batch or script, the cache is exactly the feature you were missing.

    CategoryROCm Ninodes/Loaders

    Inputs (4)

    NameTypeDefaultDescription
    ckpt_nameCOMBOCheckpoint file to load
    use_cacheoptBOOLEANtrueIf True and same checkpoint already loaded, return cached (model, clip, vae) without reloading
    force_reloadoptBOOLEANfalseIf True, load from disk and update cache (bypasses cache)
    compatibility_modeoptBOOLEANfalseEnable extra validation for quantized/unusual models

    Outputs (3)

    NameTypeDescription
    MODELMODEL
    CLIPCLIP
    VAEVAE