Nodes/ComfyUI-DiffusersLoader/Combined Diffusers Loader
ComfyUI Node

Combined Diffusers Loader

Load HuggingFace diffusers folders in ComfyUI without converting anything

By Scorpinaus·Created 2 years ago·Updated 2 years ago· 21
Combined Diffusers Loader
    • MODEL
    • CLIP
    • VAE
    sub_directory
    clip_type
    transformer_parts
    vae_type
    weight_dtype

    You know the model-download experience where you grab something from HuggingFace and instead of one tidy .safetensors you get a folder full of subfolders - unet/, text_encoder/, vae/, a model_index.json - and ComfyUI's normal Checkpoint Loader just shrugs at it? That's a diffusers-format checkpoint, and Combined Diffusers Loader is the node that finally makes it work. No conversion, no hunting for a merged single-file version, no python script to stitch it together. Pick the folder from a dropdown and you're generating.

    Why this node exists

    ComfyUI's built-in loaders expect the classic merged checkpoint - one file with everything baked in. The diffusers format is the other way HuggingFace packages models: every component in its own directory. It's the format SD 1.5, SDXL, SD3, Flux and AuraFlow all ship in on HF, and it's genuinely annoying to use in ComfyUI without a helper. The author (Hafiz Saffie) built this pack to extend ComfyUI's own minimal DiffusersLoader into something actually usable, and this Combined node is the headline act: one node that returns MODEL, CLIP and VAE together, exactly like a normal checkpoint loader.

    How it works

    The loader reads the folder's model_index.json and matches its _class_name plus component list against known criteria to figure out what it's dealing with - SD 1.5, SD 2.1, SDXL, SD3, AuraFlow or Flux. Then it hands the work off to the pack's three component loaders under the hood: the UNET loader grabs the transformer or unet weights, the CLIP loader pulls the text encoder(s), and the VAE loader picks the autoencoder. You get three sockets instead of a pile of machinery.

    One honest limitation: it can only load architectures ComfyUI's core already understands. The README lists HunyuanDiT, PixArt and Kolors as future targets that would require a PR upstream - this node can't conjure support ComfyUI itself lacks.

    The inputs that matter

    • sub_directory - the dropdown of every diffusers folder ComfyUI can see (anywhere that contains a model_index.json). Two models with the same folder name get (1) and (2) suffixes matching your base-path order.
    • weight_dtype - default, fp8_e4m3fn or fp8_e5m2. For Flux, leave this on default and you will OOM - the README is explicit that Flux needs an fp8 dtype. That matches the wider fp8 consensus: half the VRAM, quality you won't notice.
    • clip_type - mostly matters for Flux (flux for the big T5) and SD3. For SDXL, stable_diffusion and sdxl resolve to the same thing internally, so don't stress.
    • transformer_parts - set to all. The part_1/2/3 options exist for Flux/AuraFlow transformers that ship sharded into multiple files.
    • vae_type - default uses the model's own VAE. The taesd/taef1 options swap in ComfyUI's tiny approximate VAEs for speed.

    Installing it

    ComfyUI Manager → search DiffusersLoader → install, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Scorpinaus/ComfyUI-DiffusersLoader
    

    Restart ComfyUI. There's no requirements.txt - it uses only ComfyUI's own comfy.sd/comfy.utils and torch, so no dependency roulette.

    Where your models go

    Drop the model folders in ComfyUI/models/diffusers/ (each folder needs its model_index.json), or point the loader at another drive via extra_model_paths.yaml:

    my_models:
        base_path: /mnt/huge/models
        diffusers: diffusers
    

    Troubleshooting

    • Dropdown is empty - the loader only lists folders containing model_index.json inside a diffusers base path. Wrong location or a stripped folder = nothing shows.
    • Flux OOM at default weights - switch weight_dtype to fp8_e4m3fn.
    • Won't load a model ComfyUI core doesn't know - that's the upstream limit, not a config mistake.

    It's a niche tool - if you never touch HuggingFace's folder format you'll never need it. But if you do, this is the one node that turns a stack of diffusers folders back into a normal-looking ComfyUI workflow.

    CategoryDiffusersLoader/Combined

    Inputs (5)

    NameTypeDefaultDescription
    sub_directoryCOMBO0 options:
    clip_typeCOMBO6 options: stable_diffusion, stable_cascade, sd3, stable_audio, sdxl, flux
    transformer_partsCOMBO4 options: all, part_1, part_2, part_3
    vae_typeCOMBO5 options: default, taesd, taesdxl, taesd3, taef1
    weight_dtypeCOMBO3 options: default, fp8_e4m3fn, fp8_e5m2

    Outputs (3)

    NameTypeDescription
    MODELMODEL
    CLIPCLIP
    VAEVAE