Nodes/Eagleshadow Custom Nodes/Load Diffusion Model With Name
ComfyUI Node

Load Diffusion Model With Name

The UNET loader that tells you which model it loaded

By Shadetail·Created 3 years ago·Updated 4 months ago· 7
Load Diffusion Model With Name
    • MODEL
    • model_name
    unet_name
    weight_dtype

    The name is mostly honest. This is the core Load Diffusion Model node (ComfyUI's UNETLoader, the one that reads .safetensors files out of ComfyUI/models/diffusion_models) with exactly one thing added: a second output that hands you the model's file name as a string. That doesn't sound like much until you've generated 300 images with four different models and tried to work out which run produced which PNG. ComfyUI's default Save Image stamps every output ComfyUI_00001_.png, and nothing in the filename tells you what made it. This node fixes that gap in one wire.

    The author (Shadetail, whose whole pack is explicitly "mostly made using GPT-4") uses it exactly that way: pipe model_name into a text-concat with the seed and a fixed prefix, feed that into a custom Save Image node, and every output file is named after the model that generated it. Searchable, sortable, and you never again open a folder of mystery images. If you've been renaming outputs by hand or eyeballing metadata, this is the small quality-of-life upgrade you didn't know you wanted.

    How it works

    Under the hood it's a straight fork of UNETLoader. The load_unet method calls the same comfy.sd.load_diffusion_model() the core node calls, and then does one extra line: os.path.splitext(os.path.basename(unet_name))[0]. That strips the subfolder path and the extension, so flux\flux1-dev-fp8.safetensors comes out the other side as the clean string flux1-dev-fp8. That string is your model_name output.

    The rest is the standard diffusion-model loading path: it looks in your diffusion_models folder, loads the weights, and hands you a ready-to-sample MODEL. Same as core, same trade-offs.

    The inputs and outputs that matter

    There are only two inputs, and one of them you'll mostly leave alone:

    • unet_name - a dropdown of every model file in ComfyUI/models/diffusion_models. Pick your diffusion model (or Flux/SD3-style UNet).
    • weight_dtype - default, fp8_e4m3fn, fp8_e4m3fn_fast, or fp8_e5m2. This is how you load a quantized model without hunting for a separate fp8 file. fp8_e4m3fn is the near-lossless one - per the community consensus, fp8 is "99% identical to the fp16 requiring half the VRAM" - and fp8_e4m3fn_fast adds fp8 compute optimizations on top. The catch, worth knowing: _fast only pays off on cards with native fp8 acceleration (40-series and up). On a 30-series card it loads fine but you get the VRAM savings, not the speed. If the model fits in default, just leave it there - quantizing is for when something genuinely doesn't fit, not as a default habit.

    Outputs:

    • MODEL - wire this into your sampler's model input. That's the whole job.
    • model_name (STRING) - the filename, path and extension stripped. Feed it into a text-concat, a filename builder, or a note node.

    One thing it is not: this is a diffusion-model loader, not a full checkpoint loader. You still need a separate text encoder (CLIP) and VAE in your graph for a complete pipeline. The MODEL output only covers the diffusion weights.

    Installing it

    It's in the ComfyUI Manager, but the pack is called ComfyUI_Eagleshadow - search for that (the node's own name has spaces, which makes it awkward to search directly). Or clone it the manual way:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Shadetail/ComfyUI_Eagleshadow
    

    Then restart ComfyUI. There are no dependencies to chase - no requirements.txt, no bundled models, nothing but the ComfyUI core API - so install is as clean as it gets. The node lands under advanced/loaders in the node menu.

    Gotchas

    • Renaming files after the fact breaks your naming. model_name is derived from whatever's on disk, so if you move or rename a model, old output files keep the old name but new ones say the new thing. Don't "clean up" your model folder mid-project and expect history to stay consistent.
    • It's a fork of a core node, and core nodes drift. When ComfyUI changes UNETLoader's internals, forks like this can lag a beat. It's trivial code, but if it ever throws on update, that's the first thing to suspect.
    • The pack is unglamorous but honest - its README openly admits writing a "Save Image To Folder" node because "kind of shocking I had to make a custom node for something this basic." That tone carries over: this node does one thing and does it thinly, and that's the appeal. If you want a filename string alongside your loaded model, this is the smallest possible way to get it.
    Categoryadvanced/loaders

    Inputs (2)

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

    Outputs (2)

    NameTypeDescription
    MODELMODEL
    model_nameSTRING