Nodes/ComfyUI Ino Nodes/Ino Handle Download And Load Model
ComfyUI Node

Ino Handle Download And Load Model

One config string, download to loaded

By nobandegani·Created about a year ago·Updated 2 months ago· 6
Ino Handle Download And Load Model
    • success
    • msg
    • model_type
    • abs_path
    • rel_path
    • loaded_model
    enabledtrue
    config{}

    The usual first ComfyUI workflow ends with you manually downloading a model, dropping it in a folder, and praying the name matches what the loader expects. Ino Handle Download And Load Model collapses that whole chore into one node: feed it a download config string, and it fetches the model from wherever the config says, places it in the right ComfyUI folder, loads it, and hands you the loaded model ready to wire into your graph.

    It's part of the Ino Nodes pack from nobandegani, and it's the terminal step of the pack's config-driven model pipeline - the node that actually turns a config string into something you can sample with.

    How it works

    One input you actually set: config, a model download config as a JSON string (default {}). This is exactly the kind of string Ino Get Vae Download Config, Ino Get Clip Download Config, or the model/component config nodes produce - it carries the host, repo ID, filename, subfolder and model type.

    Under the hood the node does two things in sequence: it calls the pack's download handler (which delegates to HuggingFace, HTTP, S3 or Civitai depending on the config's host field), then calls the loader to actually load what was downloaded. The outputs tell the whole story:

    • success / msg - did both stages work.
    • model_type - what kind of model this is (which determines how it gets loaded).
    • abs_path / rel_path - where the file landed.
    • loaded_model - the actual loaded object, ready to plug into the sampler side of your workflow.

    The magic, such as it is, is that the config string determines everything. Same node downloads a VAE, a CLIP, or a diffusion model - you never swap loader nodes, you swap config strings. And because the download check runs first, a failure reports which stage died instead of leaving you staring at a missing-file error two steps later.

    Where it fits

    This is the node that makes self-contained, reproducible workflows possible: hand someone a config string and they get the model downloaded and loaded without knowing a single repo URL. In an automated pipeline, it means "model missing" becomes a solved problem - the workflow fetches its own requirements. It's also what makes the pack's preset-driven flows tick: Ino Get Model Config → split into components → this node per component → sample.

    The honest caveat: it's only as good as the config. An empty {} default won't download anything useful, and a config pointing at a nonexistent repo fails at the download stage. Build your configs with the pack's config nodes and it behaves; hand-typing config JSON is where this gets fiddly.

    Installing it

    It ships with the whole Ino Nodes pack. ComfyUI Manager: search "ComfyUI Ino Nodes", install, restart. Or manually:

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

    Restart after. Pack-wide caveats apply: it's built on ComfyUI's V3 schema (README wants v0.18.1+), and requirements.txt installs inopyutils (plus huggingface_hub and hf_xet, which the HuggingFace downloads use).

    Common issues

    The output that tells you the most is success and msg: a false with an empty loaded_model means the download stage failed (check repo ID / filename / network), while a false after a successful download means the load stage choked (usually a file/type mismatch). And note that loading goes through the pack's generic loader - which has known gaps (see the Ino Handle Load Model article) - so for the mainstream types this works, but for unusual model types it may fail at load even after a clean download. Search "Ino Handle Download And Load Model" in the node menu.

    CategoryInoModelHelper

    Inputs (2)

    NameTypeDefaultDescription
    enabledBOOLEANtrue
    configSTRING{}

    Outputs (6)

    NameTypeDescription
    successBOOLEAN
    msgSTRING
    model_typeSTRING
    abs_pathSTRING
    rel_pathSTRING
    loaded_model*