Nodes/LLS-node/LLS Simple Checkpoint Loader
ComfyUI Node

LLS Simple Checkpoint Loader

One loader that knows how to load SD1.5, SDXL, and FLUX — and remembers which one it was

By Gin3601·Created 3 months ago·Updated 3 months ago· 0
LLS Simple Checkpoint Loader
    • model
    • clip
    • vae
    • text_encoder
    ckpt_name
    model_familyAuto
    load_modesimple
    vae_sourceauto
    text_encoder_sourceauto
    external_vae_name(auto)
    external_text_encoder_1(auto)
    external_text_encoder_2(auto)

    The boring truth about modern ComfyUI: "load a checkpoint" stopped being one step. SD1.5 and SDXL ship as a single .safetensors with the text encoder and VAE baked in. FLUX doesn't - you're loading a diffusion model, a separate CLIP/text encoder, and a VAE, often three files with two different weight formats. LLS Simple Checkpoint Loader wraps that whole mess so you can think in terms of "load this model" and let the node figure out the resource dispatch.

    Its other job is the one that makes the rest of the LLS pack work. The loader writes lightweight metadata - model family, profile id, backend type - onto the MODEL/CLIP/VAE objects it hands out. Downstream nodes like LLS Simple KSampler and LLS Pro Image Edit Prepare read that metadata to route sampling and edit backends automatically. In other words, this isn't just a loader; it's the thing that tells the rest of the pack what it's dealing with.

    What you get out

    Four outputs: model, clip, vae, and text_encoder. Note the last two: text_encoder is the same CLIP object as clip, just aliased under a second name so both old workflows (that expect clip) and new FLUX-style graphs (that expect a separate text_encoder) can wire up without breakage.

    The inputs that matter

    • ckpt_name - picked from your checkpoints folder. For FLUX, drop the diffusion model into ComfyUI/models/diffusion_models/.
    • model_family - Auto tries to sniff it, or you pick explicitly. Getting this right matters for the metadata, so if Auto misreads an unusual model, set it by hand.
    • load_mode - simple (default) or advanced. Advanced unlocks the rest.
    • vae_source - auto / embedded / external / none. FLUX usually wants an external VAE (ae.safetensors).
    • text_encoder_source - auto / embedded / external / manual, with external_text_encoder_1 / 2 for the actual file names.

    Installing it

    cd ComfyUI/custom_nodes
    git clone https://github.com/Gin3601/LLS-node
    # restart ComfyUI
    

    Or ComfyUI Manager → search "LLS-node". No pip dependencies - it calls ComfyUI's own loaders under the hood. What it does need is the model files in the right folders, and FLUX in particular wants its separated text encoder and VAE on disk.

    Gotchas

    The ckpt_name dropdown shows "(no models found)" until there's actually a compatible file in the expected folder - a fresh install looks broken until you drop a model in. And because the pack is young, family inference is best-effort: for FLUX2 Klein or unusual merges, set model_family manually rather than trusting Auto. It's the difference between a loader that loads and a loader that loads with the right backend tags for the Pro edit chain downstream.

    CategoryLLS/Model Loader

    Inputs (8)

    NameTypeDefaultDescription
    ckpt_nameCOMBO1 options: (no models found)
    model_familyCOMBOAuto9 options: Auto, SD1.5, SD15, SDXL, SDXL_TURBO, FLUX_SCHNELL, +3
    load_modeCOMBOsimple2 options: simple, advanced
    vae_sourceCOMBOauto4 options: auto, embedded, external, none
    text_encoder_sourceCOMBOauto4 options: auto, embedded, external, manual
    external_vae_nameCOMBO(auto)2 options: (auto), pixel_space
    external_text_encoder_1COMBO(auto)2 options: (auto), (no text encoders found)
    external_text_encoder_2COMBO(auto)2 options: (auto), (no text encoders found)

    Outputs (4)

    NameTypeDescription
    modelMODEL
    clipCLIP
    vaeVAE
    text_encoderCLIP