Checkpoint Loader 🔰
A checkpoint loader that shows you what you're loading
- MODEL
- CLIP
- VAE
The built-in CheckpointLoaderSimple gives you a dropdown of checkpoint filenames. If you're like me, half those filenames are realistic_merge_v8_epic_whatever.safetensors - useless. OtacooCheckpointLoader ("Checkpoint Loader 🔰") from the comfyui-otacoo pack is that same loader with the one upgrade that matters: a grid of preview images, so you pick a checkpoint by what it actually produces instead of by decoding the filename.
What it is
A drop-in for the stock checkpoint loader. It reads a full checkpoint from models/checkpoints and returns the standard three outputs - MODEL, CLIP, VAE - which wire into your graph exactly like the built-in: MODEL and CLIP feed the KSampler (CLIP through a CLIPTextEncode for your prompt), VAE into VAEEncode/VAEDecode. Behind the scenes it calls the same comfy.sd.load_checkpoint_guess_config() as the stock node, so it auto-detects SD 1.5, SDXL, and everything else the same way. There's no behavior drift here - the pack's contribution is the selector UI and one extra option.
The input worth talking about: vae_name
The extra option is vae_name, which defaults to default - meaning "use the VAE baked into the checkpoint." Leave it alone. The KB's own hard-won lesson is that the right VAE is the one the checkpoint was trained against, and modern checkpoints bake theirs in, so attaching an "upgrade" VAE to a modern model is now more often the mistake than the fix. The classic case for switching is the opposite direction: a checkpoint with a known-bad built-in VAE (blurry, blotchy output) where swapping in a separate file from models/vae is the one-click rescue. If you don't have a specific reason, default is correct.
How the previews work
When you open the ckpt_name dropdown, the pack's frontend replaces the text list with a filterable grid of thumbnails, fetched from a small /otacoo/images/checkpoints route. It looks for an image next to the checkpoint file with the same base name - realistic_merge_v8.preview.jpg or even just realistic_merge_v8.png, in the same folder, .preview.png/.jpg/.jpeg/.webp checked first, then the plain extensions. First match wins. No image, no thumbnail; the entry just shows as text.
One caveat, straight from the README: the preview grid runs on the classic LiteGraph UI. On the Nodes 2.0 / Vue UI the pack drops back to a simpler model picker - full preview support is waiting on ComfyUI's custom-node support there.
Install
It's a one-pack install that gets all four 🔰 nodes:
cd ComfyUI/custom_nodes
git clone https://github.com/otacoo/comfyui-otacoo.git
then restart. Or use ComfyUI Manager → search otacoo. There are no pip dependencies and nothing to download - the whole pack is Python wrappers around ComfyUI's own loaders plus some JS. If you use Pythongossss' Custom-Scripts "View Info" feature, add OtacooCheckpointLoader.ckpt_name.* under Settings → pysssss → ModelInfo so the right-click info works on this node too.
The pack is young (first release early 2026, essentially zero community chatter, so there's no war story to relay - just don't expect it to fix a broken checkpoint; it only makes picking them nicer). If you organize your model folders anyway, this is the upgrade that makes the file management feel worth it.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| ckpt_name | COMBO | The checkpoint model to load. | |
| vae_nameopt | COMBO | default | Use 'default' for the checkpoint's VAE, or pick a separate VAE file. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |
| CLIP | CLIP | — |
| VAE | VAE | — |