Nodes/ComfyUI Ino Nodes/Ino Load Diffusion Model
ComfyUI Node

Ino Load Diffusion Model

Load a UNET by path, not by dropdown — the model loader for automated pipelines

By nobandegani·Created about a year ago·Updated 2 months ago· 6
Ino Load Diffusion Model
    • success
    • message
    • model
    enabledtrue
    model_path
    unet_weight_dtype

    Every ComfyUI workflow starts the same way: pick a model out of a dropdown, drag the wire, hope the file you want is there. That works until you want a machine to decide which model to load - say, a batch job that pulls a checkpoint from S3, or a pipeline that switches architectures per run. InoLoadDiffusionModel exists so you can load a diffusion model by path string instead of by menu, which means the path can come from anywhere in your graph: a text field, a previous node's output, a download node, a CSV lookup.

    The name is a bit loose - "diffusion model" here means what ComfyUI calls a UNET/diffusion model: the standalone denoiser weights you load separately from the CLIP and VAE on the newer architectures (Flux, and the whole post-SDXL generation of models). If you're on classic checkpoints that bundle everything in one file, you'd use a different loader; this one is for the split-model setup.

    How it works

    It's a thin wrapper around ComfyUI's own UNETLoader, which is exactly the mechanism native Load Diffusion Model uses. The inputs that matter:

    • model_path - the file path relative to ComfyUI/models/diffusion_models/, e.g. flux1dev/flux1-dev.safetensors. Because it's a string, you can build or fetch it dynamically - that's the whole point of this node.
    • unet_weight_dtype - optional; default, fp8_e4m3fn, fp8_e4m3fn_fast, or fp8_e5m2. The fp8 options load the model quantized, which is how people run the big 12GB+ models on cards that wouldn't otherwise hold them. fp8 is essentially the "Q8" of diffusion weights - if it fits and you don't need the last drop of quality, just use it.
    • enabled - a master toggle every Ino node carries. Flip it off and the node returns success: False, "not enabled" and a null model instead of throwing.

    Outputs: success (BOOLEAN), message (STRING - "diffusion loaded", or the exception text on failure), and model (MODEL), which you wire straight into your sampler or LoRA chain.

    Installing it

    This is one of 125+ nodes in the ComfyUI-InoNodes pack by nobandegani:

    cd ComfyUI/custom_nodes
    git clone https://github.com/nobandegani/comfyui_ino_nodes
    cd comfyui_ino_nodes
    pip install -r requirements.txt
    

    Or search "ComfyUI Ino Nodes" in ComfyUI Manager and restart. The pack pulls in inopyutils, openai, huggingface_hub, and hf_xet as dependencies. It's built on ComfyUI's V3 schema, so update ComfyUI if you get import errors.

    Where people get burned

    The path must be relative to models/diffusion_models/, not absolute. If you wire model_path straight from Ino S3 Download Model or a download node, check what it's actually outputting - this loader expects the folder-relative name, while some of the pack's download nodes hand you absolute paths. Getting an exception in message usually means the file isn't where the node expects it. The enabled toggle is your friend during testing: flip it off to skip the load and the rest of the graph still runs with a null model you can gate on.

    CategoryInoModelHelper

    Inputs (3)

    NameTypeDefaultDescription
    enabledBOOLEANtrue
    model_pathSTRING
    unet_weight_dtypeoptCOMBO4 options: default, fp8_e4m3fn, fp8_e4m3fn_fast, fp8_e5m2

    Outputs (3)

    NameTypeDescription
    successBOOLEAN
    messageSTRING
    modelMODEL