ComfyUI Node

EGDiffusionLoader

Load Diffusion Model with the fp8 switch that actually matters

By nikminer·Created about a month ago·Updated 15 days ago· 0
EGDiffusionLoader
    • MODEL
    ◄unet_name▾►
    ◄weight_dtype▾►

    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.

    CategoryEmotional Gallery/internal

    Inputs (2)

    NameTypeDefaultDescription
    unet_nameCOMBO0 options:
    weight_dtypeCOMBO4 options: default, fp8_e4m3fn, fp8_e4m3fn_fast, fp8_e5m2

    Outputs (1)

    NameTypeDescription
    MODELMODEL—