Nodes/Sage Utils/Checkpoint Selector
ComfyUI Node

Checkpoint Selector

Pick a model for metadata without loading it into VRAM

By arcum42·Created 2 years ago·Updated 28 days ago· 33
Checkpoint Selector
    • model_info
    ckpt_name

    Here's the trap Sage Utils exists to get you out of. You want your output PNG to record which checkpoint generated it, in the A1111/Civitai metadata format everyone recognizes. But a checkpoint loader loads gigabytes into VRAM, and if you already loaded the model elsewhere in the graph, loading it again just to read its name and hash is pure waste. Checkpoint Selector solves that by doing the selection without loading anything: it hands back a MODEL_INFO bundle - name, hash, Civitai details - and nothing else.

    That's the whole mechanism, and it's the important part. The node is a dropdown of your checkpoints (ckpt_name) with a single model_info output. Selecting an entry queries the pack's model-info system, which hashes and looks up the file (Civitai data cached locally in sage_cache_hash.json / sage_cache_info.json under your ComfyUI user folder). No model weights ever touch the GPU. The model_info output is exactly what the metadata constructor wants, and it can also be chained into the pack's Model + LoRA Stack Loader to do the actual loading later with full knowledge of what it loaded.

    So the mental model: selectors choose and describe, loaders load. In a Sage Utils workflow you typically have Checkpoint Selector (and its siblings for CLIP and VAE) feeding metadata, while a separate loader actually brings the weights in. If you're only generating and don't care about stamped metadata, you don't need this node at all - the plain Load Checkpoint does the job. But the moment "workflow included" metadata matters to you - and it does, because that's how this community shares and how Civitai reads your params - this is the node that gives you checkpoint identity without paying the VRAM cost twice.

    One honest note about the pack it lives in: Sage Utils is a small, personal project. The author has said in a community thread that he mostly maintains it for himself, so the polish is real but the user base is thin. What that means practically: the selector dropdown is generated from your models folder, so it always matches your install - no stale lists. And because the info bundle is just data, this node is cheap to keep in a workflow permanently, which is exactly how it's meant to be used.

    The inputs that matter

    • ckpt_name - the only input. A dropdown populated from your models/checkpoints folder.

    Install

    ComfyUI Manager → search Sage Utils → install → restart. Manual:

    cd ComfyUI/custom_nodes
    git clone https://github.com/arcum42/ComfyUI_SageUtils.git
    cd ComfyUI_SageUtils && pip install -r requirements.txt
    

    Restart ComfyUI. No model downloads from the pack; the only dependency is dynamicprompts. First run on a fresh checkpoint may hit Civitai once to populate the cache - after that it's local.

    CategorySage Utils/selector

    Inputs (1)

    NameTypeDefaultDescription
    ckpt_nameCOMBOChoose a checkpoint model to load.

    Outputs (1)

    NameTypeDescription
    model_infoMODEL_INFOModel info bundle for the selected checkpoint.