Diffusion Loader (Mango)
Load Flux-style split models, dual CLIP, and LoRAs in one node
- model
- clip
- vae
- lora_stack
- unet_name
- unet_hash
Modern models don't ship as a single checkpoint file. Flux, SD3, and Pony-era SDXL workflows split the "model" into a diffusion UNET plus separate text encoders (often two of them) plus a VAE - which is why the stock loader alone can't handle them. Diffusion Loader (Mango) is the pack's answer: one node that loads a diffusion model, a dual CLIP, a VAE, and up to five LoRAs, and hands you the same metadata-friendly unet_name / unet_hash outputs the rest of the pack expects.
If you've built a Flux or SDXL graph with the native "UNET Loader + DualCLIPLoader + VAELoader" trio, this node collapses those three into one. It's the modern-architecture sibling of Loader (Mango), and it's the loader you'd reach for on any split-file setup.
How it works
The node reads your models/diffusion_models folder for the UNET, models/text_encoders for the two CLIPs, and models/vae for the VAE (it also supports the tiny TAESD/TAEF1 preview VAEs if you have those installed). It loads the diffusion model with comfy.sd.load_diffusion_model, builds a dual CLIP via comfy.sd.load_clip with the CLIP type derived from your type selector, and loads the VAE directly from its state dict. LoRAs apply on top, same load_lora_for_models machinery as the rest of the pack. It computes a 10-character SHA-256 prefix of the UNET file, so unet_hash is honest metadata material.
Inputs and outputs that matter
- unet_name - dropdown of your
diffusion_models. The core choice. - type -
sdxl,sd3,flux, orhunyuan_video. This sets the CLIP type, so get it right or your conditioning will be wrong in confusing ways. - clip_name1 / clip_name2 - the two text encoders from
models/text_encoders. - vae_name - from
models/vae, plus the taesd/taef1 options if present. - weight_dtype -
default, orfp8_e4m3fn,fp8_e4m3fn_fast,fp8_e5m2. The fp8 options quantize the diffusion model on load, which is how you fit big Flux files into tight VRAM. If you're on a 24 GB card you probably don't need them; if you're on 8 GB, they might be the difference between running and not. - LoraName1…5 / LoraWeight1…5 - the usual five LoRA slots.
- device (optional) -
defaultorcpu. "CPU" here forces the CLIP onto CPU, useful for giant text encoders when VRAM is short, at the cost of slower prompt encoding.
Outputs: model / clip / vae go to your sampler and decoder; lora_stack feeds the sampler for metadata; unet_name / unet_hash (STRINGS) feed the text fields on FluxSampler (Mango) so your saved images record which UNET you used and its hash.
Installing it
It's part of the Mango Node Pack:
cd ComfyUI/custom_nodes
git clone https://github.com/mang01010/MangoNodePack
Restart ComfyUI, or install "Mango Node Pack" via ComfyUI Manager. No extra model downloads beyond what you already have in models/diffusion_models, models/text_encoders, and models/vae - and note those folders may be empty in a fresh install, so point them at whatever model files you're already using.
Gotchas
The type selector is the trap. Pick flux when you're actually running a Pony SDXL model and your generations will be subtly broken in ways that are hard to debug. Also, fp8 weight dtypes trade a little quality for VRAM headroom - Q8-style quantization is "basically fp16 at half the size" territory, but the e5m2 variant is visibly rougher, so don't default to it unless you must. One more: because it loads the UNET from diffusion_models, your split-model files need to be in that folder - a checkpoint-style file in models/checkpoints won't show up in the dropdown. It's a small node that assumes you've already organized your models the modern way, and it's the right tool when you have.
Inputs (17)
| Name | Type | Default | Description |
|---|---|---|---|
| unet_name | COMBO | 0 options: | |
| weight_dtype | COMBO | 4 options: default, fp8_e4m3fn, fp8_e4m3fn_fast, fp8_e5m2 | |
| clip_name1 | COMBO | 0 options: | |
| clip_name2 | COMBO | 0 options: | |
| type | COMBO | 4 options: sdxl, sd3, flux, hunyuan_video | |
| vae_name | COMBO | 0 options: | |
| LoraName1 | COMBO | None | 1 options: None |
| LoraWeight1 | FLOAT | 1.00-10–10 | — |
| LoraName2 | COMBO | None | 1 options: None |
| LoraWeight2 | FLOAT | 1.00-10–10 | — |
| LoraName3 | COMBO | None | 1 options: None |
| LoraWeight3 | FLOAT | 1.00-10–10 | — |
| LoraName4 | COMBO | None | 1 options: None |
| LoraWeight4 | FLOAT | 1.00-10–10 | — |
| LoraName5 | COMBO | None | 1 options: None |
| LoraWeight5 | FLOAT | 1.00-10–10 | — |
| deviceopt | COMBO | 2 options: default, cpu |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| clip | CLIP | — |
| vae | VAE | — |
| lora_stack | LORA_STACK | — |
| unet_name | STRING | — |
| unet_hash | STRING | — |