Server Downloader Helper
Download missing models straight onto the ComfyUI server
First thing to know, because it will save you ten minutes of staring at the node menu: this is not a node you place on a canvas. ServerDownloader has zero inputs and zero outputs - its class is literally a noop whose only job is to register the pack. The real work happens invisibly: the pack installs a couple of HTTP routes on your ComfyUI backend and a browser extension that patches the "Missing Models" dialog. Search the node list for "Server Downloader Helper" and you'll find a graph node that does nothing if you drag it out; the thing you actually want is the button it injects elsewhere.
Here's the problem it solves. When you load a workflow whose checkpoint, LoRA, or VAE isn't on the machine, ComfyUI pops up a "Missing Models / 缺失模型" dialog with a download link. That's fine on your own PC. It's a nightmare when ComfyUI runs on a remote box - a RunPod rental, a home server, a headless box - because that dialog's download button pulls the model into your browser's download folder, not the server's models/ directory. So you grab 6 GB on your laptop, then upload it back over a slow pipe, or you SSH in and hand-curl every missing file. This node kills that round trip: it adds a "⬇ Server Download" button right next to the existing one, and the server downloads the file itself, straight into the right folder.
How it works
The mechanism is a textbook ComfyUI extension split, and it's grounded in the code, not vibes:
- The backend (
server_downloader.py) registers five routes onPromptServer:POST /server_downloader/downloadkicks off the download as an asyncaiohttptask,GET /status/{task_id}reports progress,POST /cancel/{task_id}cancels, andGET /list_typesreturns the real registered model directories fromfolder_pathsso the dialog's type dropdown isn't a hardcoded lie. - The frontend (
web/js/server_downloader.js) runs aMutationObserveron the DOM. When a "Missing Models" dialog appears, it finds the Download button and inserts "⬇ Server Download" beside it. - Click that button and it tries to auto-extract the URL, filename, and model type from the dialog row (and your clipboard), then shows you a small form to confirm. Nice touch: the frontend rewrites HuggingFace
blob/links toresolve/, becauseblobis a viewer page, not the actual file.
The inputs that matter
There aren't any - no info_schema fields, no widgets, no sockets. What you actually set is the dialog the button opens: Download URL, Save Filename, and Model Type (which maps to a directory under models/, defaults to checkpoints, and includes a "custom type" escape hatch). That's the whole interface.
Installing it
Grab it in ComfyUI Manager (search comfyui-server-downloader), or the manual way:
cd ComfyUI/custom_nodes
git clone https://github.com/LittleLollipop/comfyui-server-downloader.git
Then restart ComfyUI. No requirements.txt, no model files, no GPU footprint - it depends only on aiohttp, which ComfyUI already ships. The whole pack is one Python file plus one JS file.
Where people get burned
- Button not appearing after an update. Restart the backend, then hard-refresh the browser (
Ctrl+Shift+R/Cmd+Shift+R), and confirm[ServerDownloader] loadedin the console. The frontend script is cached aggressively. - A button that shows "No URL" (or opens with an empty URL). The extension scrapes the dialog's DOM to find the download link, and some frontend versions bury that link deeper than it can reach - it then falls back to your clipboard, so copy the URL first. This is the pack's own acknowledged weak spot.
- The download dies at HTTP 4xx/5xx. The server needs outbound access to Civitai or HuggingFace; a firewall-adjacent server will fail here where your laptop wouldn't.
- Security, and this is the real one. You're adding unauthenticated endpoints to a ComfyUI instance that can download arbitrary URLs into its models directory. On an exposed server with no auth - the exact setup this node is for - that's a disk-filling and phishing-adjacent hole. Only run it on a box that isn't publicly reachable without credentials.
The honest verdict
If ComfyUI lives on the same machine you browse from, this saves you nothing and you can skip it. If your models live on a rented or remote box, it's the difference between "download, then scp back up" and one click. Small, sharp, and worth a handful of the minutes it takes to install - for one specific kind of user.
Inputs (0)
No inputs
Outputs (0)
No outputs