Nodes/ComfyUI-GadgetNodes/Load Checkpoint or Diffusion Model
ComfyUI Node

Load Checkpoint or Diffusion Model

One loader for two kinds of model

By 2daadv·Created 6 months ago·Updated 21 days ago· 1
Load Checkpoint or Diffusion Model
    • model
    • clip
    • vae
    model_name
    clip_type
    clip_skip-2
    clip_name
    vae_name

    Modern ComfyUI has a weird seam in it: old-style checkpoints (the complete model files, VAE and text encoder baked in) and new-style diffusion models (bare UNet-style weights, no text encoder, no VAE - think Flux and friends) are stored in different folders and loaded by different nodes. Most people end up with two loaders in their workflow or swap nodes by hand depending on the day. Load Checkpoint or Diffusion Model is one loader that looks at which folder the file lives in and loads it the right way, automatically.

    The mechanism is where this node earns its keep. It lists both checkpoints/ and diffusion_models/ in one dropdown, then branches on which one you picked:

    • Checkpoint path: it calls ComfyUI's standard load_checkpoint_guess_config, which guesses the architecture from the file and returns the model, CLIP, and baked-in VAE.
    • Diffusion model path: it loads the bare weights with load_diffusion_model, then loads the CLIP from the separate text_encoders folder and the VAE from vae. There's no baked VAE to lean on, so the node validates that you've picked both - if you try to load a diffusion model with clip_name: None or vae_name: None, it refuses with a clear error instead of exploding halfway through the graph.

    In both cases it applies the clip_skip (a negative number, default -2, range -9 to 0) by cloning the CLIP and skipping that many layers - which is an SD-family concept; see concepts.md for why the LLM-encoder models (Flux, Z-Image) don't have clip skip at all.

    The inputs that matter:

    • model_name (required) - dropdown of every checkpoint and diffusion model. This is the one you'll actually change.
    • clip_type (required) - ComfyUI's CLIPType list (stable_diffusion, flux, sd3, hunyuan_video, ltxv, …), 35 choices. This matters for diffusion models, where you're telling it what the separate text encoder is for; for checkpoints the type is guessed.
    • clip_skip (required) - default -2, the classic anime-model preference.
    • clip_name / vae_name (optional) - the separate text encoder and VAE files. Mandatory in practice when the model is a diffusion model - the validation error will tell you exactly that.

    Outputs are the standard trio: model (MODEL), clip (CLIP), vae (VAE) - wire them into your sampler, text encoder, and VAE decode as usual.

    Honest takes:

    • It's a convenience loader, not a super-loader. It won't handle every exotic case the specialist nodes do, and for checkpoints it's mostly a wrapper around ComfyUI's own loader with a combined dropdown. The real value is the diffusion-model branch: one place, clear validation, no more "which loader does this need" archaeology.
    • Diffusion models are the modern reality. More and more releases ship as bare diffusion weights + separate encoder, so this node is forward-looking rather than retro. If you mainly run SDXL checkpoints, it's a nice-to-have; if you run Flux-class models, it's the daily driver.
    • No frontend JS. Unlike the pack's editor nodes, this one is pure Python, so it behaves the same on the legacy canvas and Nodes 2.0.

    The pack (2daadv/ComfyUI-GadgetNodes, MIT, one developer, brand new with no community reputation yet) installs via ComfyUI Manager - search "GadgetNodes" - or git clone https://github.com/2daadv/ComfyUI-GadgetNodes into custom_nodes/, pip install -r requirements.txt, restart. It sits in Gadget/model next to the preset loader and the metadata editors. If you've ever stared at a "file not found" because you dragged a diffusion model into a checkpoint loader, this node is the fix.

    CategoryGadget/model

    Inputs (5)

    NameTypeDefaultDescription
    model_nameCOMBO0 options:
    clip_typeCOMBO35 options: stable_diffusion, stable_cascade, sd3, stable_audio, hunyuan_dit, flux, +29
    clip_skipINT-2-9–0
    clip_nameoptCOMBO1 options: None
    vae_nameoptCOMBO1 options: None

    Outputs (3)

    NameTypeDescription
    modelMODEL
    clipCLIP
    vaeVAE