Nourivex Checkpoint Hub XL
A checkpoint loader that refuses to load the wrong model by accident
- MODEL
- CLIP
- VAE
- checkpoint_used
- available_checkpoints
The problem this node exists to solve is the most embarrassing five minutes in ComfyUI: you've got forty checkpoints in the folder, you click the dropdown, and somewhere in that list you pick an SD 1.5 model while running an SDXL pipeline. The sampler doesn't complain - the latent shapes don't line up, so you get noise, or an image that's wrong in a way you can't quite name. Nourivex Checkpoint Hub XL is a loader that tries to make that specific mistake impossible.
What it actually does
It's a thin, honest wrapper around ComfyUI's built-in CheckpointLoaderSimple, with one genuinely useful addition: auto_pick_sdxl, a boolean that defaults to true. Flip that on and the node scans your models/checkpoints folder, filters for anything with "sdxl", "sd_xl", or "xl" in the filename, then picks from a small priority list - sd_xl_base_1.0, animaginexl, "real dream", "hyper3d" - before falling back to the alphabetically first SDXL match. So with auto_pick_sdxl on, your manual checkpoint_name pick is just a suggestion; the node can override it.
That override is the whole point, and also the thing to watch. If you're deliberately loading a non-SDXL checkpoint - say, a Flux Klein model, which the pack's Flux workflow does - set auto_pick_sdxl to false, or the node will keep grabbing an SDXL checkpoint out from under you whenever one is in the folder. The README's Flux Klein workflow calls this out explicitly: auto_pick_sdxl = false.
The inputs and outputs that matter
You set exactly two things:
checkpoint_name- the combo listing every checkpoint inmodels/checkpoints. Just a normal loader dropdown.auto_pick_sdxl- the safety net described above. Leave it on for SDXL, turn it off for Flux or anything else.
Outputs are what you'd expect from a loader plus a pair of debug extras:
MODEL,CLIP,VAE- wire these into your KSampler, CLIP encoder, and VAE decode/encode exactly like you would from the core loader. Nothing exotic here; the node returns the same three objects the core loader returns.checkpoint_used(STRING) andavailable_checkpoints(INT) - the part that makes this worth having.checkpoint_usedtells you the actual filename that got loaded after any auto-pick override, andavailable_checkpointsis the count found in your folder. When a render comes out weird, that string tells you immediately whether you were even looking at the model you thought you were.
How to install it
The whole pack - this node plus nine siblings - installs in one step. Either use ComfyUI Manager and search for Nour_Comfy, or:
cd ComfyUI/custom_nodes
git clone https://github.com/Nourivex/Nour_Comfy
Then restart ComfyUI. There's no requirements.txt and nothing to download - this is a dependency-free pack of wrappers over core nodes, so install is about as painless as custom nodes get. If the nodes don't show up after restart, hard-refresh the browser and check the console log for whether the Nour_Comfy folder was detected.
Where people get burned
Two things. First, the auto-pick is a dumb keyword filter. A renamed SDXL checkpoint that dropped the "xl" from its filename won't be detected and the filter will pass it over; meanwhile a non-SDXL file with "xl" in the name will be grabbed. It's a convenience, not a classifier - check checkpoint_used when the output surprises you. Second, as noted, leaving auto_pick_sdxl on when you're running Flux or SD 1.5 is how you get a workflow that silently loads a model you didn't choose. The debug output is there precisely so you can catch it.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| checkpoint_name | COMBO | sd_xl_base_1.0.safetensors | 1 options: sd_xl_base_1.0.safetensors |
| auto_pick_sdxl | BOOLEAN | true | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |
| CLIP | CLIP | — |
| VAE | VAE | — |
| checkpoint_used | STRING | — |
| available_checkpoints | INT | — |