π§ Git Repository Clone Manager
The node that installs other nodes (from inside a workflow)
- clone_report
- repository_list
Installing a ComfyUI node has always meant one of two things: clicking a button in ComfyUI Manager, or opening a terminal and typing the same git clone line you've typed a hundred times. GitCloneManager is the third option - a node that runs that clone inside your workflow, so you can paste a list of repositories, hit Run, and walk away while it clones nodes into custom_nodes/ and models into models/ with progress output. It's the kind of node that's redundant if you live in Manager and genuinely handy if you share workflows or manage several machines.
Under the hood it's not doing anything magical: it shells out to the git command (so git has to be installed and on your PATH) and manages a small queue of concurrent clones, with per-repo status, a history file, and interrupt handling. Everything it does, you could do by hand - the value is doing it to a whole list at once, in the right folders, without alt-tabbing.
The input format
repositories is the whole node, really. It's a multiline text box where each line is:
https://github.com/org/repo- cloned intocustom_nodes/<repo>https://github.com/org/repo custom_nodes/my-name- into a custom subfolderhttps://huggingface.co/org/model models/sd15- a model repo into your models dirbranch:main https://github.com/org/repo custom_nodes/repo- a specific branch
If no path is given, it auto-detects: huggingface.co URLs land in models/hf_repos/, everything else is assumed to be a custom node. That heuristic is worth remembering when you clone a non-HF model repo - give it an explicit models/... path or it'll end up in custom_nodes.
The inputs that matter
auto_clone(default on) - off means it just analyzes and reports without touching anything.force_update(default off) - on, an existing repo getsgit pullinstead of being skipped. This is the "update my nodes" switch, and it doubles as your re-run toggle.clone_depth- set above 0 for a shallow clone. Use it for big repos you only need once; it makes pulls later more painful.max_concurrent_clones- 2 is a sane default; don't crank it to 5 on a slow connection.hf_token/git_token(optional) - for private or gated repos. The node rewrites the URL with the token embedded, which works but does mean your token sits in the workflow JSON if you save it - treat that like you'd treat a password.
Outputs are two strings: clone_report (what happened to each repo) and repository_list (the resolved paths). Wire them into a text display node if you want to see results without reading the console.
Where people get burned
It doesn't install dependencies. This is the big one. Cloning a custom node repo puts the code in custom_nodes/, but a node's requirements.txt isn't installed by git clone - GitCloneManager doesn't run pip, and doesn't reload the backend either. So a freshly cloned node won't appear until you restart ComfyUI, and may still throw import errors until you install its Python deps yourself (or let Manager handle them). It's a node-installer, not a setup wizard.
force_update can delete things. If the target directory exists but isn't a git repo, force_update doesn't pull - it shutil.rmtrees the directory and reclones. Point that at a folder you care about and it's gone. Check your paths before enabling it.
No pip, no restart, no sandbox. The clone itself runs arbitrary code the moment ComfyUI imports the new pack. That's true of every install method in this ecosystem, but it's worth repeating when a node's whole job is downloading more nodes from URLs you paste in.
Install
Same clone dance, one level up:
cd ComfyUI/custom_nodes
git clone https://github.com/comfyuistudio/ComfyUI-Studio-nodes
Restart, and it's under "STUDIO NODES". Dependencies are only numpy/torch/Pillow. It's a small, single-commit pack - skim gitcloner.py before trusting it with your token strings; the code is readable and confirms exactly the behavior above.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| repositories | STRING | https://github.com/ltdrdata/ComfyUI-Manager https://huggingface.co/spaces/huggingface/CodeBERTa-small-v1 models/codebert https://github.com/WASasquatch/was-node-suite-comfyui branch:main https://github.com/user/repo custom_nodes/custom-repo | β |
| auto_clone | BOOLEAN | true | β |
| max_concurrent_clones | INT | 21β5 | β |
| clone_depth | INT | 00β100 | β |
| enable_notifications | BOOLEAN | true | β |
| force_update | BOOLEAN | false | β |
| clone_submodules | BOOLEAN | false | β |
| hf_tokenopt | STRING | β | |
| git_tokenopt | STRING | β |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| clone_report | STRING | β |
| repository_list | STRING | β |