D2 Load Diffusion Model
Load a UNet with fp8 options and get its path, hash, and a pipe out
- d2_pipe
- model
- ckpt_name
- ckpt_hash
- ckpt_fullpath
- d2_pipe
Checkpoint files bundle model, CLIP, and VAE into one blob. Diffusion models - the UNet/single-file weights used by Flux, SD3, and a lot of newer setups - are just the model, loaded separately from your CLIP and VAE. D2 Load Diffusion Model is the D2-flavored loader for those, with the same trick as the pack's other loaders: it hands you the model plus its name, hash, and full path, and it merges into a d2_pipe. It's UNETLoader with better bookkeeping, essentially.
How it works
Pick your model from unet_name (files in ComfyUI/models/diffusion_models), pick a weight_dtype, and it loads the model. The weight_dtype options are default, fp8_e4m3fn, fp8_e4m3fn_fast, and fp8_e5m2 - the fp8 options let you load quantized weights directly, which is the classic "half the VRAM, nearly identical output" move. If the model fits in full precision, default is fine; if your VRAM is tight, fp8_e4m3fn is where to start.
The extra outputs are the point. In addition to model, you get ckpt_name (just the filename), ckpt_hash (a hash of the file, useful for tracking which exact weights produced an image), and ckpt_fullpath (the absolute path). If you're building filename templates or metadata, those three are gold. There's also a d2_pipe output and a matching optional d2_pipe input - feed it an existing pipe and the loaded model gets merged in, so a D2 KSampler downstream can be driven with a single wire.
What you'll actually set
unet_name- the model file. The important choice.weight_dtype- precision. Start withdefault; tryfp8_e4m3fnif VRAM is tight. Don't setfp8_e5m2unless you know you need the faster-but-less-accurate variant.d2_pipe(optional) - merge the model into an incoming pipe.
How it fits
This node pairs with the D2 KSampler the same way D2 Checkpoint Loader does, but for diffusion-model setups: load the UNet here, load CLIP and VAE separately (the pack's D2 Load Diffusion Model Set bundles all three in one node if that's your setup), then one d2_pipe into the sampler. It's also the honest way to use fp8 weights with the rest of the D2 metadata pipeline - the hash output lets you record exactly which model file made an image even if you rename files later.
Installing
Part of D2 Nodes ComfyUI:
cd ComfyUI/custom_nodes
git clone https://github.com/da2el-ai/D2-nodes-ComfyUI
or search "D2 Nodes ComfyUI" in ComfyUI Manager. The pack needs no model downloads - but this node is useless until you put actual diffusion model files in models/diffusion_models, which is on you.
Troubleshooting
- Empty
unet_name- nothing inmodels/diffusion_models. Drop your model files there (or a subfolder). - fp8 load failing or garbage output - some models are already quantized or don't play well with fp8 conversion. Go back to
default. - Model loads but sampler has no VAE/CLIP - this loader only outputs the model. You still need a VAE and CLIP loader somewhere; either use D2 Load Diffusion Model Set or wire them separately.
One honest note: if your setup is a classic checkpoint, D2 Checkpoint Loader is the simpler path - it outputs model, CLIP, and VAE in one go. Reach for this one when you're in diffusion-model territory (Flux-style or split-weight workflows) and you want the path/hash bookkeeping the stock loader won't give you.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| unet_name | COMBO | 0 options: | |
| weight_dtype | COMBO | 4 options: default, fp8_e4m3fn, fp8_e4m3fn_fast, fp8_e5m2 | |
| d2_pipeopt | D2_TD2Pipe | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| ckpt_name | STRING | — |
| ckpt_hash | STRING | — |
| ckpt_fullpath | STRING | — |
| d2_pipe | D2_TD2Pipe | — |