Compare commits

..

110 Commits

Author SHA1 Message Date
Dr.Lt.Data
1246538bbb fixed: Issue where installation status was not properly recognized when the nodepack ID registered in the registry was not normalized.
- ex) `ComfyUI-Crystools`

https://github.com/Comfy-Org/ComfyUI-Manager/issues/1834#issuecomment-2937370214
2025-06-17 00:31:51 +09:00
Dr.Lt.Data
80518abf9d update DB 2025-06-16 22:42:41 +09:00
Leon Wong
fc1ae2a18e added comfyui-leon-nodes to ustom-node-list.json (#1937) 2025-06-16 22:17:45 +09:00
Yuan-Man
3fd8d2049c Add ComfyUI-Hunyuan3D-2.1 (#1936) 2025-06-16 22:16:50 +09:00
Dr.Lt.Data
35a6bcf20c update DB 2025-06-16 12:52:05 +09:00
Dr.Lt.Data
0d75fc331e update DB 2025-06-16 07:28:55 +09:00
Dr.Lt.Data
0a23e793e3 update DB 2025-06-15 15:43:09 +09:00
Dr.Lt.Data
2c1c03e063 update DB 2025-06-15 14:27:27 +09:00
Çağlayan Karagözler
64059d2949 Added ComfyUI-YouTubeUploader to custom nodes json (#1933)
* Update custom-node-list.json

Added ComfyUI-YouTubeUploader

* Update custom-node-list.json

* Update custom-node-list.json

Added proper link

* Update custom-node-list.json

---------

Co-authored-by: Dr.Lt.Data <128333288+ltdrdata@users.noreply.github.com>
2025-06-15 14:13:03 +09:00
Dr.Lt.Data
648aa7c4d3 update DB 2025-06-14 18:56:19 +09:00
Dr.Lt.Data
274bb81a08 update DB 2025-06-14 10:06:34 +09:00
Dr.Lt.Data
e2c90b4681 update DB 2025-06-13 22:41:52 +09:00
Dr.Lt.Data
fa0a98ac6e update DB 2025-06-13 12:53:51 +09:00
Dr.Lt.Data
e6e7b42415 update DB 2025-06-13 03:01:18 +09:00
Dr.Lt.Data
0b7ef2e1d4 update DB 2025-06-12 18:21:40 +09:00
Yuan-Man
2fac67a9f9 Add ComfyUI-Vui (#1930) 2025-06-12 18:15:32 +09:00
Dr.Lt.Data
8b9892de2e update DB 2025-06-12 12:31:04 +09:00
Dr.Lt.Data
b3290dc909 update DB 2025-06-12 12:24:22 +09:00
LargeModGames
3e3176eddb Update custom-node-list.json for new node: Add ComfyUI LoRA Auto Downloader (#1929)
* Add ComfyUI LoRA Auto Downloader extension

Adding ComfyUI LoRA Auto Downloader extension to the registry.
- Automatically downloads missing LoRAs from CivitAI
- Detects missing LoRAs in workflows
- Smart directory detection

* Update custom-node-list.json

* Update custom-node-list.json

---------

Co-authored-by: Dr.Lt.Data <128333288+ltdrdata@users.noreply.github.com>
2025-06-12 12:22:50 +09:00
Dr.Lt.Data
b1ef84894a update DB 2025-06-12 12:22:02 +09:00
hassan-sd
c6cffc92c4 Update custom-node-list.json for new node: comfyui-image-prompt-loader (#1928)
https://github.com/hassan-sd/comfyui-image-prompt-loader

Load images with automatic prompt extraction from Civitai URLs, caption files, or EXIF metadata. Features smart dataset detection and dynamic preview updates.
2025-06-12 12:16:27 +09:00
Dr.Lt.Data
efb9fd2712 update DB 2025-06-12 07:21:17 +09:00
Dr.Lt.Data
94b294ff93 update DB 2025-06-12 07:17:09 +09:00
Dr.Lt.Data
99a9e33648 update DB 2025-06-11 22:11:42 +09:00
gitadmini
055d94a919 add node extractstoryboards (#1927)
* add node extractstoryboards

* Update custom-node-list.json

---------

Co-authored-by: Dr.Lt.Data <128333288+ltdrdata@users.noreply.github.com>
2025-06-11 22:00:32 +09:00
Dr.Lt.Data
0978005240 update DB 2025-06-11 12:31:34 +09:00
Yuan-Man
1f796581ec Add ComfyUI-Direct3D-S2 node (#1925) 2025-06-11 07:31:56 +09:00
Dr.Lt.Data
f3a1716dad update DB 2025-06-11 07:23:14 +09:00
Zachary
a1c3a0db1f add my custom node for read metadata from filepath. (#1926) 2025-06-11 06:59:54 +09:00
Dr.Lt.Data
9f80cc8a6b update DB 2025-06-10 12:27:20 +09:00
Dr.Lt.Data
133786846e update DB 2025-06-10 07:28:53 +09:00
keit
bdf297a5c6 Add ComfyUI-keitNodes (#1924) 2025-06-10 07:28:02 +09:00
Dr.Lt.Data
6767254eb0 update DB 2025-06-10 07:27:48 +09:00
11dogzi
691cebd479 CYBERPUNK-STYLE-DIY (#1923) 2025-06-10 07:26:14 +09:00
xiaowc
f3932cbf29 Add Comfyui-Dynamic-Params Node Plugin (#1922)
* Update custom-node-list.json to add Comfyui-Dynamic-Params Node

* Update custom-node-list.json

---------

Co-authored-by: Dr.Lt.Data <128333288+ltdrdata@users.noreply.github.com>
2025-06-10 07:25:52 +09:00
Dr.Lt.Data
3f73a97037 update DB 2025-06-10 07:25:40 +09:00
Erehr
226f1f5be4 Add ComfyUI-EreNodes (#1921)
* Add ComfyUI-EreNodes

* Update custom-node-list.json
2025-06-10 07:23:53 +09:00
Dr.Lt.Data
7e45c07660 update DB 2025-06-10 07:23:40 +09:00
INuBq8
0c815036b9 Update custom-node-list.json (#1920) 2025-06-10 07:22:31 +09:00
Dr.Lt.Data
ae9fdd0255 update DB 2025-06-09 07:19:09 +09:00
Vlad Bondarovich
b3874ee6fd Update custom-node-list.json (#1917) 2025-06-09 06:06:15 +09:00
Eric W. Burns
62af4891f3 Update custom-node-list.json (#1912)
Submitting my new custom nodes at https://github.com/burnsbert/ComfyUI-EBU-Workflow for inclusion, thanks!
2025-06-09 06:02:16 +09:00
Budi Hartono
2176e0c0ad Add CAS Aspect Ratio Presets Node for ComfyUI to custom-node-list.json (#1910)
Add a custom node to quickly create empty latents in common resolutions and aspect ratios for SD 1.5, SDXL, Flux, Chroma, and HiDream. Choose from curated presets or generate by axis and aspect ratio. Appears in the 'latent' node group.
2025-06-09 06:01:18 +09:00
Dr.Lt.Data
cac105b0d5 fixed: prevent halting when log flushing fails.
https://github.com/Comfy-Org/ComfyUI-Manager/issues/1794
2025-06-08 06:54:39 +09:00
Dr.Lt.Data
cd7c42cc23 update DB 2025-06-08 06:39:30 +09:00
Dr.Lt.Data
a3fb847773 fixed: Don't override preview method if --preview-method is given
https://github.com/Comfy-Org/ComfyUI-Manager/issues/1887
2025-06-08 06:33:42 +09:00
Dr.Lt.Data
5c2f4f9e4b fixed: Issue where cloning Comfy-Org/ComfyUI-Manager would cause mismatches with ltdrdata/ComfyUI-Manager, resulting in it not being recognized properly.
https://github.com/Comfy-Org/ComfyUI-Manager/issues/1900
2025-06-08 06:24:19 +09:00
Dr.Lt.Data
0a511d5b87 update DB 2025-06-08 05:00:25 +09:00
Dr.Lt.Data
efe1aad5db update DB 2025-06-07 16:20:15 +09:00
Dr.Lt.Data
eed4c53df0 update DB 2025-06-07 12:55:45 +09:00
Dr.Lt.Data
9c08a6314b update DB 2025-06-07 12:32:42 +09:00
Pigidiy
a6b2d2c722 Add ComfyUI-LikeSpiderAI-UI (UI Framework for Node Creators) (#1907)
This PR adds a declarative UI framework for ComfyUI nodes: ComfyUI-LikeSpiderAI-UI.

Highlights:
- Minimalistic base class: LikeSpiderUINode
- Built-in input schema with auto-generated UI
- Example node: AudioExport (supports mp3/wav/flac + bitrate/filename)
- Designed for extensibility and clean UX

Author: Pigidiy
2025-06-07 12:31:47 +09:00
Dr.Lt.Data
3c6b5300e5 update DB 2025-06-06 14:37:15 +09:00
xmarre
f084c30b20 Add LoRA-Safe TorchCompile node (#1905)
* Add LoRA-Safe TorchCompile node

* Update custom-node-list.json

---------

Co-authored-by: xmarre <mmquant1@gmail.com>
Co-authored-by: Dr.Lt.Data <128333288+ltdrdata@users.noreply.github.com>
2025-06-06 14:17:19 +09:00
Dr.Lt.Data
206004fc1f update DB 2025-06-06 07:13:30 +09:00
Dr.Lt.Data
d9641cbff8 update DB 2025-06-06 06:14:09 +09:00
Dr.Lt.Data
13b272052a update DB 2025-06-06 05:56:26 +09:00
MDMAchine
c79e0d26d8 Update custom-node-list.json (#1904)
Added:
https://github.com/MDMAchine/ComfyUI_MD_Nodes
2025-06-06 05:55:26 +09:00
Dr.Lt.Data
ec4a4c2cfc update DB 2025-06-06 05:53:38 +09:00
leolee
9a9491bff9 Add Comfy-Topaz-Photo (#1901)
* Update custom-node-list.json

Add Comfy-Topaz-Photo

* Update custom-node-list.json

* Update custom-node-list.json

* Update custom-node-list.json

Add Comfy-Topaz-Photo

---------

Co-authored-by: Dr.Lt.Data <128333288+ltdrdata@users.noreply.github.com>
2025-06-06 05:53:13 +09:00
Dr.Lt.Data
5b5155819f update DB 2025-06-06 05:52:34 +09:00
Pigidiy
1b941c6b29 Fix: correct author & ID for ComfyUI-LikeSpiderAI-SaveMP3 (#1899)
* Fix: correct author & ID for ComfyUI-LikeSpiderAI-SaveMP3

This PR corrects the metadata for the ComfyUI-LikeSpiderAI-SaveMP3 node:

Changes author from aimingfail → Pigidiy

Adds missing version field: v1.0.0

Updates id from img2halftone → likeSpiderMP3

The previous metadata was mistakenly duplicated from another node.

Project repo: https://github.com/Pigidiy/ComfyUI-LikeSpiderAI-SaveMP3

* Update custom-node-list.json

---------

Co-authored-by: Dr.Lt.Data <128333288+ltdrdata@users.noreply.github.com>
2025-06-06 05:51:14 +09:00
e-tier-newbie
9b9665d2e9 Update custom-node-list.json (Add ComfyUI-E-Tier-TextSaver to node list) (#1879)
* Update custom-node-list.json

* Update custom-node-list.json

---------

Co-authored-by: Dr.Lt.Data <128333288+ltdrdata@users.noreply.github.com>
2025-06-06 05:49:02 +09:00
Dr.Lt.Data
4cceb46641 update DB 2025-06-03 18:50:49 +09:00
Dr.Lt.Data
19cf83cce6 update DB 2025-06-03 18:47:13 +09:00
Dr.Lt.Data
bb60d399fc update DB 2025-06-03 13:57:28 +09:00
Dr.Lt.Data
1a9f1dd0ae update DB 2025-06-03 10:47:49 +09:00
violetz
586c465aaa Add custom node: Hugging Face LoRA Uploader (#1897) 2025-06-03 10:42:15 +09:00
Dr.Lt.Data
50ceb974d9 update DB 2025-06-03 10:42:03 +09:00
Pigidiy
27cf40d392 Add: ComfyUI-LikeSpiderAI-SaveMP3 (save AUDIO to .mp3) (#1894)
* Add: ComfyUI-LikeSpiderAI-SaveMP3 (save AUDIO to .mp3)

Adds a node that saves AUDIO output to .mp3 format via ffmpeg.
Repo: https://github.com/Pigidiy/ComfyUI-LikeSpiderAI-SaveMP3

* Update custom-node-list.json

---------

Co-authored-by: Dr.Lt.Data <128333288+ltdrdata@users.noreply.github.com>
2025-06-03 10:39:15 +09:00
Dr.Lt.Data
bbb6005634 fixed: scanner
update DB
2025-06-03 10:36:48 +09:00
vivi-gomez
8dbd996558 Add ComfyUI Fix Node Translate custom node (#1892)
* Update custom-node-list.json

* Update custom-node-list.json

* Update custom-node-list.json

---------

Co-authored-by: Dr.Lt.Data <128333288+ltdrdata@users.noreply.github.com>
2025-06-03 10:35:41 +09:00
Dr.Lt.Data
8605345499 update DB 2025-06-01 06:55:16 +09:00
Dr.Lt.Data
3671ddbd4b update DB 2025-06-01 04:30:56 +09:00
Dr.Lt.Data
5bc1ceacb2 update DB 2025-06-01 04:11:34 +09:00
YuSuu
47b9fa3651 Add comfyui-merge plugin info (#1866) 2025-06-01 04:10:42 +09:00
Dr.Lt.Data
6062b87771 update DB 2025-06-01 04:09:55 +09:00
Yuan-Man
213152aa43 Add ComfyUI-ChatterboxTTS node (#1888) 2025-06-01 04:03:24 +09:00
Hiroaki Ogasawara
ea8047344f feat: ComfyUl-FramePackWrapper_PlusOne (#1891) 2025-06-01 04:01:57 +09:00
Dr.Lt.Data
a7bc167d53 update DB 2025-05-30 12:42:14 +09:00
Yuan-Man
18e78ee2c2 Add ComfyUI-HunyuanVideo-Avatar node (#1886) 2025-05-30 12:35:47 +09:00
Dr.Lt.Data
754236e35b update DB 2025-05-30 12:30:21 +09:00
Dr.Lt.Data
2645d62991 fixed: scanner.py - better limitation check 2025-05-30 07:26:03 +09:00
Dr.Lt.Data
e55d9416dc update DB 2025-05-29 07:49:40 +09:00
Yuan-Man
24d35eec54 Add ComfyUI-HunyuanPortrait node (#1882) 2025-05-29 05:29:50 +09:00
seungwoo-ji
ee053f50b4 fix: replace link to registry (#1883) 2025-05-29 05:27:13 +09:00
Dr.Lt.Data
3593c9ed3e update DB 2025-05-28 08:58:19 +09:00
Dr.Lt.Data
93f548696d update DB 2025-05-28 07:15:18 +09:00
Dr.Lt.Data
cecb952add update DB 2025-05-27 07:01:44 +09:00
Ethan Yang
596571bb38 add openvino custom node (#1864) 2025-05-27 06:28:23 +09:00
filtered
85a6fb75b8 Add workaround for delay in link connection (#1873)
New input sockets have no pos, and require a render frame to occur before links can be set to the correct location.
2025-05-27 06:27:45 +09:00
Dominik Bargiel
7dea42433b Update custom-node-list.json with Deadline Rneder manager plugin (#1874) 2025-05-27 06:27:06 +09:00
Faych Chen
ec5e4af6b7 feat: Add ComfyUI-BAGEL custom node (#1875) 2025-05-27 06:26:24 +09:00
Dr.Lt.Data
0048754fe8 fixed: An issue occurs when attempting to update a node pack installed via git clone if its URL has changed or if the node is not registered in custom-nodes-list.json.
https://github.com/Comfy-Org/ComfyUI-Manager/issues/1834#issuecomment-2907690538
2025-05-26 02:21:25 +09:00
Dr.Lt.Data
5c0bd0f79c bump version 2025-05-26 01:41:49 +09:00
Alexander Piskun
669cdffe08 fix(manager_util): used non normalized package name (#1867)
* set channel=default, mode=cache for git clone

* fix(manager_util): use normalized_name of package in fix_broken

Signed-off-by: bigcat88 <bigcat88@icloud.com>

---------

Signed-off-by: bigcat88 <bigcat88@icloud.com>
2025-05-26 01:41:07 +09:00
Dr.Lt.Data
3cd553301b update DB 2025-05-26 01:27:39 +09:00
hmwl
db7ef4f253 Add ComfyUI-TaskMonitor node (#1871) 2025-05-26 01:14:00 +09:00
Level Pixel
a09704567c Update custom-node-list.json for Level Pixel Advanced nodes (#1870)
Splitting the Level Pixel node package into two separate packages:
https://github.com/LevelPixel/ComfyUI-LevelPixel
https://github.com/LevelPixel/ComfyUI-LevelPixel-Advanced

Adding information about the new ComfyUI-LevelPixel-Advanced node package to custom-node-list.json.

The new ComfyUI-LevelPixel-Advanced node package is needed to separate the complex to install and use LLM and VLM node package from the rest of the main nodes of Level Pixel.

Conflicting nodes will be removed from ComfyUI-LevelPixel later.
2025-05-26 01:12:16 +09:00
Dr.Lt.Data
21fe577a2e update DB 2025-05-25 23:51:21 +09:00
Yuan-Man
9f258f5c9c Add ComfyUI-Bagel node (#1863) 2025-05-25 23:44:55 +09:00
Dr.Lt.Data
9cd088feb0 update DB 2025-05-23 15:10:47 +09:00
Dr.Lt.Data
89e3828138 update DB 2025-05-21 22:23:08 +09:00
Christian Byrne
731c89dc27 [api] Add OpenAPI specification file (#1856) 2025-05-21 21:48:50 +09:00
Yuan-Man
3d920cab4d Add ComfyUI-AniSora node (#1860) 2025-05-21 21:47:04 +09:00
TrophiHunter
470b8c1fb8 Update custom-node-list.json (#1858)
Fixed node references to github
2025-05-21 21:46:34 +09:00
Christian Byrne
dbf988fd5a [docs] Add README for docs directory (#1855)
* [docs] Add README for docs directory

* [docs] Remove redundant sections from docs README
2025-05-21 21:45:17 +09:00
Christian Byrne
0031743ad4 [docs] Add README for node_db directory (#1854) 2025-05-21 21:45:05 +09:00
Christian Byrne
0f2c0ab65d [docs] Add README for js directory (#1853)
* [docs] Add README for js directory

* [docs] Update js/README.md based on PR review feedback

* [docs] Update js/README.md with corrected descriptions
2025-05-21 21:44:48 +09:00
Christian Byrne
53244b794f [docs] Add README for glob directory (#1852) 2025-05-21 21:44:24 +09:00
22 changed files with 16874 additions and 7556 deletions

View File

@@ -8,7 +8,7 @@
* V3.16: Support for `uv` has been added. Set `use_uv` in `config.ini`.
* V3.10: `double-click feature` is removed
* This feature has been moved to https://github.com/ltdrdata/comfyui-connection-helper
* V3.3.2: Overhauled. Officially supports [https://comfyregistry.org/](https://comfyregistry.org/).
* V3.3.2: Overhauled. Officially supports [https://registry.comfy.org/](https://registry.comfy.org/).
* You can see whole nodes info on [ComfyUI Nodes Info](https://ltdrdata.github.io/) page.
## Installation

View File

File diff suppressed because it is too large Load Diff

41
docs/README.md Normal file
View File

@@ -0,0 +1,41 @@
# ComfyUI-Manager: Documentation
This directory contains documentation for the ComfyUI-Manager, providing guides and tutorials for users in multiple languages.
## Directory Structure
The documentation is organized into language-specific directories:
- **en/**: English documentation
- **ko/**: Korean documentation
## Core Documentation Files
### Command-Line Interface
- **cm-cli.md**: Documentation for the ComfyUI-Manager Command Line Interface (CLI), which allows using manager functionality without the UI.
### Advanced Features
- **use_aria2.md**: Guide for using the aria2 download accelerator with ComfyUI-Manager for faster model downloads.
## Documentation Standards
The documentation follows these standards:
1. **Markdown Format**: All documentation is written in Markdown for easy rendering on GitHub and other platforms
2. **Language-specific Directories**: Content is separated by language to facilitate localization
3. **Feature-focused Documentation**: Each major feature has its own documentation file
4. **Updated with Releases**: Documentation is kept in sync with software releases
## Contributing to Documentation
When contributing new documentation:
1. Place files in the appropriate language directory
2. Use clear, concise language appropriate for the target audience
3. Include examples where helpful
4. Consider adding screenshots or diagrams for complex features
5. Maintain consistent formatting with existing documentation
This documentation directory will continue to grow to support the expanding feature set of ComfyUI-Manager.

View File

File diff suppressed because it is too large Load Diff

View File

File diff suppressed because it is too large Load Diff

53
glob/README.md Normal file
View File

@@ -0,0 +1,53 @@
# ComfyUI-Manager: Core Backend (glob)
This directory contains the Python backend modules that power ComfyUI-Manager, handling the core functionality of node management, downloading, security, and server operations.
## Core Modules
- **manager_core.py**: The central implementation of management functions, handling configuration, installation, updates, and node management.
- **manager_server.py**: Implements server functionality and API endpoints for the web interface to interact with the backend.
- **manager_downloader.py**: Handles downloading operations for models, extensions, and other resources.
- **manager_util.py**: Provides utility functions used throughout the system.
## Specialized Modules
- **cm_global.py**: Maintains global variables and state management across the system.
- **cnr_utils.py**: Helper utilities for interacting with the custom node registry (CNR).
- **git_utils.py**: Git-specific utilities for repository operations.
- **node_package.py**: Handles the packaging and installation of node extensions.
- **security_check.py**: Implements the multi-level security system for installation safety.
- **share_3rdparty.py**: Manages integration with third-party sharing platforms.
## Architecture
The backend follows a modular design pattern with clear separation of concerns:
1. **Core Layer**: Manager modules provide the primary API and business logic
2. **Utility Layer**: Helper modules provide specialized functionality
3. **Integration Layer**: Modules that connect to external systems
## Security Model
The system implements a comprehensive security framework with multiple levels:
- **Block**: Highest security - blocks most remote operations
- **High**: Allows only specific trusted operations
- **Middle**: Standard security for most users
- **Normal-**: More permissive for advanced users
- **Weak**: Lowest security for development environments
## Implementation Details
- The backend is designed to work seamlessly with ComfyUI
- Asynchronous task queuing is implemented for background operations
- The system supports multiple installation modes
- Error handling and risk assessment are integrated throughout the codebase
## API Integration
The backend exposes a REST API via `manager_server.py` that enables:
- Custom node management (install, update, disable, remove)
- Model downloading and organization
- System configuration
- Snapshot management
- Workflow component handling

View File

@@ -46,6 +46,8 @@ def git_url(fullpath):
for k, v in config.items():
if k.startswith('remote ') and 'url' in v:
if 'Comfy-Org/ComfyUI-Manager' in v['url']:
return "https://github.com/ltdrdata/ComfyUI-Manager"
return v['url']
return None

View File

@@ -43,7 +43,7 @@ import manager_downloader
from node_package import InstalledNodePackage
version_code = [3, 32, 3]
version_code = [3, 33]
version_str = f"V{version_code[0]}.{version_code[1]}" + (f'.{version_code[2]}' if len(version_code) > 2 else '')
@@ -400,18 +400,46 @@ class ManagedResult:
return self
class NormalizedKeyDict(dict):
def _normalize_key(self, key):
if isinstance(key, str):
return key.strip().lower()
return key
def __setitem__(self, key, value):
super().__setitem__(self._normalize_key(key), value)
def __getitem__(self, key):
return super().__getitem__(self._normalize_key(key))
def __delitem__(self, key):
return super().__delitem__(self._normalize_key(key))
def __contains__(self, key):
return super().__contains__(self._normalize_key(key))
def get(self, key, default=None):
return super().get(self._normalize_key(key), default)
def setdefault(self, key, default=None):
return super().setdefault(self._normalize_key(key), default)
def pop(self, key, default=None):
return super().pop(self._normalize_key(key), default)
class UnifiedManager:
def __init__(self):
self.installed_node_packages: dict[str, InstalledNodePackage] = {}
self.cnr_inactive_nodes = {} # node_id -> node_version -> fullpath
self.nightly_inactive_nodes = {} # node_id -> fullpath
self.unknown_inactive_nodes = {} # node_id -> repo url * fullpath
self.active_nodes = {} # node_id -> node_version * fullpath
self.unknown_active_nodes = {} # node_id -> repo url * fullpath
self.cnr_map = {} # node_id -> cnr info
self.repo_cnr_map = {} # repo_url -> cnr info
self.custom_node_map_cache = {} # (channel, mode) -> augmented custom node list json
self.cnr_inactive_nodes = NormalizedKeyDict() # node_id -> node_version -> fullpath
self.nightly_inactive_nodes = NormalizedKeyDict() # node_id -> fullpath
self.unknown_inactive_nodes = {} # node_id -> repo url * fullpath
self.active_nodes = NormalizedKeyDict() # node_id -> node_version * fullpath
self.unknown_active_nodes = {} # node_id -> repo url * fullpath
self.cnr_map = NormalizedKeyDict() # node_id -> cnr info
self.repo_cnr_map = {} # repo_url -> cnr info
self.custom_node_map_cache = {} # (channel, mode) -> augmented custom node list json
self.processed_install = set()
def get_module_name(self, x):
@@ -2876,7 +2904,7 @@ async def get_unified_total_nodes(channel, mode, regsitry_cache_mode='cache'):
if cnr_id is not None:
# cnr or nightly version
cnr_ids.remove(cnr_id)
cnr_ids.discard(cnr_id)
updatable = False
cnr = unified_manager.cnr_map[cnr_id]

View File

@@ -181,7 +181,10 @@ def set_preview_method(method):
core.get_config()['preview_method'] = method
set_preview_method(core.get_config()['preview_method'])
if args.preview_method == latent_preview.LatentPreviewMethod.NoPreviews:
set_preview_method(core.get_config()['preview_method'])
else:
logging.warning("[ComfyUI-Manager] Since --preview-method is set, ComfyUI-Manager's preview method feature will be ignored.")
def set_component_policy(mode):
@@ -437,7 +440,10 @@ async def task_worker():
if res.ver == 'unknown':
url = core.unified_manager.unknown_active_nodes[node_name][0]
title = os.path.basename(url)
try:
title = os.path.basename(url)
except Exception:
title = node_name
else:
url = core.unified_manager.cnr_map[node_name].get('repository')
title = core.unified_manager.cnr_map[node_name]['name']

View File

@@ -476,7 +476,7 @@ class PIPFixer:
normalized_name = parsed['package'].lower().replace('-', '_')
if normalized_name in new_pip_versions:
if 'version' in parsed and 'operator' in parsed:
cur = StrictVersion(new_pip_versions[parsed['package']])
cur = StrictVersion(new_pip_versions[normalized_name])
dest = parsed['version']
op = parsed['operator']
if cur == dest:

50
js/README.md Normal file
View File

@@ -0,0 +1,50 @@
# ComfyUI-Manager: Frontend (js)
This directory contains the JavaScript frontend implementation for ComfyUI-Manager, providing the user interface components that interact with the backend API.
## Core Components
- **comfyui-manager.js**: Main entry point that initializes the manager UI and integrates with ComfyUI.
- **custom-nodes-manager.js**: Implements the UI for browsing, installing, and managing custom nodes.
- **model-manager.js**: Handles the model management interface for downloading and organizing AI models.
- **components-manager.js**: Manages reusable workflow components system.
- **snapshot.js**: Implements the snapshot system for backing up and restoring installations.
## Sharing Components
- **comfyui-share-common.js**: Base functionality for workflow sharing features.
- **comfyui-share-copus.js**: Integration with the ComfyUI Opus sharing platform.
- **comfyui-share-openart.js**: Integration with the OpenArt sharing platform.
- **comfyui-share-youml.js**: Integration with the YouML sharing platform.
## Utility Components
- **cm-api.js**: Client-side API wrapper for communication with the backend.
- **common.js**: Shared utilities and helper functions used across the frontend.
- **node_fixer.js**: Utilities for fixing disconnected links and repairing malformed nodes by recreating them while preserving connections.
- **popover-helper.js**: UI component for popup tooltips and contextual information.
- **turbogrid.esm.js**: Grid component library - https://github.com/cenfun/turbogrid
- **workflow-metadata.js**: Handles workflow metadata parsing, validation and cross-repository compatibility including versioning, dependencies tracking, and resource management.
## Architecture
The frontend follows a modular component-based architecture:
1. **Integration Layer**: Connects with ComfyUI's existing UI system
2. **Manager Components**: Individual functional UI components (node manager, model manager, etc.)
3. **Sharing Components**: Platform-specific sharing implementations
4. **Utility Layer**: Reusable UI components and helpers
## Implementation Details
- The frontend integrates directly with ComfyUI's UI system through `app.js`
- Dialog-based UI for most manager functions to avoid cluttering the main interface
- Asynchronous API calls to handle backend operations without blocking the UI
## Styling
CSS files are included for specific components:
- **custom-nodes-manager.css**: Styling for the node management UI
- **model-manager.css**: Styling for the model management UI
This frontend implementation provides a comprehensive yet user-friendly interface for managing the ComfyUI ecosystem.

View File

@@ -153,6 +153,7 @@ app.registerExtension({
app.canvas.graph.add(new_node, false);
node_info_copy(this, new_node, true);
app.canvas.graph.remove(this);
requestAnimationFrame(() => app.canvas.setDirty(true, true))
},
});
});

95
node_db/README.md Normal file
View File

@@ -0,0 +1,95 @@
# ComfyUI-Manager: Node Database (node_db)
This directory contains the JSON database files that power ComfyUI-Manager's legacy node registry system. While the manager is gradually transitioning to the online Custom Node Registry (CNR), these local JSON files continue to provide important metadata about custom nodes, models, and their integrations.
## Directory Structure
The node_db directory is organized into several subdirectories, each serving a specific purpose:
- **dev/**: Development channel files with latest additions and experimental nodes
- **legacy/**: Historical/legacy nodes that may require special handling
- **new/**: New nodes that have passed initial verification but are still being evaluated
- **forked/**: Forks of existing nodes with modifications
- **tutorial/**: Example and tutorial nodes designed for learning purposes
## Core Database Files
Each subdirectory contains a standard set of JSON files:
- **custom-node-list.json**: Primary database of custom nodes with metadata
- **extension-node-map.json**: Maps between extensions and individual nodes they provide
- **model-list.json**: Catalog of models that can be downloaded through the manager
- **alter-list.json**: Alternative implementations of nodes for compatibility or functionality
- **github-stats.json**: GitHub repository statistics for node popularity metrics
## Database Schema
### custom-node-list.json
```json
{
"custom_nodes": [
{
"title": "Node display name",
"name": "Repository name",
"reference": "Original repository if forked",
"files": ["GitHub URL or other source location"],
"install_type": "git",
"description": "Description of the node's functionality",
"pip": ["optional pip dependencies"],
"js": ["optional JavaScript files"],
"tags": ["categorization tags"]
}
]
}
```
### extension-node-map.json
```json
{
"extension-id": [
["list", "of", "node", "classes"],
{
"author": "Author name",
"description": "Extension description",
"nodename_pattern": "Optional regex pattern for node name matching"
}
]
}
```
## Transition to Custom Node Registry (CNR)
This local database system is being progressively replaced by the online Custom Node Registry (CNR), which provides:
- Real-time updates without manual JSON maintenance
- Improved versioning support
- Better security validation
- Enhanced metadata
The Manager supports both systems simultaneously during the transition period.
## Implementation Details
- The database follows a channel-based architecture for different sources
- Multiple database modes are supported: Channel, Local, and Remote
- The system supports differential updates to minimize bandwidth usage
- Security levels are enforced for different node installations based on source
## Usage in the Application
The Manager's backend uses these database files to:
1. Provide browsable lists of available nodes and models
2. Resolve dependencies for installation
3. Track updates and new versions
4. Map node classes to their source repositories
5. Assess risk levels for installation security
## Maintenance Scripts
Each subdirectory contains a `scan.sh` script that assists with:
- Scanning repositories for new nodes
- Updating metadata
- Validating database integrity
- Generating proper JSON structures
This database system enables a flexible, secure, and comprehensive management system for the ComfyUI ecosystem while the transition to CNR continues.

View File

File diff suppressed because it is too large Load Diff

View File

File diff suppressed because it is too large Load Diff

View File

File diff suppressed because it is too large Load Diff

View File

@@ -1,16 +1,158 @@
{
"custom_nodes": [
{
"author": "#NOTICE_1.13",
"title": "NOTICE: This channel is not the default channel.",
"reference": "https://github.com/ltdrdata/ComfyUI-Manager",
"files": [],
"author": "theUpsider",
"title": "ComfyUI-Logic [DEPRECATED]",
"id": "comfy-logic",
"reference": "https://github.com/theUpsider/ComfyUI-Logic",
"files": [
"https://github.com/theUpsider/ComfyUI-Logic"
],
"install_type": "git-clone",
"description": "If you see this message, your ComfyUI-Manager is outdated.\nLegacy channel provides only the list of the deprecated nodes. If you want to find the complete node list, please go to the Default channel."
"description": "An extension to ComfyUI that introduces logic nodes and conditional rendering capabilities."
},
{
"author": "Malloc-pix",
"title": "comfyui_qwen2.4_vl_node [REMOVED]",
"reference": "https://github.com/Malloc-pix/comfyui_qwen2.4_vl_node",
"files": [
"https://github.com/Malloc-pix/comfyui_qwen2.4_vl_node"
],
"install_type": "git-clone",
"description": "NODES: CogVLM2 Captioner, CLIP Dynamic Text Encode(cy)"
},
{
"author": "inyourdreams-studio",
"title": "ComfyUI-RBLM [REMOVED]",
"reference": "https://github.com/inyourdreams-studio/comfyui-rblm",
"files": [
"https://github.com/inyourdreams-studio/comfyui-rblm"
],
"install_type": "git-clone",
"description": "A custom node pack for ComfyUI that provides text manipulation nodes."
},
{
"author": "dream-computing",
"title": "SyntaxNodes - Image Processing Effects for ComfyUI [REMOVED]",
"reference": "https://github.com/dream-computing/syntax-nodes",
"files": [
"https://github.com/dream-computing/syntax-nodes"
],
"install_type": "git-clone",
"description": "A collection of custom nodes for ComfyUI designed to apply various image processing effects, stylizations, and analyses."
},
{
"author": "UD1sto",
"title": "plugin-utils-nodes [DEPRECATED]",
"reference": "https://github.com/its-DeFine/plugin-utils-nodes",
"files": [
"https://github.com/its-DeFine/plugin-utils-nodes"
],
"install_type": "git-clone",
"description": "NODES: Compare Images (SimHash), Image Selector, Temporal Consistency, Update Image Reference, Frame Blend."
},
{
"author": "hanyingcho",
"title": "ComfyUI LLM Promp [REMOVED]",
"reference": "https://github.com/hanyingcho/comfyui-llmprompt",
"files": [
"https://github.com/hanyingcho/comfyui-llmprompt"
],
"install_type": "git-clone",
"description": "NODES: Load llm, Generate Text with LLM, Inference Qwen2VL, Inference Qwen2"
},
{
"author": "WASasquatch",
"title": "WAS Node Suite [DEPRECATED]",
"id": "was",
"reference": "https://github.com/WASasquatch/was-node-suite-comfyui",
"pip": ["numba"],
"files": [
"https://github.com/WASasquatch/was-node-suite-comfyui"
],
"install_type": "git-clone",
"description": "A node suite for ComfyUI with many new nodes, such as image processing, text processing, and more."
},
{
"author": "TOM1063",
"title": "ComfyUI-SamuraiTools [REMOVED]",
"reference": "https://github.com/TOM1063/ComfyUI-SamuraiTools",
"files": [
"https://github.com/TOM1063/ComfyUI-SamuraiTools"
],
"install_type": "git-clone",
"description": "ComfyUI custom node for switching integer values based on boolean conditions"
},
{
"author": "whitemoney293",
"title": "ComfyUI-MediaUtilities [REMOVED]",
"reference": "https://github.com/ThanaritKanjanametawatAU/ComfyUI-MediaUtilities",
"files": [
"https://github.com/ThanaritKanjanametawatAU/ComfyUI-MediaUtilities"
],
"install_type": "git-clone",
"description": "Custom nodes for loading and previewing media from URLs in ComfyUI."
},
{
"author": "pureexe",
"title": "DiffusionLight-ComfyUI [REMOVED]",
"reference": "https://github.com/pureexe/DiffusionLight-ComfyUI",
"files": [
"https://github.com/pureexe/DiffusionLight-ComfyUI"
],
"install_type": "git-clone",
"description": "DiffusionLight (Turbo) implemented in ComfyUI"
},
{
"author": "gondar-software",
"title": "comfyui-custom-padding [REMOVED]",
"reference": "https://github.com/gondar-software/comfyui-custom-padding",
"files": [
"https://github.com/gondar-software/comfyui-custom-padding"
],
"install_type": "git-clone",
"description": "NODES: Adaptive image padding, Adaptive image unpadding"
},
{
"author": "Charonartist",
"title": "ComfyUI-EagleExporter [REMOVED]",
"reference": "https://github.com/Charonartist/ComfyUI-EagleExporter",
"files": [
"https://github.com/Charonartist/ComfyUI-EagleExporter"
],
"install_type": "git-clone",
"description": "This is an extension that automatically saves video files generated with ComfyUI's 'video combine' extension to the Eagle library."
},
{
"author": "pomePLaszlo-collablyu",
"title": "comfyui_ejam [REMOVED]",
"reference": "https://github.com/PLaszlo-collab/comfyui_ejam",
"files": [
"https://github.com/PLaszlo-collab/comfyui_ejam"
],
"install_type": "git-clone",
"description": "Ejam nodes for comfyui"
},
{
"author": "jonnydolake",
"title": "ComfyUI-AIR-Nodes [REMOVED]",
"reference": "https://github.com/jonnydolake/ComfyUI-AIR-Nodes",
"files": [
"https://github.com/jonnydolake/ComfyUI-AIR-Nodes"
],
"install_type": "git-clone",
"description": "NODES: String List To Prompt Schedule, Force Minimum Batch Size, Target Location (Crop), Target Location (Paste), Image Composite Chained, Match Image Count To Mask Count, Random Character Prompts, Parallax Test, Easy Parallax, Parallax GPU Test"
},
{
"author": "solution9th",
"title": "Comfyui_mobilesam [REMOVED]",
"reference": "https://github.com/solution9th/Comfyui_mobilesam",
"files": [
"https://github.com/solution9th/Comfyui_mobilesam"
],
"install_type": "git-clone",
"description": "NODES: Mobile SAM Model Loader, Mobile SAM Detector, Mobile SAM Predictor"
},
{
"author": "syaofox",
"title": "ComfyUI_fnodes [REMOVED]",

View File

File diff suppressed because it is too large Load Diff

View File

File diff suppressed because it is too large Load Diff

View File

@@ -344,7 +344,12 @@ try:
log_file.write(message)
else:
log_file.write(f"[{timestamp}] {message}")
log_file.flush()
try:
log_file.flush()
except Exception:
pass
self.last_char = message if message == '' else message[-1]
if not file_only:
@@ -357,7 +362,10 @@ try:
original_stderr.flush()
def flush(self):
log_file.flush()
try:
log_file.flush()
except Exception:
pass
with std_log_lock:
if self.is_stdout:

View File

@@ -1,7 +1,7 @@
[project]
name = "comfyui-manager"
description = "ComfyUI-Manager provides features to install and manage custom nodes for ComfyUI, as well as various functionalities to assist with ComfyUI."
version = "3.32.3"
version = "3.33"
license = { file = "LICENSE.txt" }
dependencies = ["GitPython", "PyGithub", "matrix-client==0.4.0", "transformers", "huggingface-hub>0.20", "typer", "rich", "typing-extensions", "toml", "uv", "chardet"]

View File

@@ -102,12 +102,8 @@ def extract_nodes(code_text):
def scan_in_file(filename, is_builtin=False):
global builtin_nodes
try:
with open(filename, encoding='utf-8') as file:
code = file.read()
except UnicodeDecodeError:
with open(filename, encoding='cp949') as file:
code = file.read()
with open(filename, encoding='utf-8', errors='ignore') as file:
code = file.read()
pattern = r"_CLASS_MAPPINGS\s*=\s*{([^}]*)}"
regex = re.compile(pattern, re.MULTILINE | re.DOTALL)
@@ -297,7 +293,7 @@ def update_custom_nodes():
pass
def is_rate_limit_exceeded():
return g.rate_limiting[0] == 0
return g.rate_limiting[0] <= 20
if is_rate_limit_exceeded():
print(f"GitHub API Rate Limit Exceeded: remained - {(g.rate_limiting_resettime - datetime.datetime.now().timestamp())/60:.2f} min")