Nodes/RocM Ninodes/ROCm Diffusion Loader
ComfyUI Node

ROCm Diffusion Loader

The UNet loader for Flux/WAN when your checkpoint is just the model

By iGavroche·Created 11 months ago·Updated 4 days ago· 43
ROCm Diffusion Loader
    • MODEL
    unet_name
    weight_dtypedefault

    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.

    CategoryROCm Ninodes/Loaders

    Inputs (2)

    NameTypeDefaultDescription
    unet_nameCOMBODiffusion model file to load (supports .safetensors, .ckpt, .pt, .pth, .bin, .onnx). For GGUF files, use ROCm GGUF Loader.
    weight_dtypeoptCOMBOdefaultWeight data type - use fp8 for quantized models

    Outputs (1)

    NameTypeDescription
    MODELMODEL