HFDownLoad_Tool
A download node for the models other nodes just tell you to go get
- model_path
A lot of custom nodes are honest about their laziness: the docs say "download XXX model, put it in YYY folder," and then leave you to actually do that by hand. HFDownLoad_Tool is the author's fix for that gap - a plain node that pulls a HuggingFace repo straight into your ComfyUI folder structure, no browser, no manual unzip, no leaving the graph. It's a fork of smthemex/ComfyUI_Pipeline_Tool, trimmed down to just this one job.
How it works
Feed it a repo id and a destination folder and it goes and grabs the files. The parameter set - repo_id, local_dir, ignore_patterns, max_workers - maps almost exactly onto huggingface_hub's own snapshot_download() function, so under the hood this is a thin, sensible wrapper around the same downloader every transformers/diffusers script already uses. Nothing exotic, which is exactly what you want from a download node: you don't need it to be clever, you need it to not silently fail.
The inputs and outputs that matter
repo_id- the HuggingFace repo, e.g.ByteDance/Hyper-SD(the default, just a placeholder example). Anything on the Hub works.local_dir- where it lands. Default ismodels/diffusers, which is almost never where you actually want it - override this to match whatever folder the other node's loader dropdown expects, or the file downloads successfully and then nothing can find it.ignore_patterns- skip file types you don't need (safetensors,bin,pth,onnx, and combinations). Handy for repos that ship the same weights in three formats and you only want one. Leave it onnoneif you're not sure.download_single_file- grab one file out of a repo instead of the whole thing.max_workers(1–8) - parallel download threads. Bump it for a slow connection on a big repo, but don't expect miracles if the bottleneck is HuggingFace's end, not yours.use_hfmirroranduse_localproxy/localproxy(defaulthttp://127.0.0.1:1081) - the two escape hatches for anyone who can't reachhuggingface.codirectly.use_hfmirrorroutes through the community mirror at hf-mirror.com; the proxy fields point at a local SOCKS/HTTP proxy (1081 is a common default for tools like V2Ray, not a promise your setup uses it - check your own client).use_default_cache_dir- use HuggingFace's normal cache location instead oflocal_dir.use_subdir- keep the repo's internal folder structure instead of flattening everything intolocal_dir.
Output is a single model_path string - wire it into whatever downstream node wants a filesystem path, or just use the node to pre-fetch a model before pointing a loader node's dropdown at it manually.
How to install it
ComfyUI Manager: search HFDownLoad Node for ComfyUI, install, restart.
Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/icesun963/ComfyUI_HFDownLoad
Restart ComfyUI. No extra Python dependencies beyond what huggingface_hub already needs, which ComfyUI almost certainly has installed already.
Common issues & troubleshooting
Files land in the wrong place. The default local_dir is models/diffusers - that's a generic placeholder, not a guess at what you're downloading. If a loader node can't find the checkpoint afterward, this is almost always why: go set local_dir to the exact folder that loader expects.
Downloads hang or time out. If you're not behind any network restriction, this is probably just HuggingFace being HuggingFace - retry, or lower max_workers if a flaky connection is choking on too many parallel streams. If you are behind a firewall that blocks huggingface.co outright (this is a genuinely common reason Chinese-authored node packs like this one ship a mirror toggle), try use_hfmirror first since it needs no extra setup, and fall back to use_localproxy pointed at whatever proxy client you actually run.
Gated or private repos. There's no auth token field anywhere in this node's inputs - it's built for public repos. If repo_id points at something gated, don't expect this node to get you in; you'll need to handle authentication another way (or download it manually once and let this node's use_default_cache_dir pick it up).
It's a small utility, treat it like one. The author's own README description is refreshingly blunt about this being "a simple modification" from someone who doesn't claim to be a strong Python developer. It does the one job - fetch a repo, put it somewhere - reliably enough, but don't expect resume-on-failure sophistication or detailed progress reporting beyond what huggingface_hub gives you for free. If a download dies partway, just re-run it.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| repo_id | STRING | ByteDance/Hyper-SD | — |
| local_dir | STRING | models/diffusers | — |
| ignore_patterns | COMBO | 11 options: none, big_files, safetensors, bin, safetensors,bin, pth, +5 | |
| max_workers | INT | 11–8 | — |
| download_single_file | STRING | — | |
| use_default_cache_dir | BOOLEAN | false | — |
| use_hfmirror | BOOLEAN | false | — |
| use_subdir | BOOLEAN | false | — |
| use_localproxy | BOOLEAN | false | — |
| localproxy | STRING | http://127.0.0.1:1081 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model_path | STRING | — |