comfyui-open-manager 0.1.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. comfyui_open_manager-0.1.4/LICENSE +21 -0
  2. comfyui_open_manager-0.1.4/PKG-INFO +258 -0
  3. comfyui_open_manager-0.1.4/README.md +227 -0
  4. comfyui_open_manager-0.1.4/comfyui_manager/__init__.py +213 -0
  5. comfyui_open_manager-0.1.4/comfyui_open_manager.egg-info/PKG-INFO +258 -0
  6. comfyui_open_manager-0.1.4/comfyui_open_manager.egg-info/SOURCES.txt +49 -0
  7. comfyui_open_manager-0.1.4/comfyui_open_manager.egg-info/dependency_links.txt +1 -0
  8. comfyui_open_manager-0.1.4/comfyui_open_manager.egg-info/requires.txt +9 -0
  9. comfyui_open_manager-0.1.4/comfyui_open_manager.egg-info/top_level.txt +2 -0
  10. comfyui_open_manager-0.1.4/open_manager/__init__.py +17 -0
  11. comfyui_open_manager-0.1.4/open_manager/advisories.py +114 -0
  12. comfyui_open_manager-0.1.4/open_manager/catalog.py +371 -0
  13. comfyui_open_manager-0.1.4/open_manager/compat.py +244 -0
  14. comfyui_open_manager-0.1.4/open_manager/deps.py +108 -0
  15. comfyui_open_manager-0.1.4/open_manager/developer.py +314 -0
  16. comfyui_open_manager-0.1.4/open_manager/downloads.py +994 -0
  17. comfyui_open_manager-0.1.4/open_manager/environment.py +261 -0
  18. comfyui_open_manager-0.1.4/open_manager/health.py +464 -0
  19. comfyui_open_manager-0.1.4/open_manager/impact.py +441 -0
  20. comfyui_open_manager-0.1.4/open_manager/installer.py +976 -0
  21. comfyui_open_manager-0.1.4/open_manager/keys.py +264 -0
  22. comfyui_open_manager-0.1.4/open_manager/library.py +729 -0
  23. comfyui_open_manager-0.1.4/open_manager/license_files.py +410 -0
  24. comfyui_open_manager-0.1.4/open_manager/licenses.py +207 -0
  25. comfyui_open_manager-0.1.4/open_manager/local.py +208 -0
  26. comfyui_open_manager-0.1.4/open_manager/log.py +22 -0
  27. comfyui_open_manager-0.1.4/open_manager/metadata.py +547 -0
  28. comfyui_open_manager-0.1.4/open_manager/models.py +534 -0
  29. comfyui_open_manager-0.1.4/open_manager/monitor.py +889 -0
  30. comfyui_open_manager-0.1.4/open_manager/nodemap.py +131 -0
  31. comfyui_open_manager-0.1.4/open_manager/paths.py +72 -0
  32. comfyui_open_manager-0.1.4/open_manager/registry.py +685 -0
  33. comfyui_open_manager-0.1.4/open_manager/risk.py +678 -0
  34. comfyui_open_manager-0.1.4/open_manager/routes.py +2140 -0
  35. comfyui_open_manager-0.1.4/open_manager/selfupdate.py +260 -0
  36. comfyui_open_manager-0.1.4/open_manager/sources.py +167 -0
  37. comfyui_open_manager-0.1.4/open_manager/themes/comfy-dark.json +96 -0
  38. comfyui_open_manager-0.1.4/open_manager/themes/comfy-light.json +97 -0
  39. comfyui_open_manager-0.1.4/open_manager/themes/coral.json +97 -0
  40. comfyui_open_manager-0.1.4/open_manager/themes/ember.json +96 -0
  41. comfyui_open_manager-0.1.4/open_manager/themes/sandstone.json +97 -0
  42. comfyui_open_manager-0.1.4/open_manager/themes/verdant.json +96 -0
  43. comfyui_open_manager-0.1.4/open_manager/topics.py +152 -0
  44. comfyui_open_manager-0.1.4/open_manager/trust.py +149 -0
  45. comfyui_open_manager-0.1.4/open_manager/virustotal.py +385 -0
  46. comfyui_open_manager-0.1.4/open_manager/web/comfy-logomark-yellow.svg +3 -0
  47. comfyui_open_manager-0.1.4/open_manager/web/discovery.svg +17 -0
  48. comfyui_open_manager-0.1.4/open_manager/web/open_manager.js +11097 -0
  49. comfyui_open_manager-0.1.4/open_manager/web/themes.js +682 -0
  50. comfyui_open_manager-0.1.4/pyproject.toml +73 -0
  51. comfyui_open_manager-0.1.4/setup.cfg +4 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Jordan Thompson (WASasquatch)
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,258 @@
1
+ Metadata-Version: 2.4
2
+ Name: comfyui-open-manager
3
+ Version: 0.1.4
4
+ Summary: An alternative package manager for ComfyUI. Browse and install custom nodes and custom themes.
5
+ Author: Jordan Thompson (WASasquatch)
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/WASasquatch/open-manager-comfyui
8
+ Project-URL: Repository, https://github.com/WASasquatch/open-manager-comfyui
9
+ Project-URL: Issues, https://github.com/WASasquatch/open-manager-comfyui/issues
10
+ Keywords: comfyui,comfyui-manager,custom-nodes,package-manager,stable-diffusion
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Intended Audience :: End Users/Desktop
13
+ Classifier: Operating System :: OS Independent
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Topic :: Multimedia :: Graphics
20
+ Classifier: Topic :: System :: Software Distribution
21
+ Requires-Python: >=3.10
22
+ Description-Content-Type: text/markdown
23
+ License-File: LICENSE
24
+ Requires-Dist: aiohttp
25
+ Requires-Dist: packaging
26
+ Requires-Dist: tomli; python_version < "3.11"
27
+ Provides-Extra: monitor
28
+ Requires-Dist: psutil; extra == "monitor"
29
+ Requires-Dist: pynvml; extra == "monitor"
30
+ Dynamic: license-file
31
+
32
+ # Open Manager for ComfyUI ![Open Manager](https://img.shields.io/badge/Open-Manager-yellow) ![ComfyUI](https://img.shields.io/badge/ComfyUI-Custom_Node-blue) ![License](https://img.shields.io/badge/License-MIT-green) [![Donate](https://img.shields.io/badge/Donate-PayPal-blue.svg)](https://paypal.me/ThompsonJordan?country.x=US&locale.x=en_US)
33
+
34
+ <img src="https://raw.githubusercontent.com/WASasquatch/open-manager-comfyui/main/open-manager-banner.png" alt="Open Manager for ComfyUI">
35
+
36
+ <img src="https://raw.githubusercontent.com/WASasquatch/open-manager-comfyui/main/open-manager-screenshot.png" alt="Open Manager for ComfyUI">
37
+
38
+ https://github.com/user-attachments/assets/58e5d65e-ce23-464b-8c9a-2a249818a1d1
39
+
40
+ ## An alternative package manager for ComfyUI.
41
+
42
+ Browse the Comfy Registry with ease, install from registry or GitHub, and see what
43
+ an install would do to your environment before it runs. It warns; it never blocks.
44
+
45
+ **_Open Manager_** _is not affiliated with ComfyUI-Manager or the Comfy Registry._
46
+
47
+ ---
48
+
49
+ ## Why Open Manager?
50
+
51
+ ComfyUI-Manager installs packs well. Open Manager is built around telling you what you are
52
+ installing before it happens.
53
+
54
+ | | |
55
+ | --- | --- |
56
+ | Every version, with its status | Flagged and withheld included, never hidden and never silently swapped for an approved one |
57
+ | Before you install | The findings against that version, the dependency changes it would make, the nodes it adds, and whether the ComfyUI and hardware it asks for match yours |
58
+ | What's in the box | A GitHub install is read first: compiled binaries, pickle data, bundled wheels and sourceless bytecode are named, with what each means. False positives possible |
59
+ | Licences | Read from each pack, sortable, most permissive first |
60
+ | Your own list | Repositories you add by URL, with an update path and inspection, kept in `user/` so they outlive an uninstall |
61
+ | Trust the author | A pack from outside the registry asks who you are trusting, once per author or every time |
62
+ | Any ref | Read and install a pack at another branch or recent commit, README and gallery together |
63
+ | Missing nodes | The packs supplying the node types a workflow is missing |
64
+ | Node names claimed twice | Silent in ComfyUI, where the last pack loaded wins. Named here, with which one is in use |
65
+ | Fast sync | The whole Comfy Registry in seconds, at a concurrency you set |
66
+
67
+ A risk changes the wording of the confirmation, not whether Install works. The one exception is
68
+ a version the registry has banned; a setting lifts that too, because the registry's scanner bans
69
+ for reasons it does not publish (`OPEN_MANAGER_ALLOW_BANNED=1` for a headless host).
70
+
71
+ ### Beyond packs
72
+
73
+ Three pieces sit alongside the pack manager. None of them adds a node to your graph.
74
+
75
+ | | | Default |
76
+ | --- | --- | --- |
77
+ | [Download Manager](https://github.com/WASasquatch/open-manager-comfyui/blob/main/DOWNLOADS.md) | Fetches the models a workflow needs: resumes, verifies, and picks the drive | on |
78
+ | [Model Library](https://github.com/WASasquatch/open-manager-comfyui/blob/main/MODELS.md) | What is on disk across every registered folder: duplicates, unreferenced, storage | off |
79
+ | [Resource Monitor](https://github.com/WASasquatch/open-manager-comfyui/blob/main/MONITOR.md) | A compact CPU/RAM/VRAM strip, and a Memory panel behind it | off |
80
+
81
+ ---
82
+
83
+ ## Installing
84
+
85
+ Two ways to load, one core. Pick either.
86
+
87
+ **As a custom node**, beside the official manager. Clone into `custom_nodes` and restart:
88
+
89
+ ```sh
90
+ cd ComfyUI/custom_nodes
91
+ git clone https://github.com/WASasquatch/open-manager-comfyui.git
92
+ ```
93
+
94
+ It coexists with ComfyUI-Manager and adds its own sidebar tab.
95
+
96
+ **As a pip package**, through `--enable-manager`:
97
+
98
+ ```sh
99
+ pip uninstall comfyui-manager
100
+ pip install comfyui-open-manager
101
+
102
+ # Launch ComfyUI with --enable-manager flag
103
+ python main.py --enable-manager
104
+ ```
105
+
106
+ It takes the `comfyui_manager` name and replaces the official manager. A later install of
107
+ `comfyui-manager`, or a desktop auto-update, puts the official one back.
108
+
109
+ In this mode it also writes `user/comfyui.log`, rotating to `comfyui.prev.log` and
110
+ `comfyui.prev2.log`, because ComfyUI writes no log of its own unless launched with
111
+ `--file-log` and the file usually there is written by the manager being replaced. Set
112
+ `OPEN_MANAGER_NO_LOG` to leave it alone.
113
+
114
+ Nothing is downloaded or built at load time. You decide what to install.
115
+
116
+ ### Access keys (Optional)
117
+
118
+ | For | Variable | Get one at |
119
+ |---|---|---|
120
+ | Gated and private models | `HF_TOKEN` | huggingface.co/settings/tokens |
121
+ | Starring, higher rate limit | `GITHUB_TOKEN` | github.com/settings/tokens |
122
+ | Scanning an install | `VIRUS_TOTAL_KEY` | virustotal.com/gui/my-apikey |
123
+
124
+ ---
125
+
126
+ ## Notes
127
+
128
+ **Internet required.** Open Manager reads the Comfy Registry live. It contacts these hosts,
129
+ and only these:
130
+
131
+ | Host | When |
132
+ |---|---|
133
+ | `api.comfy.org` | browsing and installing |
134
+ | `cdn.comfy.org` | downloading a registry version to install |
135
+ | `codeload.github.com` | downloading a GitHub repository to install |
136
+ | `raw.githubusercontent.com` | licences, READMEs, images |
137
+ | `api.github.com` | a pack page's stats and gallery, branches and commits, starring, and the licence lookup when it is on |
138
+ | wherever a pack points | a gallery entry given as an absolute URL. Turn galleries off to keep to the hosts above |
139
+
140
+ **Where it appears.** A sidebar tab on the current interface. On ComfyUI's legacy menu
141
+ (`Settings -> Comfy -> Use new menu -> Disabled`) it adds an **Open Manager** button there
142
+ instead. Where it replaces the manager, the top menu's **Extensions** button opens it too.
143
+
144
+ **What Extensions opens.** It follows ComfyUI: the panel on the modern interface, and the
145
+ classic menu of destinations where ComfyUI was started with `--enable-manager-legacy-ui`.
146
+ Override it under *What the Extensions button opens*. Both carry every destination, so this
147
+ decides the way in rather than what is reachable, and the sidebar tab is unaffected.
148
+
149
+ **Trust.** Incoporated a simple trust gate for certain actions with Open Manager.
150
+ Make sure you trust the authors.
151
+
152
+ **Settings.** Under `Settings -> Open Manager`. Set `open_manager.registry.BASE_URL` to route
153
+ the registry through a mirror or a private index. Set a GitHub token to raise the anonymous
154
+ 60 calls an hour to 5,000; without one, pack pages still show their README, gallery and
155
+ versions.
156
+
157
+ **Requirements.** `torch`, `torchaudio`, `torchsde` and `torchvision` are never installed
158
+ from a pack's requirements: they carry the build your ComfyUI was set up with. Anything held
159
+ back is named in the install output. To substitute a package, map it in
160
+ `user/open_manager/pip_overrides.json`:
161
+
162
+ ```json
163
+ { "opencv-python": "opencv-python-headless>=4.9" }
164
+ ```
165
+
166
+ **Trust.** A pack from outside the registry asks who you are trusting before installing it,
167
+ and again before loading a workflow of theirs. Answer once per author or every time, under
168
+ `Settings -> Open Manager`. Trusted authors are written to
169
+ `user/open_manager/trusted_authors.json`, and trust never hides a finding.
170
+
171
+ **Your GitHub list.** Add repositories by URL or as `owner/repo`. Each installs, updates and
172
+ uninstalls like a registry pack. The list is written to
173
+ `user/open_manager/github_sources.json`, outside the pack, so it survives an uninstall.
174
+ **Remove from list** delists and uninstalls in one step.
175
+
176
+ ---
177
+
178
+ ## For pack authors
179
+
180
+ Declare a `[tool.open_manager]` table in your `pyproject.toml`. Every field is optional and
181
+ packs without the table are unaffected. For an installed pack these are read from the copy on
182
+ disk, with the repository as the fallback.
183
+
184
+ ```toml
185
+ [tool.open_manager]
186
+ incompatible = ["numpy>=2.0"] # declare known conflicts with other packages
187
+ source = "github" # prefer installing from the repository
188
+ branch = "main" # default branch to install from
189
+ docs = "https://example.com/docs" # documentation URL
190
+ funding = "https://ko-fi.com/you" # funding URL
191
+ release_note = "1.4.0 needs config regen." # shown above the version list, 600 chars
192
+ example_workflows = ["workflows/*.json"] # a path, a glob, or a directory
193
+ themes = ["themes/my-theme.json"] # list themes to offer
194
+ gallery = [ # shown off on the pack page, up to 24, `png`,
195
+ # `jpg`, `jpeg`, `gif`, `webp`, `avif`, and
196
+ # `mp4`, `webm`, `mov` for clips
197
+ "docs/*.png", # a path or glob in your repository
198
+ "https://cdn.example.com/after.webp", # or a file hosted anywhere
199
+ ]
200
+ ```
201
+
202
+ Leave `example_workflows` out and `workflows/`, `workflow/`, `examples/`, `example/` and
203
+ `example_workflows/` are read instead. An image named for a workflow beside it becomes its
204
+ thumbnail. `docs` and `funding` fall back to `[project.urls]`.
205
+
206
+ ---
207
+
208
+ ## Theme format
209
+
210
+ A theme is a ComfyUI colour palette with an optional `extras` block. ComfyUI reads `colors`
211
+ and ignores `extras`; Open Manager reads both. Themes listed in `[tool.open_manager] themes`
212
+ appear on the pack page with an Add button. Copy one of the six in
213
+ [`open_manager/themes/`](https://github.com/WASasquatch/open-manager-comfyui/blob/main/open_manager/themes/), change the id and the colours.
214
+
215
+ ```jsonc
216
+ {
217
+ "id": "my_theme", // unique; the key it is stored under
218
+ "name": "My Theme", // shown in the theme picker
219
+ "version": 1, // raise to publish a change
220
+ "light_theme": true, // light palettes must set this, or the interface stays dark
221
+
222
+ "colors": {
223
+ "node_slot": { "IMAGE": "#64b5f6", "LATENT": "#ff9cf9" }, // wire colour per socket
224
+ "litegraph_base": { "CLEAR_BACKGROUND_COLOR": "#211927", // canvas
225
+ "NODE_DEFAULT_COLOR": "#f2ff59", // node header
226
+ "NODE_DEFAULT_BGCOLOR": "#2e2438", // node body
227
+ "BACKGROUND_IMAGE": "data:image/svg+xml;base64,..." },
228
+ "comfy_base": { "fg-color": "#f0efed", "bg-color": "#211927" } // interface, incl. Open Manager
229
+ },
230
+
231
+ "extras": {
232
+ "shape": { "radius": 10, "titleHeight": 28, "slotHeight": 20 },
233
+ "links": { "mode": "spline", "border": false }, // spline | linear | straight
234
+ "categories": { "loaders": "#352864", "sampling": "#4d3979" }, // header per node category
235
+ "nodes": { "KSampler": "#6b4fa8", // header per node class
236
+ "VAEDecode": { "color": "#71639a", "title": "Decode" } },
237
+ "glow": { "selected": "#f2ff59", "blur": 16 } // static, on selection
238
+ }
239
+ }
240
+ ```
241
+
242
+ | | |
243
+ | --- | --- |
244
+ | Categories | Matched on the full lowercased category path, longest first, so `was suite/image/masking` wins over `was suite/image`. Core nodes also match the segment below `model/` |
245
+ | Precedence | A colour the user set on a node wins, then a `nodes` rule, then a `categories` tint |
246
+ | Nothing is saved | Header, title and text colour are applied for the draw and undone after, so they never enter a saved workflow |
247
+ | Bounded | Unknown keys are dropped and numbers are range-checked; there is no animation, and a theme cannot ask for one |
248
+ | Scoped | Theme color palette `extras` apply only while your theme is active, and geometry is restored when the user switches away |
249
+
250
+ ---
251
+
252
+ ## Licence
253
+
254
+ MIT, see [`LICENSE`](https://github.com/WASasquatch/open-manager-comfyui/blob/main/LICENSE).
255
+
256
+ The GitHub mark shown on links to github.com is `mark-github` from
257
+ [Octicons](https://github.com/primer/octicons), MIT licensed, Copyright (c) GitHub Inc. It is
258
+ used only for links that go to GitHub.
@@ -0,0 +1,227 @@
1
+ # Open Manager for ComfyUI ![Open Manager](https://img.shields.io/badge/Open-Manager-yellow) ![ComfyUI](https://img.shields.io/badge/ComfyUI-Custom_Node-blue) ![License](https://img.shields.io/badge/License-MIT-green) [![Donate](https://img.shields.io/badge/Donate-PayPal-blue.svg)](https://paypal.me/ThompsonJordan?country.x=US&locale.x=en_US)
2
+
3
+ <img src="https://raw.githubusercontent.com/WASasquatch/open-manager-comfyui/main/open-manager-banner.png" alt="Open Manager for ComfyUI">
4
+
5
+ <img src="https://raw.githubusercontent.com/WASasquatch/open-manager-comfyui/main/open-manager-screenshot.png" alt="Open Manager for ComfyUI">
6
+
7
+ https://github.com/user-attachments/assets/58e5d65e-ce23-464b-8c9a-2a249818a1d1
8
+
9
+ ## An alternative package manager for ComfyUI.
10
+
11
+ Browse the Comfy Registry with ease, install from registry or GitHub, and see what
12
+ an install would do to your environment before it runs. It warns; it never blocks.
13
+
14
+ **_Open Manager_** _is not affiliated with ComfyUI-Manager or the Comfy Registry._
15
+
16
+ ---
17
+
18
+ ## Why Open Manager?
19
+
20
+ ComfyUI-Manager installs packs well. Open Manager is built around telling you what you are
21
+ installing before it happens.
22
+
23
+ | | |
24
+ | --- | --- |
25
+ | Every version, with its status | Flagged and withheld included, never hidden and never silently swapped for an approved one |
26
+ | Before you install | The findings against that version, the dependency changes it would make, the nodes it adds, and whether the ComfyUI and hardware it asks for match yours |
27
+ | What's in the box | A GitHub install is read first: compiled binaries, pickle data, bundled wheels and sourceless bytecode are named, with what each means. False positives possible |
28
+ | Licences | Read from each pack, sortable, most permissive first |
29
+ | Your own list | Repositories you add by URL, with an update path and inspection, kept in `user/` so they outlive an uninstall |
30
+ | Trust the author | A pack from outside the registry asks who you are trusting, once per author or every time |
31
+ | Any ref | Read and install a pack at another branch or recent commit, README and gallery together |
32
+ | Missing nodes | The packs supplying the node types a workflow is missing |
33
+ | Node names claimed twice | Silent in ComfyUI, where the last pack loaded wins. Named here, with which one is in use |
34
+ | Fast sync | The whole Comfy Registry in seconds, at a concurrency you set |
35
+
36
+ A risk changes the wording of the confirmation, not whether Install works. The one exception is
37
+ a version the registry has banned; a setting lifts that too, because the registry's scanner bans
38
+ for reasons it does not publish (`OPEN_MANAGER_ALLOW_BANNED=1` for a headless host).
39
+
40
+ ### Beyond packs
41
+
42
+ Three pieces sit alongside the pack manager. None of them adds a node to your graph.
43
+
44
+ | | | Default |
45
+ | --- | --- | --- |
46
+ | [Download Manager](https://github.com/WASasquatch/open-manager-comfyui/blob/main/DOWNLOADS.md) | Fetches the models a workflow needs: resumes, verifies, and picks the drive | on |
47
+ | [Model Library](https://github.com/WASasquatch/open-manager-comfyui/blob/main/MODELS.md) | What is on disk across every registered folder: duplicates, unreferenced, storage | off |
48
+ | [Resource Monitor](https://github.com/WASasquatch/open-manager-comfyui/blob/main/MONITOR.md) | A compact CPU/RAM/VRAM strip, and a Memory panel behind it | off |
49
+
50
+ ---
51
+
52
+ ## Installing
53
+
54
+ Two ways to load, one core. Pick either.
55
+
56
+ **As a custom node**, beside the official manager. Clone into `custom_nodes` and restart:
57
+
58
+ ```sh
59
+ cd ComfyUI/custom_nodes
60
+ git clone https://github.com/WASasquatch/open-manager-comfyui.git
61
+ ```
62
+
63
+ It coexists with ComfyUI-Manager and adds its own sidebar tab.
64
+
65
+ **As a pip package**, through `--enable-manager`:
66
+
67
+ ```sh
68
+ pip uninstall comfyui-manager
69
+ pip install comfyui-open-manager
70
+
71
+ # Launch ComfyUI with --enable-manager flag
72
+ python main.py --enable-manager
73
+ ```
74
+
75
+ It takes the `comfyui_manager` name and replaces the official manager. A later install of
76
+ `comfyui-manager`, or a desktop auto-update, puts the official one back.
77
+
78
+ In this mode it also writes `user/comfyui.log`, rotating to `comfyui.prev.log` and
79
+ `comfyui.prev2.log`, because ComfyUI writes no log of its own unless launched with
80
+ `--file-log` and the file usually there is written by the manager being replaced. Set
81
+ `OPEN_MANAGER_NO_LOG` to leave it alone.
82
+
83
+ Nothing is downloaded or built at load time. You decide what to install.
84
+
85
+ ### Access keys (Optional)
86
+
87
+ | For | Variable | Get one at |
88
+ |---|---|---|
89
+ | Gated and private models | `HF_TOKEN` | huggingface.co/settings/tokens |
90
+ | Starring, higher rate limit | `GITHUB_TOKEN` | github.com/settings/tokens |
91
+ | Scanning an install | `VIRUS_TOTAL_KEY` | virustotal.com/gui/my-apikey |
92
+
93
+ ---
94
+
95
+ ## Notes
96
+
97
+ **Internet required.** Open Manager reads the Comfy Registry live. It contacts these hosts,
98
+ and only these:
99
+
100
+ | Host | When |
101
+ |---|---|
102
+ | `api.comfy.org` | browsing and installing |
103
+ | `cdn.comfy.org` | downloading a registry version to install |
104
+ | `codeload.github.com` | downloading a GitHub repository to install |
105
+ | `raw.githubusercontent.com` | licences, READMEs, images |
106
+ | `api.github.com` | a pack page's stats and gallery, branches and commits, starring, and the licence lookup when it is on |
107
+ | wherever a pack points | a gallery entry given as an absolute URL. Turn galleries off to keep to the hosts above |
108
+
109
+ **Where it appears.** A sidebar tab on the current interface. On ComfyUI's legacy menu
110
+ (`Settings -> Comfy -> Use new menu -> Disabled`) it adds an **Open Manager** button there
111
+ instead. Where it replaces the manager, the top menu's **Extensions** button opens it too.
112
+
113
+ **What Extensions opens.** It follows ComfyUI: the panel on the modern interface, and the
114
+ classic menu of destinations where ComfyUI was started with `--enable-manager-legacy-ui`.
115
+ Override it under *What the Extensions button opens*. Both carry every destination, so this
116
+ decides the way in rather than what is reachable, and the sidebar tab is unaffected.
117
+
118
+ **Trust.** Incoporated a simple trust gate for certain actions with Open Manager.
119
+ Make sure you trust the authors.
120
+
121
+ **Settings.** Under `Settings -> Open Manager`. Set `open_manager.registry.BASE_URL` to route
122
+ the registry through a mirror or a private index. Set a GitHub token to raise the anonymous
123
+ 60 calls an hour to 5,000; without one, pack pages still show their README, gallery and
124
+ versions.
125
+
126
+ **Requirements.** `torch`, `torchaudio`, `torchsde` and `torchvision` are never installed
127
+ from a pack's requirements: they carry the build your ComfyUI was set up with. Anything held
128
+ back is named in the install output. To substitute a package, map it in
129
+ `user/open_manager/pip_overrides.json`:
130
+
131
+ ```json
132
+ { "opencv-python": "opencv-python-headless>=4.9" }
133
+ ```
134
+
135
+ **Trust.** A pack from outside the registry asks who you are trusting before installing it,
136
+ and again before loading a workflow of theirs. Answer once per author or every time, under
137
+ `Settings -> Open Manager`. Trusted authors are written to
138
+ `user/open_manager/trusted_authors.json`, and trust never hides a finding.
139
+
140
+ **Your GitHub list.** Add repositories by URL or as `owner/repo`. Each installs, updates and
141
+ uninstalls like a registry pack. The list is written to
142
+ `user/open_manager/github_sources.json`, outside the pack, so it survives an uninstall.
143
+ **Remove from list** delists and uninstalls in one step.
144
+
145
+ ---
146
+
147
+ ## For pack authors
148
+
149
+ Declare a `[tool.open_manager]` table in your `pyproject.toml`. Every field is optional and
150
+ packs without the table are unaffected. For an installed pack these are read from the copy on
151
+ disk, with the repository as the fallback.
152
+
153
+ ```toml
154
+ [tool.open_manager]
155
+ incompatible = ["numpy>=2.0"] # declare known conflicts with other packages
156
+ source = "github" # prefer installing from the repository
157
+ branch = "main" # default branch to install from
158
+ docs = "https://example.com/docs" # documentation URL
159
+ funding = "https://ko-fi.com/you" # funding URL
160
+ release_note = "1.4.0 needs config regen." # shown above the version list, 600 chars
161
+ example_workflows = ["workflows/*.json"] # a path, a glob, or a directory
162
+ themes = ["themes/my-theme.json"] # list themes to offer
163
+ gallery = [ # shown off on the pack page, up to 24, `png`,
164
+ # `jpg`, `jpeg`, `gif`, `webp`, `avif`, and
165
+ # `mp4`, `webm`, `mov` for clips
166
+ "docs/*.png", # a path or glob in your repository
167
+ "https://cdn.example.com/after.webp", # or a file hosted anywhere
168
+ ]
169
+ ```
170
+
171
+ Leave `example_workflows` out and `workflows/`, `workflow/`, `examples/`, `example/` and
172
+ `example_workflows/` are read instead. An image named for a workflow beside it becomes its
173
+ thumbnail. `docs` and `funding` fall back to `[project.urls]`.
174
+
175
+ ---
176
+
177
+ ## Theme format
178
+
179
+ A theme is a ComfyUI colour palette with an optional `extras` block. ComfyUI reads `colors`
180
+ and ignores `extras`; Open Manager reads both. Themes listed in `[tool.open_manager] themes`
181
+ appear on the pack page with an Add button. Copy one of the six in
182
+ [`open_manager/themes/`](https://github.com/WASasquatch/open-manager-comfyui/blob/main/open_manager/themes/), change the id and the colours.
183
+
184
+ ```jsonc
185
+ {
186
+ "id": "my_theme", // unique; the key it is stored under
187
+ "name": "My Theme", // shown in the theme picker
188
+ "version": 1, // raise to publish a change
189
+ "light_theme": true, // light palettes must set this, or the interface stays dark
190
+
191
+ "colors": {
192
+ "node_slot": { "IMAGE": "#64b5f6", "LATENT": "#ff9cf9" }, // wire colour per socket
193
+ "litegraph_base": { "CLEAR_BACKGROUND_COLOR": "#211927", // canvas
194
+ "NODE_DEFAULT_COLOR": "#f2ff59", // node header
195
+ "NODE_DEFAULT_BGCOLOR": "#2e2438", // node body
196
+ "BACKGROUND_IMAGE": "data:image/svg+xml;base64,..." },
197
+ "comfy_base": { "fg-color": "#f0efed", "bg-color": "#211927" } // interface, incl. Open Manager
198
+ },
199
+
200
+ "extras": {
201
+ "shape": { "radius": 10, "titleHeight": 28, "slotHeight": 20 },
202
+ "links": { "mode": "spline", "border": false }, // spline | linear | straight
203
+ "categories": { "loaders": "#352864", "sampling": "#4d3979" }, // header per node category
204
+ "nodes": { "KSampler": "#6b4fa8", // header per node class
205
+ "VAEDecode": { "color": "#71639a", "title": "Decode" } },
206
+ "glow": { "selected": "#f2ff59", "blur": 16 } // static, on selection
207
+ }
208
+ }
209
+ ```
210
+
211
+ | | |
212
+ | --- | --- |
213
+ | Categories | Matched on the full lowercased category path, longest first, so `was suite/image/masking` wins over `was suite/image`. Core nodes also match the segment below `model/` |
214
+ | Precedence | A colour the user set on a node wins, then a `nodes` rule, then a `categories` tint |
215
+ | Nothing is saved | Header, title and text colour are applied for the draw and undone after, so they never enter a saved workflow |
216
+ | Bounded | Unknown keys are dropped and numbers are range-checked; there is no animation, and a theme cannot ask for one |
217
+ | Scoped | Theme color palette `extras` apply only while your theme is active, and geometry is restored when the user switches away |
218
+
219
+ ---
220
+
221
+ ## Licence
222
+
223
+ MIT, see [`LICENSE`](https://github.com/WASasquatch/open-manager-comfyui/blob/main/LICENSE).
224
+
225
+ The GitHub mark shown on links to github.com is `mark-github` from
226
+ [Octicons](https://github.com/primer/octicons), MIT licensed, Copyright (c) GitHub Inc. It is
227
+ used only for links that go to GitHub.