Plugin Downloader
Your custom_nodes Folder Is a Disaster Waiting to Happen — Back It Up
The graph node is the decoy - the tool lives in a browser tab
Honest pitch before anything else: the PluginDownloader node you drop into a workflow is basically a stub. It has exactly one input (plugin_name, default example_plugin), no outputs, and its download_plugin method returns an empty tuple with a code comment that says it all: "Real download handled via HTTP endpoint." You can't wire it into anything, and running it does nothing. The actual tool this pack ships is a web page at http://localhost:8188/plugin_downloader plus a button ComfyUI adds to the sidebar menu. Don't feel misled - that's the whole design. This isn't a generation node, it's a housekeeping utility that happens to wear a custom-node costume.
What it's actually for
Every ComfyUI install has a custom_nodes/ folder full of community packs that took you hours to assemble. That folder is the part of your setup you genuinely can't re-download on demand: repos get deleted, updated, or break the exact day you need to rebuild a machine. This tool fixes that by making your entire node collection zip-in, zip-out. It lists every installed plugin with its size and file count, filters by name, downloads one at a time, or hits a single button to grab all of them. Then it works in reverse: upload a local .zip and it unpacks it straight into custom_nodes/, with an overwrite confirmation so you don't accidentally nuke an existing install.
So the real use cases: back up before you update ComfyUI, snapshot a known-good set of plugins before an upgrade roulette session, or move one node to another machine without hunting down its GitHub page. The community's own advice for "what if my repos disappear" is basically "back the files up yourself" - this is exactly that, but with a button.
Honest competition: ComfyUI Manager already has a snapshot feature that saves and restores the whole installed set, and for most people it's the better first stop. This pack is for when you want the actual folders as archives - say, you can't risk a Manager restore failing mid-update, or you're copying nodes to an offline box.
Install
Via ComfyUI Manager, search Plugin Downloader for ComfyUI. Or the manual route:
cd ComfyUI/custom_nodes
git clone https://github.com/huihuihuiz/plugin_downloader
Restart ComfyUI and you're done. Dependency footprint is refreshingly tiny - the only entry in requirements.txt is requests - and there are no model files to fetch. This is a rare install where nothing can go sideways on the pip front.
Using it
Click the "插件下载器" button in the sidebar menu (or open /plugin_downloader on your ComfyUI port), hit refresh, and every folder in custom_nodes shows up with its MB count and file count. Search filters the list, each row has a download button, and "download all" grabs everything in sequence. ZIPs are built on the fly and skip .git, node_modules, and __pycache__, so you archive code, not cruft. To install from a ZIP, use the upload button; the tool tells you to restart ComfyUI before the new node loads.
Where people get burned:
- Adding the node to a graph expecting action. It's an output node that does nothing - the page and the menu button are the product. If you dragged it into a workflow, you're holding the decoy.
- Skipping the restart. After an upload install, ComfyUI won't load the new pack until you restart.
- The 500 MB cap and the 409. Uploads are limited to 500 MB, and if a plugin with that name already exists you'll get an error unless you confirm the overwrite.
- Trust the ZIP, not the tool. The extraction is zip-slip protected (paths trying to escape
custom_nodes/get rejected), which is genuinely good hygiene for a project of this size. But installing a node means running its code with your user account - the exact attack surface that's been abused in this ecosystem. This tool will happily install malware for you; it's a file manager, not a security gate. Only feed it zips you got from a source you already trust.
Bottom line
A small, genuinely useful utility for anyone who maintains a serious custom_nodes collection - and a decent example of a niche being solved by a web app dressed as a custom node. The near-zero impressions aren't a quality knock so much as a sign of how niche backup tooling is around here: everyone means to do it, most people are trusting fate. If you're the paranoid type, this is thirty seconds of insurance that'll save you a miserable afternoon someday.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| plugin_name | STRING | example_plugin | — |
Outputs (0)
No outputs