Nodes/Craftgear Nodes/Checkpoint Selector
ComfyUI Node

Checkpoint Selector

Stop scrolling the checkpoint dropdown — pick from a searchable 20-slot board instead

By craftgear·Created 8 months ago·Updated 6 months ago· 1
Checkpoint Selector
    • model
    • clip
    • vae
    ckpt_name_1
    slot_active_1true
    ckpt_name_2
    slot_active_2false
    ckpt_name_3
    slot_active_3false
    ckpt_name_4
    slot_active_4false
    ckpt_name_5
    slot_active_5false
    ckpt_name_6
    slot_active_6false
    ckpt_name_7
    slot_active_7false
    ckpt_name_8
    slot_active_8false
    ckpt_name_9
    slot_active_9false
    ckpt_name_10
    slot_active_10false
    ckpt_name_11
    slot_active_11false
    ckpt_name_12
    slot_active_12false
    ckpt_name_13
    slot_active_13false
    ckpt_name_14
    slot_active_14false
    ckpt_name_15
    slot_active_15false
    ckpt_name_16
    slot_active_16false
    ckpt_name_17
    slot_active_17false
    ckpt_name_18
    slot_active_18false
    ckpt_name_19
    slot_active_19false
    ckpt_name_20
    slot_active_20false
    model_json{}

    If you've ever loaded a workflow that should use realisticVision and quietly run it on whatever was left in the dropdown, this node is for you. The stock ComfyUI Load Checkpoint gives you one giant dropdown of every model in your checkpoints folder, no preview, no search, and no way to quickly flip between the three or four checkpoints you actually rotate through. Craftgear's Checkpoint Selector replaces that with a board of up to 20 slots, each with a radio button, a searchable picker, and a hover-zoom preview. Pick the active slot, and the node loads that checkpoint for you.

    How it works

    Under the hood it's not doing anything clever with the model - that's the point. It's a wrapper around the exact same load_checkpoint_guess_config call ComfyUI's standard loader uses, so you get model, clip, and vae outputs that wire straight into your KSampler. The cleverness is all in the UI.

    Each of the 20 slots is a pair of hidden widgets: ckpt_name_N (the actual dropdown) and slot_active_N (a boolean that's true when that slot's radio is selected). Slot 1 is active by default; clicking a radio flips the active flag. Click a slot's label and a dialog opens with every checkpoint in folder_paths.get_filename_list("checkpoints"), a search box that filters instantly, arrow-key navigation, Enter to select, Esc to close. The selected checkpoint's preview image - any .png/.jpg/.jpeg/.webp sitting beside the model file - shows on the right of the node, with hover zoom when enabled.

    There's also an optional model_json input. Feed it the model json output from this pack's A1111 Metadata Reader and the node resolves the checkpoint by name from that JSON instead of using the radio slots, matching on filename or stem if needed. That's the start of a "pull a Civitai image's exact settings back into your graph" loop.

    The inputs and outputs that matter

    • ckpt_name_1ckpt_name_20 - hidden dropdowns, one per slot. You normally never touch these; the dialog writes to them.
    • slot_active_1slot_active_20 - the radio state. Only one is true.
    • model_json (optional) - a JSON string with a checkpoint name, from the reader node above.

    Outputs are model, clip, vae - same as the stock loader, wired the same way.

    Two settings live under Settings > craftgear > Checkpoint Selector: fontSize (default 16) for the dialog and row labels, and previewZoomScale (default 2, minimum 1) for the hover zoom.

    Install

    Search craftgear in ComfyUI Manager's Custom Nodes Manager and install a numbered version - the README warns that picking nightly in the version screen fails on security restrictions. Or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/craftgear/comfyui-craftgear-nodes
    

    Restart ComfyUI. No model downloads, no pip dependencies - the pack ships zero Python deps and a prebuilt frontend, so this is about as clean an install as custom nodes get.

    Where people get burned

    • "Checkpoint not found" on load. The node validates every slot against your current checkpoints folder. If you deleted a model after saving the workflow, a slot still pointing at it fails validation. Click the slot, pick something that exists, or clear it.
    • "No preview." It can only show a preview if there's an image next to the model file. Name it to match the checkpoint stem - mymodel.preview.png, mymodel_01.jpg - and files with preview or thumb in the name win. If you don't keep previews beside your checkpoints, the row UI still works; you just get placeholder text.
    • Huge checkpoint lists take a moment to render in the dialog. Annoying, not broken.
    Categorycraftgear/checkpoints

    Inputs (41)

    NameTypeDefaultDescription
    ckpt_name_1COMBO1 options:
    slot_active_1BOOLEANtrue
    ckpt_name_2COMBO1 options:
    slot_active_2BOOLEANfalse
    ckpt_name_3COMBO1 options:
    slot_active_3BOOLEANfalse
    ckpt_name_4COMBO1 options:
    slot_active_4BOOLEANfalse
    ckpt_name_5COMBO1 options:
    slot_active_5BOOLEANfalse
    ckpt_name_6COMBO1 options:
    slot_active_6BOOLEANfalse
    ckpt_name_7COMBO1 options:
    slot_active_7BOOLEANfalse
    ckpt_name_8COMBO1 options:
    slot_active_8BOOLEANfalse
    ckpt_name_9COMBO1 options:
    slot_active_9BOOLEANfalse
    ckpt_name_10COMBO1 options:
    slot_active_10BOOLEANfalse
    ckpt_name_11COMBO1 options:
    slot_active_11BOOLEANfalse
    ckpt_name_12COMBO1 options:
    slot_active_12BOOLEANfalse
    ckpt_name_13COMBO1 options:
    slot_active_13BOOLEANfalse
    ckpt_name_14COMBO1 options:
    slot_active_14BOOLEANfalse
    ckpt_name_15COMBO1 options:
    slot_active_15BOOLEANfalse
    ckpt_name_16COMBO1 options:
    slot_active_16BOOLEANfalse
    ckpt_name_17COMBO1 options:
    slot_active_17BOOLEANfalse
    ckpt_name_18COMBO1 options:
    slot_active_18BOOLEANfalse
    ckpt_name_19COMBO1 options:
    slot_active_19BOOLEANfalse
    ckpt_name_20COMBO1 options:
    slot_active_20BOOLEANfalse
    model_jsonoptSTRING{}

    Outputs (3)

    NameTypeDescription
    modelMODEL
    clipCLIP
    vaeVAE