Nodes/ComfyUI-LoaderUtils/Load Diffusion Model (Any)
ComfyUI Node

Load Diffusion Model (Any)

The split-loader that's the whole point of this pack

By lrzjason·Created 8 months ago·Updated 8 months ago· 88
Load Diffusion Model (Any)
  • any
  • MODEL
unet_name
weight_dtype

If ComfyUI-LoaderUtils has a headline node, this is it. UNETLoader_Any loads just the diffusion model - no CLIP, no VAE bundled in - which is exactly the shape you need for split-loading workflows on Flux, SD3, Wan, and most other current-generation models where checkpoint, text encoder, and VAE ship as separate files. And it's the specific node the pack's own README builds its central example around.

The inputs that matter

unet_name picks the file from your models/unet (sometimes models/diffusion_models) folder. The other one, weight_dtype, is genuinely useful: default, fp8_e4m3fn, fp8_e4m3fn_fast, or fp8_e5m2. This casts the model's weights down to 8-bit floating point at load time, regardless of what precision the file itself is stored in.

fp8 is worth taking seriously here, not treating as a lossy compromise. It halves the VRAM of fp16 at near-zero measured quality loss, and it's become the community's default recommendation for Flux-class models specifically because it made 12B-parameter models practical on 12-24GB consumer cards. fp8_e4m3fn_fast opts into native fp8 compute on RTX 40-series and newer NVIDIA GPUs, which is where fp8 also picks up a real speed advantage on top of the memory saving - not just older cards loading fp8 weights but still computing at higher precision underneath. Unlike GGUF quantization, fp8 doesn't need to dequantize-and-repatch when you stack LoRAs on top, so generation speed stays consistent even in LoRA-heavy workflows.

The output is a single MODEL, straight into your sampler (or into a LoRA loader first, if you're stacking one).

Why this is the pack's flagship example

Quoting the README's own worked example almost verbatim, because it's the clearest explanation of the whole pack: "UNETLoader_Any is connected after the CLIPTextEncode nodes, allowing them to run before the heavy UNET model is loaded." That's the mechanism in one sentence. Every loader in this pack adds an optional any input that accepts anything and does nothing with the value - it's a pure ordering trip-wire. ComfyUI's executor normally runs a loader node the instant nothing blocks it, which for something with no required upstream inputs usually means immediately, front-loading every model in your graph before the first real computation runs. Wire your CLIPTextEncode output into any here, and the (often largest) model in the whole workflow doesn't touch VRAM until your prompts are already encoded.

Installing it

ComfyUI Manager: search ComfyUI-LoaderUtils, install, restart. Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/lrzjason/ComfyUI-LoaderUtils

No extra dependencies. This node doesn't ship any weights - put your diffusion model file where you'd normally put it and it'll show up after a restart.

Where people get burned

weight_dtype set to a lower precision than the file actually needs on a model with unusual sensitivity can degrade quality - rare in practice for Flux-class models, but worth reverting to default if you see visible artifacting after switching precisions and nothing else changed.

The bigger limitation: this pack has no GGUF-format loader. If you're already running GGUF-quantized diffusion models below where fp8 fits (roughly under 10-12GB), this node can't load them - that's ComfyUI-GGUF's own UnetLoaderGGUF node, which doesn't carry this pack's any staging input. fp8 via weight_dtype and GGUF quantization are the two main routes to a smaller model, and this pack only covers the first.

Categoryadvanced/loaders

Inputs (3)

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

Outputs (1)

NameTypeDescription
MODELMODEL