EGDiffusionLoader
Load Diffusion Model with the fp8 switch that actually matters
- MODEL
EGDiffusionLoader is the pack's copy of ComfyUI's Load Diffusion Model - the node you use when your model is a bare UNET/diffusion transformer rather than a whole checkpoint. Flux, Z-Image, Qwen Image and Anima all ship that way: weights in one file, text encoder in another, VAE in a third.
Two widgets, one output. Nothing exotic.
Why the pack has its own
Same reason as its checkpoint sibling: file-identity caching. unet_name alone doesn't tell ComfyUI that the file behind it changed, so replacing a diffusion model in place can leave you running cached results from the old weights. This version hashes path + size + mtime + ctime into IS_CHANGED, so a swapped file re-executes - and, in the gallery's world, a swapped file is a different preview set with its own id.
The gallery reaches for this node on every split-file profile: Flux.1 Dev and Schnell, Z-Image Base and Turbo, Qwen Image, and Anima. If you open a gallery-generated job for one of those, this is node 1.
How it works
unet_name resolves against ComfyUI/models/diffusion_models - not checkpoints, which is the mistake almost everyone makes once. Then weight_dtype decides how the weights are stored in VRAM before anything else happens.
The four options are the ones ComfyUI core exposes: default, fp8_e4m3fn, fp8_e4m3fn_fast and fp8_e5m2.
- default keeps whatever the file already is. An fp8 file stays fp8, an fp16 file stays fp16.
- fp8_e4m3fn casts to 8-bit on load. Note the KB's framing of the community consensus here: just use it. Half the VRAM of fp16, quality loss close to invisible, and no dequantization overhead the way GGUF has. On a 12B Flux model that's the difference between fitting and not.
- fp8_e4m3fn_fast does the same cast but routes the math through fp8 matrix multiplication, which is native on NVIDIA Ada (RTX 40-series) and newer. On those cards it's one of the fastest options going. On older GPUs leave it alone - you'd still get the memory saving from plain
fp8_e4m3fn, but not the compute path. - fp8_e5m2 is the wider-range, lower-precision variant. There's rarely a reason to prefer it for diffusion weights; it exists for completeness.
One honest detail: the gallery's own generated graphs always pass weight_dtype: "default". So if you install this pack expecting it to quietly quantize your Flux model for you, it won't. The widget is there for graphs you build yourself.
Inputs and outputs
- unet_name - the diffusion model file, from
models/diffusion_models. - weight_dtype - as above.
- MODEL - out to the sampler, or through a LoRA loader first.
That's the whole node. It does not load a CLIP, a VAE, or a latent format - those are separate nodes in a split workflow, and skipping one is how you get a "missing input" wall.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/nikminer/ComfyUI-Emotional-Gallery.git comfyui_emotional_gallery
Restart and Ctrl+F5. No extra Python packages, no downloads. It's on ComfyUI Manager under "ComfyUI Emotional Gallery".
Like the other seven internal nodes in this pack it's hidden from the Add Node menu - the frontend strips all nine from the node library so the gallery panel stays the interface. Existing workflows that reference EGDiffusionLoader still load and run; if you want one on a fresh canvas, start from a workflow that has it.
Common issues
Empty dropdown. models/diffusion_models is empty - or your Flux file is sitting in models/checkpoints, which is the classic. Move it, restart.
"Value not in list" after moving files. The workflow remembers a filename that no longer resolves. Re-pick from the dropdown.
Images are noise, or the model ignores the prompt. Almost always the companion files: wrong text encoder, missing VAE, or a Flux workflow missing its CLIP-L alongside T5. When a model card lists three files, it means three.
fp8 looks softer than fp16. At 8-bit the loss is usually invisible, not literally zero. If you have headroom on a 24GB card and you're chasing the last few percent, run default on an fp16 file and compare on the same seed before deciding.
Out of memory on a model that "should" fit. Check that you're actually on an fp8 file or an fp8 dtype. A default load of an fp16 12B transformer is ~24GB of weights before the text encoders show up.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| unet_name | COMBO | 0 options: | |
| weight_dtype | COMBO | 4 options: default, fp8_e4m3fn, fp8_e4m3fn_fast, fp8_e5m2 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |