ROCm Diffusion Loader
The UNet loader for Flux/WAN when your checkpoint is just the model
- MODEL
Modern models don't ship like old SD checkpoints. Flux and WAN come as separate files - a diffusion model here, a CLIP there, a VAE somewhere else - and you load them with separate nodes. This node is the "diffusion model" half of that trio, from the ROCm Ninodes pack. It's a UNet/diffusion-loader replacement that scans your model folders, loads the big denoising weights, and hands you a MODEL output - with ROCm diagnostics and an fp8 weight option for quantized models.
What it loads
The dropdown (unet_name) is populated from diffusion_models (plus the common unet and unet_gguf alternate folders). Supported extensions: .safetensors, .ckpt, .pt, .pth, .bin, .onnx. The tooltip is blunt about what it won't do: GGUF files belong to the pack's separate ROCm GGUF Loader, not here.
One optional input, and it's the one that matters: weight_dtype - default, fp8_e4m3fn, or fp8_e5m2. If you have an fp8 model (the tooltip's "use fp8 for quantized models"), that's how you tell the loader what it's dealing with. fp8 is the community's consensus default for large-model inference on 12–24GB cards - half the VRAM of fp16 at near-invisible quality loss, and unlike GGUF it's a plain numeric format with no dequantization overhead. On ROCm the e4m3fn variant is the standard. Single MODEL output goes to your KSampler; you handle CLIP and VAE with the pack's other loaders or stock ones.
The ROCm angle
Under the hood it delegates to ComfyUI's native diffusion loading - the source is explicit that modern PyTorch (2.7+) handles memory allocation well and that aggressive manual cleanup causes more fragmentation than it cures. What it adds is detection: it sniffs quantized models from the filename (fp8, int8, int4, quantized markers) and warns you, and it's tuned for the gfx1151 unified-memory setup. There's a genuinely useful note in the source: if you're running multiple >20GB models in one workflow, launch ComfyUI with --cache-none to stop the loader cache from eating your RAM.
Install
It's part of ROCm Ninodes - ComfyUI Manager → search "ROCm Ninodes," or
cd ComfyUI/custom_nodes
git clone https://github.com/iGavroche/rocm-ninodes.git
Restart, under ROCm Ninodes → Loaders. Light deps (numpy, Pillow, psutil, gguf, safetensors), no model files bundled - the README's example workflows assume you already have Flux or WAN weights. One historical note: this node was renamed from ROCMOptimizedUNetLoader to ROCmDiffusionLoader, and the pack ships a workflow-migration script (scripts/update_workflows.py) that rewrites old workflow JSONs to the new names - run that if you have old saved workflows referencing the legacy node.
The honest take
For AMD users loading Flux/WAN with the rest of this pack, it's a clean drop-in that keeps the loader family consistent and adds the fp8 path. Is it meaningfully different from ComfyUI's stock UNetLoader? In day-to-day use, not much - it's the same loading core with better folder scanning and diagnostics. Where it earns its keep is the fp8 story (ROCm + fp8 has historically had more friction than NVIDIA, and having the dtype handled in one place helps) and having everything in one category so you don't mix loaders across packs. If you're on NVIDIA, stock is fine - this is the AMD convenience version.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| unet_name | COMBO | Diffusion model file to load (supports .safetensors, .ckpt, .pt, .pth, .bin, .onnx). For GGUF files, use ROCm GGUF Loader. | |
| weight_dtypeopt | COMBO | default | Weight data type - use fp8 for quantized models |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |