Load Checkpoint (Umbra Lab)
One loader for checkpoints, diffusers, UNets, and GGUF — no juggling nodes
- model
- clip
- vae
- model_name
Five loader nodes that all look the same but each know one model format - that's the stock ComfyUI situation, and it's exactly the friction this node removes. Load Checkpoint (Umbra Lab) is a unified loader with a model_type dropdown that switches between checkpoint, diffusers, diffusion_model, unet, and gguf. Pick the type, pick the file, and it returns model, clip, vae, plus a model_name string for metadata. One node in your graph instead of "which of the five did I use here."
How it works
The five modes map onto the loaders you already know:
- checkpoint - the classic merged SD1.5/SDXL/etc.
.safetensorsviaload_checkpoint_guess_config, returning full model + CLIP + VAE. - diffusers - a diffusers directory (one with a
model_index.json), discovered automatically from yourmodels/diffusersfolder. Same full model+CLIP+VAE payload. - diffusion_model and unet - bare diffusion weights (the
flux1-dev.safetensorsstyle single file inmodels/diffusion_models, or a UNet inmodels/unet). These come back with CLIP and VAE asNone- you have to provide those from elsewhere, which is the standard Flux-style split setup. - gguf - quantized
.ggufdiffusion models. This is the Flux-on-12GB path from the KB's GGUF panel (Q8 is basically fp16 at half the size). Important caveat: it requires ComfyUI-GGUF installed, because the node delegates to GGUF'sUnetLoaderGGUF. Without that pack, the dropdown may be empty and GGUF mode raises a clear error telling you so.
There's also a weight_dtype selector with fp8_e4m3fn, fp8_e4m3fn_fast, and fp8_e5m2 options for the diffusion-model/UNet paths - a quick way to get fp8 loading without a separate fp8 wrapper.
What you actually set
- model_type - the format you're loading. This is the one that matters; everything else is keyed off it.
- Then exactly one of the four name fields -
checkpoint_name,diffusers_model,diffusion_model_name,unet_name,gguf_name- fills in from your installed models. The others sit ignored. - weight_dtype - leave
defaultuntil you know you want fp8.
Installing it
Ships in Umbra-Nodes, the ComfyUI companion pack for Umbra Studio. ComfyUI Manager → search "Umbra Nodes", or:
cd ComfyUI/custom_nodes
git clone https://github.com/Nocturne-Ai-Labs/Umbra-Nodes
Restart ComfyUI. No pip deps of its own. GGUF mode needs the separate ComfyUI-GGUF pack; everything else works against stock ComfyUI and whatever model files you already have in the standard folders.
Gotchas
The None CLIP/VAE on diffusion_model and unet modes trips people constantly - the node returns them as None, not error, so a downstream CLIP Text Encode fails confusingly until you wire in a separate CLIPLoader/VAELoader. That's normal for Flux-style stacks, not a bug. Second: gguf_name's dropdown only shows files ComfyUI-GGUF can see, so if your .gguf isn't appearing, the pack isn't installed or the file isn't in a diffusion_models/unet folder. And one nice behavior worth knowing: leave a name field empty and it quietly picks the first file it finds in the folder, which is a reasonable "just load something" default for testing.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| model_type | COMBO | checkpoint | 5 options: checkpoint, diffusers, diffusion_model, unet, gguf |
| checkpoint_name | COMBO | 2 options: , [None] | |
| diffusers_model | COMBO | 2 options: , [None] | |
| diffusion_model_name | COMBO | 2 options: , [None] | |
| unet_name | COMBO | 2 options: , [None] | |
| gguf_name | COMBO | 3 options: , default, [None] | |
| weight_dtype | COMBO | default | 8 options: default, fp8_e4m3fn, fp8_e4m3fn_fast, fp8_e5m2, False, True, +2 |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| clip | CLIP | — |
| vae | VAE | — |
| model_name | STRING | — |