Nodes/SP-Nodes/SP_ModelLoader
ComfyUI Node

SP_ModelLoader

SP_ModelLoader — the bare-bones loader when you want to wire everything else yourself

By bananasss00·Created 2 years ago·Updated a day ago· 23
SP_ModelLoader
    • sp_pipe
    • model
    • clip
    • vae
    unet_name
    weight_dtype
    vae_name
    clip_name1
    clip_name2
    clip_name3
    model_type

    The other SP loaders in this pack do everything - model, prompt, latent, the works. SP_ModelLoader is the deliberate exception: it loads the unet, the text encoder(s), and the VAE, and then stops. No prompt field, no latent, no LoRA. You get a sp_pipe, model, clip, and vae out, and you take it from there yourself.

    That sounds like less, but it's the most flexible of the five. Because it doesn't commit to a prompt or resolution, it's the node you reach for when you want to hand the model to something the specialized loaders can't do - a ControlNet rig, an img2img flow where the latent comes from an encode, a LoRA applied after loading, or a workflow where you condition with a different prompt per branch. It's also the one to use when you're building a reusable template and don't want the loader silently making assumptions about your output size.

    Mechanically it's the same group-node story as the rest of the pack: at execution time ComfyUI's GraphBuilder expands it into UNETLoader (or the GGUF/bitsandbytes variant for quantized dtypes), CLIPLoader/DualCLIPLoaderGGUF/TripleCLIPLoaderGGUF depending on how many clips you name, and VAELoader. The one dial that shapes everything is model_type (sd, sd3, flux, hunyuan_video). It does two things: it picks the clip-pairing type (so sd gets the SDXL-style DualCLIPLoader pairing), and it stamps the pipe's hidden _model_type flag. That flag matters downstream - the pack's SP_KSampler reads it to decide whether to treat the model as guidance-distilled (Flux and Hunyuan Video) and apply guidance embedding with cfg pinned at 1.0, versus a normal CFG model like SD/SDXL. Get the model_type wrong and the sampler will hand your distilled Flux a CFG 7 it can't use.

    Inputs you'll actually set:

    • unet_name - diffusion_models plus unet_gguf.
    • weight_dtype - same ladder as the sibling loaders: fp8 variants, nf4-float8_*, or gguf. For a 12B+ Flux or a video model on a mid-range card, this is where the fit-or-don't decision gets made - Q8 is effectively fp16 at half the size (see the KB's GGUF panel).
    • clip_name1 / clip_name2 / clip_name3 - one clip, two, or three. Three is the SD3 family (t5xxl + clip_l + clip_g); two is Flux/SDXL; clip_name2/clip_name3 default to None so you can build up gradually.
    • vae_name - pixel_space and whatever else you have in models/vae.

    Install is the pack-wide recipe:

    cd ComfyUI/custom_nodes
    git clone https://github.com/bananasss00/ComfyUI-SP-Nodes
    

    or ComfyUI Manager → SP-Nodes, then restart. The gotcha to know before you build around it: the clip loaders are always the GGUF ones, so you need ComfyUI-GGUF installed and GGUF text-encoder files on disk even if your unet is fp8 - and the nf4 dtypes additionally want the author's ComfyUI_bitsandbytes_NF4-Lora pack. The stock fp8 path with a plain fp8 clip, though, runs with zero extra packs. If you only need a clean unet+clip+vae with no opinions, this is the SP loader to grab.

    CategorySP-Nodes/Group Nodes

    Inputs (7)

    NameTypeDefaultDescription
    unet_nameCOMBO0 options:
    weight_dtypeCOMBO6 options: fp8_e4m3fn, fp8_e4m3fn_fast, fp8_e5m2, nf4-float8_e4m3fn, nf4-float8_e5m2, gguf
    vae_nameCOMBO1 options: pixel_space
    clip_name1COMBO0 options:
    clip_name2COMBO1 options: None
    clip_name3COMBO1 options: None
    model_typeCOMBO4 options: sd, sd3, flux, hunyuan_video

    Outputs (4)

    NameTypeDescription
    sp_pipeSP_PIPE
    modelMODEL
    clipCLIP
    vaeVAE