Nodes/D2 Nodes ComfyUI/D2 Load Diffusion Model
ComfyUI Node

D2 Load Diffusion Model

Load a UNet with fp8 options and get its path, hash, and a pipe out

By da2el-ai·Created 2 years ago·Updated 6 days ago· 66
D2 Load Diffusion Model
  • d2_pipe
  • model
  • ckpt_name
  • ckpt_hash
  • ckpt_fullpath
  • d2_pipe
unet_name
weight_dtype

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 with default; try fp8_e4m3fn if VRAM is tight. Don't set fp8_e5m2 unless 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 in models/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.

CategoryD2

Inputs (3)

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

Outputs (5)

NameTypeDescription
modelMODEL
ckpt_nameSTRING
ckpt_hashSTRING
ckpt_fullpathSTRING
d2_pipeD2_TD2Pipe