Diffusers UNET Loader
The MODEL-only diffusers loader — for when you just want the denoiser
- MODEL
If you've got a diffusers-format model folder - the HuggingFace layout with unet/ or transformer/, text_encoder/, vae/ and a model_index.json - and you only want the denoiser out of it, this is the node. It's the MODEL half of the DiffusersLoader pack: one output socket, no CLIP, no VAE. You'd reach for it when you're already loading those from elsewhere, or when you specifically want a diffusers-model's transformer in fp8 without touching the rest of the pipeline.
What it actually does
Like its siblings, Diffusers UNET Loader checks the folder's model_index.json to detect the architecture, then grabs the right weights: the transformer/ subfolder for Flux, SD3 and AuraFlow, the unet/ subfolder for SD 1.5 and SDXL (with a fallback to transformer/ if there's no unet/). It's also comfortable with sharded models - the big Flux and AuraFlow transformers that ship split across several .safetensors files - by loading them through the index.json weight map and stitching the tensors together.
Two niceties worth knowing:
- If it hits an out-of-memory error mid-load, it clears CUDA memory and retries automatically before giving up.
- Because it uses
comfy.sd.load_diffusion_model, the same loader ComfyUI core uses, whatever it returns behaves exactly like the MODEL from any normal loader.
The inputs
- sub_directory - dropdown of every diffusers folder ComfyUI can see (same list as the Combined loader).
- weight_dtype -
default,fp8_e4m3fn,fp8_e5m2. This is the one to actually think about. Flux atdefaultis a memory bomb - the README is blunt that you should use an fp8 dtype, and the community consensus agrees: fp8 is basically fp16 at half the size.fp8_e4m3fnis the one you want;e5m2is the higher-range, lower-precision variant. - transformer_parts -
allis the setting you want 99% of the time.part_1,part_2andpart_3exist for sharded Flux/AuraFlow transformers where you can target a single shard file. Loading one shard of a transformer gives you a partial model, so this is a power-user thing for probing or memory experiments, not a normal workflow.
The output
MODEL - the loaded diffusion model, wired straight into your KSampler (or whatever sampler you're running), same as the MODEL from any Checkpoint Loader. From there the rest of your workflow is unchanged.
Install & models
Same as the whole pack: ComfyUI Manager → search DiffusersLoader, or
cd ComfyUI/custom_nodes
git clone https://github.com/Scorpinaus/ComfyUI-DiffusersLoader
then restart. No extra pip dependencies. Models live in ComfyUI/models/diffusers/<model_folder>/, or any extra base path registered in extra_model_paths.yaml under a diffusers: key.
Troubleshooting
- Flux OOMs - you left
weight_dtypeondefault. Switch tofp8_e4m3fn. - Nothing in the dropdown - the folder isn't under a
diffusersbase path, or it's missing itsmodel_index.json. - Error about a missing
index.json- the loader's shard-combining path assumes a proper HF index file; a hand-renamed folder may lack it. It'll fall back to combining whatever.safetensorsit finds, but the clean fix is a properly exported diffusers folder.
Honest take: if you're already running a standard ComfyUI workflow, the Combined loader is usually the easier entry point. This node earns its keep when you want fine control over just the weights - say, mixing a diffusers transformer into a workflow that already has its own CLIP and VAE.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| sub_directory | COMBO | 0 options: | |
| transformer_parts | COMBO | 4 options: all, part_1, part_2, part_3 | |
| weight_dtype | COMBO | 3 options: default, fp8_e4m3fn, fp8_e5m2 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |