MD: Global Update Architect
Update every custom node from inside ComfyUI — with the safety rails on
- report_text
- updates_pending
Every ComfyUI veteran knows the ritual: a workflow won't load, the error names a node you've never heard of, and you spend the afternoon updating things and hoping nothing breaks. MD_GlobalUpdateManager is the author's attempt to turn that chore into a node - a batch updater for all your custom_nodes folders that runs inside the graph, with backups, dry runs, and an ignore list so it doesn't touch itself or ComfyUI Manager.
It's genuinely aimed at the pain point the community complains about most - "I feel like I'm downloading models and installing missing nodes 90% of the time" is basically a meme at this point. What this node adds over ComfyUI Manager's built-in updater is the git plumbing: injecting git into manual (non-repo) installs, dependency-conflict analysis, snapshots, and stateful batch updates that chunk the work so the UI doesn't time out mid-sweep.
How it works
Everything is driven off a single mode dropdown with seven operations: status check, update one node by folder name, "inject git" to convert a manually-downloaded folder into a proper repo, dependency-conflict analysis, a global snapshot zip, a stateful batch update, and the nuclear "update ALL + install deps" option. Under the hood it shells out to git on each repo in custom_nodes, skips anything in your ignore list, and - unless you disable it - zips each folder before modifying it.
The inputs that matter
- mode - pick your operation. The tooltip's advice to run 📊 Global Status Check first is right; see the damage before you swing the hammer.
- dry_run - simulate without changing files. Leave this on the first time you try a mode you've never run.
- do_backup - zip before modifying. Slower, but it's your rollback path. Keep it on.
- batch_size - nodes processed per run for batch mode. The default of 10 exists because ComfyUI's UI can time out if you try to update everything in one go.
- ignore_list - comma-separated folder names to skip.
MD_NodesandComfyUI-Managerare already ignored by default, which is sensible - updating yourself mid-run is how you get weird states. - target_node_ID / repair_url - the exact folder name (like
ComfyUI-VideoHelperSuite) and repo URL, used by the single-node and inject-git modes.
Outputs: a report_text string summarizing what happened, and updates_pending as an INT you can wire to a conditional node if you want to gate another action on "are there pending updates."
Installing
Part of MD Nodes - install once, use everywhere:
cd path/to/ComfyUI/custom_nodes
git clone https://github.com/MDMAchine/ComfyUI_MD_Nodes.git
cd ComfyUI_MD_Nodes
pip install -r requirements.txt
Or via ComfyUI Manager, search MD Nodes. Restart ComfyUI. No models needed; this node only requires git on your PATH.
Common issues
Two things to watch. First, the trigger input: like a few MD maintenance nodes, it wants an INT connected to force re-execution on each queue run - a changing seed works. If you tweak settings and nothing happens on re-run, that's why. Second, the "Update ALL + Install Deps" mode is flagged High Risk in the tooltip for a reason: it can pull in dependency conflicts across dozens of packs at once. Run the dependency-conflict analyzer first, keep dry_run on for your first pass, and treat FORCE RESET in the sibling Repo Fortress node as the "I broke it and need to unbreak it" lever. And remember the classic backup rule - the pack's own auto-backups are great, but they live inside custom_nodes; if you're planning surgery on a system, a proper snapshot elsewhere doesn't hurt.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| mode | COMBO | 📊 Global Status Check | OPERATION MODE • Purpose: Select the maintenance action. • Status Check: View current versions safely. • Update Single: Target specific node (Requires ID). • Inject Git: Fix manual installs (Requires URL). • Batch Update: Process multiple nodes safely. ⭐ Recommended: Status Check before any updates. |
| batch_size | INT | 101–200 | BATCH SIZE • Purpose: Number of nodes to process per run. • Why: Prevents ComfyUI UI timeouts during massive global updates. ⭐ Recommended: 10. |
| dry_run | BOOLEAN | false | DRY RUN (SIMULATION) • Purpose: Test actions without making permanent changes. • Effect: Prints what *would* happen instead of doing it. ⭐ Recommended: True when testing new modes. |
| do_backup | BOOLEAN | true | AUTO-BACKUP • Purpose: Create a zip snapshot before modifying a folder. • Trade-offs: Slower execution, but 100% safe rollback if update breaks. ⭐ Recommended: True. |
| ignore_list | STRING | IGNORE LIST • Purpose: Comma-separated list of folder names to skip. • Note: 'MD_Nodes' and 'ComfyUI-Manager' are ignored by default. | |
| target_node_ID | STRING | TARGET NODE FOLDER (ID) • Purpose: The exact folder name for 'Single Node' or 'Inject Git' modes. • Example: 'ComfyUI-VideoHelperSuite' | |
| repair_url | STRING | REPAIR URL • Purpose: The GitHub repository URL used for 'Inject Git' mode. • Example: 'https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite' | |
| triggeropt | INT | 00–9007199254740991 | EXECUTION TRIGGER • Connect a button or changing seed to force execution. |
| debug_modeopt | COMBO | 0 - Silent | LOGGING VERBOSITY • Controls console output and System/IO profiling. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| report_text | STRING | — |
| updates_pending | INT | — |