HF Preset Download Manager
Batch-download your model stash from HuggingFace, then forget the URLs
The most annoying part of ComfyUI was never the graph - it's the downloading. The community has been saying it for years: "feels like I am downloading models and installing missing nodes 90% of the time." HF Preset Download Manager takes a swing at one half of that. Instead of hunting down the same checkpoint, LoRA, and VAE links every time you set up a machine, you save them once as a named preset, and one click re-downloads the whole list into the right folders.
It's a download manager, not a generation node. It touches no pixels, wires into nothing, and sits in the canvas purely as a launcher for its own UI. Drop it anywhere, click ⚙ Open Manager, and a dark-themed modal opens where you manage presets: add a model, pick where it lands, hit download, and the file shows up in ComfyUI/models/ where the checkpoints/VAE/LoRA loaders expect it.
How it works
Under the hood the node class PresetDownloadManager is about as simple as a ComfyUI node gets: empty INPUT_TYPES, no RETURN_TYPES, OUTPUT_NODE - a pure UI node whose real work lives on the backend. It registers its own HTTP routes on ComfyUI's server (/preset_download_manager/presets, /preset_download_manager/download, and a HuggingFace model-search endpoint), and the bundled JavaScript draws the button and the entire manager interface. Presets persist to a presets.json file in the pack's folder, so they survive restarts and are trivial to back up or share.
Downloads take one of two paths, and the code picks per model:
- Direct URL (the default) streams via
aiohttp. It retries up to 5 times with backoff (capped at 60s), and it does one genuinely clever thing: it reads the first kilobyte of the response and bails with a readable error if the server returned an HTML "you need to authenticate" page instead of the file. That's the exact failure mode that makes people think their link is broken. - HuggingFace repository uses
huggingface_hub, withresume_download=Trueso interrupted downloads pick up where they stopped, and a disk-space check viamodel_infobefore it commits. Tuning env vars exist too:PDM_MAX_RETRIES,PDM_RETRY_DELAY,PDM_DOWNLOAD_TIMEOUT,PDM_SNAPSHOT_WORKERS.
What you actually set
Nothing to wire - there are no inputs or outputs at all. Everything happens inside the manager UI, and only a few fields matter:
- Direct URL - paste the
https://huggingface.co/user/model/resolve/main/file.safetensorslink. This is the README's recommended path for grabbing a single file. - Use HuggingFace Repository - flip this on instead and give a model ID (
user/model) plus an optional Model Path likevae/vae.safetensors. - Save to Folder - standard ComfyUI folders (
checkpoints,loras,vae,upscale_models) or a custom path. - HF API Token - only for private or gated models; tokens start with
hf_. Public models need nothing.
Installing it
ComfyUI Manager handles it - search for "ComfyUI-PresetDownloadManager" or "Preset Download Manager" - or clone it by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/Smyshnikof/ComfyUI-PresetDownloadManager
Its dependencies are huggingface-hub>=0.34 and aiohttp>=3.8, which almost every ComfyUI install already has (ComfyUI's own server and model manager pull both in). So install is light, no heavy torch-adjacent deps. Restart ComfyUI and the node shows up under utils.
Where people get burned
- Leaving Model Path empty downloads the entire repository. A diffusers repo can be 10+ GB of files you mostly don't need. Give a specific file path if you want one file.
- "Already exists" is judged by size, not integrity. A killed direct-URL download leaves a partial file behind, and the next run skips it as "already downloaded." If a file won't load after a failed download, delete it and re-fetch.
- HF unreachable or slow? It retries on its own (up to 5), but if access is throttled in your region, the README suggests
export HF_ENDPOINT=https://hf-mirror.comor a proxy. - Button not appearing after adding the node: refresh the page and check the browser console - it's a JS overlay, so a stale frontend cache is the usual culprit.
Honest verdict: this is a niche quality-of-life tool from a small indie author (Smyshnikof, who you may recognize from GalaxyAce LoRA posts), with almost no community footprint - don't expect a support army. If you just need one checkpoint today, ComfyUI Manager's own model download does it with less ceremony. But if you rebuild machines or keep several setups in sync, a JSON preset list you can commit to a repo and replay with one click is a genuinely nice way to provision a fresh install.
Inputs (0)
No inputs
Outputs (0)
No outputs