Nodes/ComfyUI_AutoDownloadModels/Auto Download ALL Models
ComfyUI Node

Auto Download ALL Models

The 'download everything my workflow needs' node — and why you should double-check its work

By AIExplorer25·Created about a year ago·Updated about a year ago· 21
Auto Download ALL Models
    • status
    modelandpath
    repo_ids_manual

    This is the node the pack is really built around - the one that answers "I have a workflow, I'm missing models, make it go." Give it a list of model names and the folders they belong in, and it searches HuggingFace for each one, finds a matching file, and downloads it into the right models/ subfolder. The plain AutoDownloadModels node handles one file you know the exact path to; this one handles a batch you don't.

    The catch, and it's a real one: it figures out where to download from by searching HuggingFace and taking the first hit. That's a fuzzy guess, not a lookup. It's exactly the kind of convenience that saves you when it works and quietly gives you the wrong file when it doesn't.

    What it expects

    Two string inputs:

    • modelandpath - the batch of mappings in the pack's format: (modelname.safetensors~~~foldername) entries separated by ),(. This is the format GetModelsFromWorkflow produces from a workflow JSON, or that you type by hand (optionally via the SetModelPath passthrough). For example: (flux1-dev.safetensors~~~unet),(t5xxl_fp8_e4m3fn.safetensors~~~clip).
    • repo_ids_manual - a comma-separated list of HuggingFace repo IDs to use as a fallback when the search finds nothing (e.g. Kijai/WanVideo_comfy,Comfy-Org/Wan_2.1_ComfyUI_repackaged).

    The output is a status string: a running log of every repo it matched and every download that completed (or errored).

    How it works, and where the guesswork creeps in

    For each model~~~folder pair, the node:

    1. Strips the extension from the model name and searches HuggingFace with list_models(search=...), keeping the top five results.
    2. Takes the first result's repo, lists its files, and looks for one containing your filename.
    3. Downloads it into /workspace/ComfyUI/models/<foldername>/.

    Two things to notice. First, the destination is hardcoded to /workspace/ComfyUI/models/ - the cloud convention, same as the WAN bulk nodes; on a local machine you need a /workspace/ComfyUI/models symlink to your real folder. Second, step 2 is the gamble: HuggingFace search ranks by relevance, not by "is this the repo the workflow author used." The first hit for wan2.1_t2v_14B might be a re-upload in a different format, a quantized variant, or a community fine-tune with a similar name. If a download "succeeds" but your workflow still reds out with an incompatible-weights error, this is usually why.

    The repo_ids_manual fallback is your insurance: if you know the right repos, list them there, and the node checks them in order when the open search fails. For anything where format matters - and with diffusion models, format always matters - filling this in is worth the thirty seconds.

    Install

    Pack-wide, identical to the rest: ComfyUI Manager → search ComfyUI_AutoDownloadModels → install, or

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

    restart. Deps are huggingface_hub, hf_transfer (fast downloads), and rapidfuzz.

    The workflow it's meant for

    The full convenience pipeline is: GetModelsFromWorkflow reads a workflow → mapping string → AutoDownloadALLModels searches and downloads → ComfyUI restarts happy. That's a genuinely nice idea - provision-from-workflow in one run. Just treat the middle step as a draft you review, not a contract: check which repos got matched in the status output, and if anything landed in the wrong folder or the wrong format, point repo_ids_manual at the real source and rerun. It's a time-saver, not a magic bullet.

    CategoryDownloadALLModel

    Inputs (2)

    NameTypeDefaultDescription
    modelandpathSTRINGEnter hugging face repo id
    repo_ids_manualSTRINGEnter hugging face repo id

    Outputs (1)

    NameTypeDescription
    statusSTRING