Checkpoint selector
Pick checkpoints with cover art, or stress-test your whole model folder on autopilot
- ui_widget
- combo
- string
- path
- image
Model selection is the most boring, repetitive decision in ComfyUI - and one of the most consequential. LF_CheckpointSelector is the LF Nodes version of the stock CheckpointLoaderSimple, built to make that choice faster and to automate the boring part.
At its core it does what you expect: pick a checkpoint from a dropdown and it emits the model for your sampler. But it does it with two upgrades. First, get_civitai_info fetches the model's cover and metadata from CivitAI and shows the checkpoint as a card, so you're choosing by looking instead of by decoding a filename like dreamshaper_8_anything-v3_merged_v2.1.safetensors. Second, there's randomization - flip randomize on and the node grabs a checkpoint at random from your folder each run.
That random pick is the feature that turns model roulette into an actual workflow. Add a filter (wildcards supported, so *realism* or *illust*) and a seed, and you can batch the same prompt across every model in a family - a genuine model A/B/C test without touching the graph between runs. This is the same testing philosophy as the pack's LF_LoraSelector, applied one level up.
The outputs
combo- the model object (the thing that connects to your KSampler, via CLIP/VAE wiring the same way as a checkpoint loader).string- the model name as text, handy for stamping into filenames or metadata.path- the full file path.image- the cover image, for when you want to display it or save it alongside results.
The inputs that matter
For a beginner, honestly just checkpoint (the dropdown) and get_civitai_info. The randomization trio - randomize, filter, seed - is for when you graduate to batch model testing. filter deserves a shout-out: without it, randomize will happily include that corrupted test file you never deleted.
Installing it
Standard LF Nodes:
cd ComfyUI/custom_nodes
git clone https://github.com/lucafoscili/comfyui-lf
or ComfyUI Manager → LF Nodes → install → restart. No extra Python dependencies, no models to download. CivitAI cover fetching needs internet but no API key.
Where people get burned
- CivitAI API wobble.
get_civitai_infohits an anonymous API that rate-limits, and the platform has reshuffled its internals since this pack froze in early 2025. Covers may occasionally fail to load - the node still works, you just lose the picture. Turn the toggle off for a quieter life. - Randomize + no filter + a big folder = a test you didn't intend. Filter first.
- It selects and loads the model - unlike a pure picker, wiring this into your sampler loads the full checkpoint into VRAM. That's expected, but it means the node does real work, not just bookkeeping.
If you juggle models, the visual card alone is worth it; the randomization is a bonus that starts paying off the first time you batch-test a prompt across your whole collection.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| get_civitai_info | BOOLEAN | true | Attempts to retrieve more info about the model from CivitAI. |
| randomize | BOOLEAN | false | Selects a checkpoint randomly from your checkpoints directory. |
| filter | STRING | When randomization is active, this field can be used to filter checkpoint file names. Supports wildcards (*) | |
| seed | INT | 420–18446744073709550000 | Seed value for when randomization is active. |
| checkpointopt | COMBO | None | Checkpoint used to generate the image. |
| ui_widgetopt | KUL_CARD | [object Object] | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| combo | — | |
| string | STRING | — |
| path | STRING | — |
| image | IMAGE | — |