mirror of
https://git.datalinker.icu/ltdrdata/ComfyUI-Manager
synced 2025-12-09 14:14:54 +08:00
Merge branch 'main' into draft-v4
# Conflicts: # comfyui_manager/common/README.md # comfyui_manager/glob/manager_core.py # comfyui_manager/js/README.md # pyproject.toml
This commit is contained in:
commit
8303e7c043
@ -9,7 +9,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
|
||||
|
||||
49
comfyui_manager/README.md
Normal file
49
comfyui_manager/README.md
Normal file
@ -0,0 +1,49 @@
|
||||
# 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.
|
||||
|
||||
## Directory Structure
|
||||
- **glob/** - code for new cacheless ComfyUI-Manager
|
||||
- **legacy/** - code for legacy ComfyUI-Manager
|
||||
|
||||
## 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.
|
||||
|
||||
## Specialized Modules
|
||||
|
||||
- **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
|
||||
16
comfyui_manager/common/README.md
Normal file
16
comfyui_manager/common/README.md
Normal file
@ -0,0 +1,16 @@
|
||||
# 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_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.
|
||||
@ -479,7 +479,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:
|
||||
|
||||
@ -504,7 +504,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']
|
||||
|
||||
50
comfyui_manager/js/README.md
Normal file
50
comfyui_manager/js/README.md
Normal 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.
|
||||
@ -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))
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
41
docs/README.md
Normal file
41
docs/README.md
Normal 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.
|
||||
File diff suppressed because it is too large
Load Diff
7509
github-stats.json
7509
github-stats.json
File diff suppressed because it is too large
Load Diff
95
node_db/README.md
Normal file
95
node_db/README.md
Normal 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.
|
||||
@ -12,6 +12,429 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{
|
||||
"author": "bulldog68",
|
||||
"title": "ComfyUI_FMJ [WIP]",
|
||||
"reference": "https://github.com/bulldog68/ComfyUI_FMJ",
|
||||
"files": [
|
||||
"https://github.com/bulldog68/ComfyUI_FMJ"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Generate random prompts easily for FMJ.\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "amamisonlyuser",
|
||||
"title": "MixvtonComfyui [WIP]",
|
||||
"reference": "https://github.com/amamisonlyuser/MixvtonComfyui",
|
||||
"files": [
|
||||
"https://github.com/amamisonlyuser/MixvtonComfyui"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: CXH_Leffa_Viton_Load, CXH_Leffa_Viton_Run\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "pictorialink",
|
||||
"title": "comfyui-static-resource[UNSAFE]",
|
||||
"reference": "https://github.com/pictorialink/ComfyUI-static-resource",
|
||||
"files": [
|
||||
"https://github.com/pictorialink/ComfyUI-static-resource"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Use model bending to push your model beyond its visuals' limits. These nodes allow you to apply transformations to the intemediate densoising steps during sampling, e.g. add, multiplty, scale, rotate, dilate, erode ..etc.[w/This node pack includes a feature that allows downloading remote files to arbitrary local paths. This is a vulnerability that can lead to Remote Code Execution.]"
|
||||
},
|
||||
{
|
||||
"author": "brace-great",
|
||||
"title": "comfyui-mc [WIP]",
|
||||
"reference": "https://github.com/brace-great/comfyui-mc",
|
||||
"files": [
|
||||
"https://github.com/brace-great/comfyui-mc"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: IncrementCounterOnMatch\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "blueraincoatli",
|
||||
"title": "ComfyModelCleaner [WIP]",
|
||||
"reference": "https://github.com/blueraincoatli/ComfyUI-Model-Cleaner",
|
||||
"files": [
|
||||
"https://github.com/blueraincoatli/ComfyUI-Model-Cleaner"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "This plugin helps identify and clean up unused model files in ComfyUI installations. It analyzes workflows, custom nodes, and model usage to safely identify redundant files."
|
||||
},
|
||||
{
|
||||
"author": "avocadori",
|
||||
"title": "ComfyUI Audio Amplitude Converter [WIP]",
|
||||
"reference": "https://github.com/avocadori/ComfyUI-AudioAmplitudeConverter",
|
||||
"files": [
|
||||
"https://github.com/avocadori/ComfyUI-AudioAmplitudeConverter"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "This is a high-performance custom node for ComfyUI that performs audio amplitude conversion.\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "wTechArtist",
|
||||
"title": "ComfyUI_VVL_VideoCamera",
|
||||
"reference": "https://github.com/wTechArtist/ComfyUI_VVL_VideoCamera",
|
||||
"files": [
|
||||
"https://github.com/wTechArtist/ComfyUI_VVL_VideoCamera"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: VVL Video Camera Estimator, VVL Video Frame Extractor"
|
||||
},
|
||||
{
|
||||
"author": "wTechArtist",
|
||||
"title": "ComfyUI_VVL_Segmentation [WIP]",
|
||||
"reference": "https://github.com/wTechArtist/ComfyUI_VVL_Segmentation",
|
||||
"files": [
|
||||
"https://github.com/wTechArtist/ComfyUI_VVL_Segmentation"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: VVL Mask2Former Panoptic (Enhanced), VVL OneFormer Universal Segmentation\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "lum3on",
|
||||
"title": "comfyui_RollingDepth [WIP]",
|
||||
"reference": "https://github.com/lum3on/comfyui_RollingDepth",
|
||||
"files": [
|
||||
"https://github.com/lum3on/comfyui_RollingDepth"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyuI Needs longer to start the first time, because the mode gets downloaded.\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "abuzreq",
|
||||
"title": "ComfyUI Model Bending [UNSAFE]",
|
||||
"reference": "https://github.com/abuzreq/ComfyUI-Model-Bending",
|
||||
"files": [
|
||||
"https://github.com/abuzreq/ComfyUI-Model-Bending"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Use model bending to push your model beyond its visuals' limits. These nodes allow you to apply transformations to the intemediate densoising steps during sampling, e.g. add, multiplty, scale, rotate, dilate, erode ..etc.[w/This node pack contains a vulnerability that allows remote code execution.]"
|
||||
},
|
||||
{
|
||||
"author": "Stable Diffusion VN",
|
||||
"title": "SDVN Comfy node [UNSAFE]",
|
||||
"id": "SDVN",
|
||||
"reference": "https://github.com/StableDiffusionVN/SDVN_Comfy_node",
|
||||
"files": [
|
||||
"https://github.com/StableDiffusionVN/SDVN_Comfy_node"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Update IC Lora Layout Support Node[w/This node pack contains a vulnerability that allows remote code execution.]"
|
||||
},
|
||||
{
|
||||
"author": "Sephrael",
|
||||
"title": "comfyui_caption-around-image [WIP]",
|
||||
"reference": "https://github.com/Sephrael/comfyui_caption-around-image",
|
||||
"files": [
|
||||
"https://github.com/Sephrael/comfyui_caption-around-image"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: A comfyUI node to create captions around a generated image with the ability to dynamically include generation parameters\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "EQXai",
|
||||
"title": "ComfyUI_EQX",
|
||||
"reference": "https://github.com/EQXai/ComfyUI_EQX",
|
||||
"files": [
|
||||
"https://github.com/EQXai/ComfyUI_EQX"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: SaveImage_EQX, File Image Selector, Load Prompt From File - EQX, LoraStackEQX_random, Extract Filename - EQX, Extract LORA name - EQX"
|
||||
},
|
||||
{
|
||||
"author": "yincangshiwei",
|
||||
"title": "ComfyUI-SEQLToolNode",
|
||||
"reference": "https://github.com/yincangshiwei/ComfyUI-SEQLToolNode",
|
||||
"files": [
|
||||
"https://github.com/yincangshiwei/ComfyUI-SEQLToolNode"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: ImageCropAlphaNode (Image), CanvasFusionNode (Image)"
|
||||
},
|
||||
{
|
||||
"author": "gabe-init",
|
||||
"title": "comfyui_ui_render [UNSAFE]",
|
||||
"reference": "https://github.com/gabe-init/comfyui_ui_render",
|
||||
"files": [
|
||||
"https://github.com/gabe-init/comfyui_ui_render"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI HTML Renderer Node - Display rich HTML content within ComfyUI nodes[w/This nodepack contains nodes that potentially have XSS vulnerabilities.]"
|
||||
},
|
||||
{
|
||||
"author": "gabe-init",
|
||||
"title": "ComfyUI LM Studio Node [WIP]",
|
||||
"reference": "https://github.com/gabe-init/ComfyUI-LM-Studio",
|
||||
"files": [
|
||||
"https://github.com/gabe-init/ComfyUI-LM-Studio"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A powerful ComfyUI custom node that seamlessly integrates LM Studio's local language models into your ComfyUI workflows. This node supports both text-only and multimodal (text + image) inputs, making it perfect for complex AI-driven creative workflows.\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "LyazS",
|
||||
"title": "ComfyUI-aznodes",
|
||||
"reference": "https://github.com/LyazS/ComfyUI-aznodes",
|
||||
"files": [
|
||||
"https://github.com/LyazS/ComfyUI-aznodes"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: CrossFadeImageSequence\nNOTE: invalid pyproject.toml"
|
||||
},
|
||||
{
|
||||
"author": "truebillyblue",
|
||||
"title": "lC.ComfyUI_epistemic_nodes [WIP]",
|
||||
"reference": "https://github.com/truebillyblue/lC.ComfyUI_epistemic_nodes",
|
||||
"files": [
|
||||
"https://github.com/truebillyblue/lC.ComfyUI_epistemic_nodes"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: lC L1 Startle, lC L2 FrameClick, lC L3 KeymapClick, lC L4 AnchorClick, lC L5 FieldClick, lC L6 ReflectBoom, lC Epistemic Pipeline (L1-L7), Create PBI (lC), Query PBIs (lC), Update PBI (lC), lC API LLM Agent, lC Web LLM Agent, ...\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "aklevecz",
|
||||
"title": "ComfyUI-AutoPrompt [WIP]",
|
||||
"reference": "https://github.com/aklevecz/ComfyUI-AutoPrompt",
|
||||
"files": [
|
||||
"https://github.com/aklevecz/ComfyUI-AutoPrompt"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: Ollama Prompt Generator, Ollama Model Lister, Ollama Chat, Text Display"
|
||||
},
|
||||
{
|
||||
"author": "AlexYez",
|
||||
"title": "ComfyUI Timesaver Nodes",
|
||||
"reference": "https://github.com/AlexYez/comfyui-timesaver",
|
||||
"files": [
|
||||
"https://github.com/AlexYez/comfyui-timesaver"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI nodes from [Timesaver](https://github.com/AlexYez/comfyui-timesaver)."
|
||||
},
|
||||
{
|
||||
"author": "aa-parky",
|
||||
"title": "pipemind-comfyui",
|
||||
"reference": "https://github.com/aa-parky/pipemind-comfyui",
|
||||
"files": [
|
||||
"https://github.com/aa-parky/pipemind-comfyui"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: Random Line from File (Seeded), Keyword Prompt Composer, Simple Prompt Combiner (5x), Boolean Switch (Any), Select Line from TxT (Any)"
|
||||
},
|
||||
{
|
||||
"author": "pacchikAI",
|
||||
"title": "ImagePromptBatch [UNSAFE]",
|
||||
"reference": "https://github.com/pacchikAI/ImagePromptBatch",
|
||||
"files": [
|
||||
"https://github.com/pacchikAI/ImagePromptBatch"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: Load Image and Prompt[w/This includes a node that can read the contents of a `.csv` file from an arbitrary path.]"
|
||||
},
|
||||
{
|
||||
"author": "papcorns",
|
||||
"title": "ComfyUI-Papcorns-Node-UploadToGCS",
|
||||
"reference": "https://github.com/papcorns/ComfyUI-Papcorns-Node-UploadToGCS",
|
||||
"files": [
|
||||
"https://github.com/papcorns/ComfyUI-Papcorns-Node-UploadToGCS"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: Upload Image To GCS"
|
||||
},
|
||||
{
|
||||
"author": "ZHO-ZHO-ZHO",
|
||||
"title": "Qwen-2.5 in ComfyUI [NAME CONFLICT]",
|
||||
"reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Qwen",
|
||||
"files": [
|
||||
"https://github.com/ZHO-ZHO-ZHO/ComfyUI-Qwen"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Using Qwen-2.5 in ComfyUI"
|
||||
},
|
||||
{
|
||||
"author": "Charonartist",
|
||||
"title": "gabe-init [WIP]",
|
||||
"reference": "https://github.com/gabe-init/ComfyUI-Repo-Eater",
|
||||
"files": [
|
||||
"https://github.com/gabe-init/ComfyUI-Repo-Eater"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A ComfyUI custom node that ingests GitHub repositories and outputs their content as text along with token count.\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "Charonartist",
|
||||
"title": "ComfyUI-send-eagle-pro",
|
||||
"reference": "https://github.com/Charonartist/ComfyUI-send-eagle-pro_2",
|
||||
"files": [
|
||||
"https://github.com/Charonartist/ComfyUI-send-eagle-pro_2"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Eagle integration extension node for ComfyUI (Pro version)"
|
||||
},
|
||||
{
|
||||
"author": "Mervent",
|
||||
"title": "comfyui-yaml-prompt",
|
||||
"reference": "https://github.com/Mervent/comfyui-yaml-prompt",
|
||||
"files": [
|
||||
"https://github.com/Mervent/comfyui-yaml-prompt"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: YAMLPromptParser"
|
||||
},
|
||||
{
|
||||
"author": "dhpdong",
|
||||
"title": "ComfyUI-IPAdapter-Flux-Repair",
|
||||
"reference": "https://github.com/dhpdong/ComfyUI-IPAdapter-Flux-Repair",
|
||||
"files": [
|
||||
"https://github.com/dhpdong/ComfyUI-IPAdapter-Flux-Repair"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "The IPAdapter-Flux node may cause some GPU memory to not be properly released during multiple inferences or when alternating between two nodes, eventually leading to a memory overflow. This project addresses and fixes that issue."
|
||||
},
|
||||
{
|
||||
"author": "usman2003",
|
||||
"title": "ComfyUI-RaceDetect",
|
||||
"reference": "https://github.com/usman2003/ComfyUI-RaceDetect",
|
||||
"files": [
|
||||
"https://github.com/usman2003/ComfyUI-RaceDetect"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: Race Detection V2"
|
||||
},
|
||||
{
|
||||
"author": "Mervent",
|
||||
"title": "comfyui-telegram-send",
|
||||
"reference": "https://github.com/Mervent/comfyui-telegram-send",
|
||||
"files": [
|
||||
"https://github.com/Mervent/comfyui-telegram-send"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: TelegramSend, TelegramReply"
|
||||
},
|
||||
{
|
||||
"author": "qlikpetersen",
|
||||
"title": "ComfyUI-AI_Tools [UNSAFE]",
|
||||
"reference": "https://github.com/qlikpetersen/ComfyUI-AI_Tools",
|
||||
"files": [
|
||||
"https://github.com/qlikpetersen/ComfyUI-AI_Tools"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: DoLogin, HttpRequest, Json2String, String2Json, CreateListString, CreateListJSON, Query_OpenAI, Image_Attachment, JSON_Attachment, String_Attachment, RunPython\n[w/This node pack contains a node with a vulnerability that allows arbitrary code execution.]"
|
||||
},
|
||||
{
|
||||
"author": "MuAIGC",
|
||||
"title": "DMXAPI Nodes [WIP]",
|
||||
"reference": "https://github.com/MuAIGC/ComfyUI-DMXAPI_mmx",
|
||||
"files": [
|
||||
"https://github.com/MuAIGC/ComfyUI-DMXAPI_mmx"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "DMXAPI integration for ComfyUI with Seedream-3.0 text-to-image model\nNOTE: invalid pyproject.toml"
|
||||
},
|
||||
{
|
||||
"author": "Hapseleg",
|
||||
"title": "This n that (Hapse)",
|
||||
"reference": "https://github.com/Hapseleg/ComfyUI-This-n-That",
|
||||
"files": [
|
||||
"https://github.com/Hapseleg/ComfyUI-This-n-That"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Comfyui custom nodes I use for... This n That..."
|
||||
},
|
||||
{
|
||||
"author": "matDobek",
|
||||
"title": "ComfyUI_duck",
|
||||
"reference": "https://github.com/matDobek/ComfyUI_duck",
|
||||
"files": [
|
||||
"https://github.com/matDobek/ComfyUI_duck"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: Combine Images (duck)"
|
||||
},
|
||||
{
|
||||
"author": "usman2003",
|
||||
"title": "ComfyUI-Classifiers",
|
||||
"reference": "https://github.com/usman2003/ComfyUI-Classifiers",
|
||||
"files": [
|
||||
"https://github.com/usman2003/ComfyUI-Classifiers"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: Gender Classification"
|
||||
},
|
||||
{
|
||||
"author": "wTechArtist",
|
||||
"title": "ComfyUI_vvl_BBOX",
|
||||
"reference": "https://github.com/wTechArtist/ComfyUI_vvl_BBOX",
|
||||
"files": [
|
||||
"https://github.com/wTechArtist/ComfyUI_vvl_BBOX"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: vvl BBox Input"
|
||||
},
|
||||
{
|
||||
"author": "zhengxyz123",
|
||||
"title": "zhengxyz123/ComfyUI-CLIPSeg [NAME CONFLICT]",
|
||||
"reference": "https://github.com/zhengxyz123/ComfyUI-CLIPSeg",
|
||||
"files": [
|
||||
"https://github.com/zhengxyz123/ComfyUI-CLIPSeg"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Using CLIPSeg model to generate masks for image inpainting tasks based on text or image prompts."
|
||||
},
|
||||
{
|
||||
"author": "Alazuaka",
|
||||
"title": "ComfyUI Image Analysis Toolkit [WIP]",
|
||||
"reference": "https://github.com/ThatGlennD/ComfyUI-Image-Analysis-Tools",
|
||||
"files": [
|
||||
"https://github.com/ThatGlennD/ComfyUI-Image-Analysis-Tools"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A suite of custom ComfyUI nodes built to evaluate and diagnose the technical qualities of images—especially those generated by AI models. Rather than creating visuals, these tools measure them, offering precise insights into sharpness, noise, exposure, color balance, and more.\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "trampolin",
|
||||
"title": "comfy-ui-scryfall",
|
||||
"reference": "https://github.com/trampolin/comfy-ui-scryfall",
|
||||
"files": [
|
||||
"https://github.com/trampolin/comfy-ui-scryfall"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Some ComfyUI nodes to fetch cards from scryfall"
|
||||
},
|
||||
{
|
||||
"author": "pomelyu",
|
||||
"title": "cy-prompt-tools",
|
||||
"reference": "https://github.com/pomelyu/cy-prompt-tools",
|
||||
"files": [
|
||||
"https://github.com/pomelyu/cy-prompt-tools"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "prompt tools for comfyui"
|
||||
},
|
||||
{
|
||||
"author": "vivi-gomez",
|
||||
"title": "ComfyUI-fixnodetranslate",
|
||||
"reference": "https://github.com/vivi-gomez/ComfyUI-fixnodetranslate",
|
||||
"files": [
|
||||
"https://github.com/vivi-gomez/ComfyUI-fixnodetranslate"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Addon for ComfyUI that adds 'Fix node (recreate + keep inputs)' context menu option"
|
||||
},
|
||||
{
|
||||
"author": "Alazuaka",
|
||||
"title": "ES_nodes for ComfyUI by Alazuka [WIP]",
|
||||
"reference": "https://github.com/Alazuaka/comfyui-lora-stack-node",
|
||||
"files": [
|
||||
"https://github.com/Alazuaka/comfyui-lora-stack-node"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Node for LoRA stack management in ComfyUI\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "Good-Dream-Studio",
|
||||
"title": "ComfyUI-Connect [WIP]",
|
||||
@ -72,16 +495,6 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "this node lists json files in the ComfyUI input folder[w/If this node pack is installed and the server is running with remote access enabled, it can read the contents of JSON files located in arbitrary paths.]"
|
||||
},
|
||||
{
|
||||
"author": "silveroxides",
|
||||
"title": "ComfyUI_EmbeddingToolkit",
|
||||
"reference": "https://github.com/silveroxides/ComfyUI_EmbeddingToolkit",
|
||||
"files": [
|
||||
"https://github.com/silveroxides/ComfyUI_EmbeddingToolkit"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: Save Token Embeddings, Save Weighted Embeddings, Save A1111-style Weighted Embeddings"
|
||||
},
|
||||
{
|
||||
"author": "yichengup",
|
||||
"title": "ComfyUI-YCNodes_Advance",
|
||||
@ -124,7 +537,6 @@
|
||||
},
|
||||
{
|
||||
"author": "virallover",
|
||||
"title": "comfyui-virallover",
|
||||
"reference": "https://github.com/maizerrr/comfyui-code-nodes",
|
||||
"files": [
|
||||
"https://github.com/maizerrr/comfyui-code-nodes"
|
||||
@ -140,7 +552,7 @@
|
||||
"https://github.com/virallover/comfyui-virallover"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: Download and Load Lora Model Only"
|
||||
"description": "NODES: Download and Load Lora Model Only, Depth Fitter, Brightness Correction, Edge Noise, Feathered Sharpen, Concat Horizontal With Mask"
|
||||
},
|
||||
{
|
||||
"author": "nobandegani",
|
||||
@ -530,7 +942,7 @@
|
||||
"https://github.com/jtydhr88/ComfyUI_frontend_vue_basic"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI Frontend Vue Basic is custom node that demonstrate how to use vue as frontend framework along with primevue and vue-i18n, cooperating with ComfyUI API"
|
||||
"description": "A demonstration custom node that showcases how to integrate Vue as a frontend framework within ComfyUI, complete with PrimeVue components and vue-i18n support."
|
||||
},
|
||||
{
|
||||
"author": "silent-rain",
|
||||
@ -552,16 +964,6 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: Linsoo Save Image, Linsoo Load Image (In development.. not working), Linsoo Empty Latent Image, Linsoo Multi Inputs, Linsoo Multi Outputs"
|
||||
},
|
||||
{
|
||||
"author": "GACLove",
|
||||
"title": "ComfyUI-Lightx2vWrapper",
|
||||
"reference": "https://github.com/GACLove/ComfyUI-Lightx2vWrapper",
|
||||
"files": [
|
||||
"https://github.com/GACLove/ComfyUI-Lightx2vWrapper"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: LightX2V WAN T5 Encoder Loader, LightX2V WAN T5 Encoder, LightX2V WAN CLIP Vision Encoder Loader, LightX2V WAN CLIP Vision Encoder, LightX2V WAN VAE Loader, LightX2V WAN Image Encoder, LightX2V WAN VAE Decoder, LightX2V WAN Model Loader, LightX2V WAN Video Sampler, LightX2V WAN Tea Cache, LightX2V WAN Video Empty Embeds"
|
||||
},
|
||||
{
|
||||
"author": "facok",
|
||||
"title": "ComfyUI-FokToolset",
|
||||
@ -1132,16 +1534,6 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: Hy3DTools Render Specific View, Hy3DTools Back-Project Inpaint\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "gondar-software",
|
||||
"title": "comfyui-custom-padding",
|
||||
"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": "grokuku",
|
||||
"title": "Holaf Custom Nodes for ComfyUI",
|
||||
@ -2034,16 +2426,6 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "A collection of custom nodes for ComfyUI, focusing on image handling and LoRA training."
|
||||
},
|
||||
{
|
||||
"author": "thedivergentai",
|
||||
"title": "Divergent Nodes [WIP]",
|
||||
"reference": "https://github.com/thedivergentai/divergent_nodes",
|
||||
"files": [
|
||||
"https://github.com/thedivergentai/divergent_nodes"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A ComfyUI custom node for counting CLIP tokens in text input."
|
||||
},
|
||||
{
|
||||
"author": "gold24park",
|
||||
"title": "loki-comfyui-node",
|
||||
@ -2856,16 +3238,6 @@
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A set of nodes to edit videos using the Hunyuan Video model"
|
||||
},
|
||||
{
|
||||
"author": "jonnydolake",
|
||||
"title": "ComfyUI-AIR-Nodes",
|
||||
"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": "watarika",
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -11,6 +11,96 @@
|
||||
|
||||
|
||||
|
||||
{
|
||||
"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]",
|
||||
"reference": "https://github.com/syaofox/ComfyUI_fnodes",
|
||||
"files": [
|
||||
"https://github.com/syaofox/ComfyUI_fnodes"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI_fnodes is a collection of custom nodes designed for ComfyUI. These nodes provide additional functionality that can enhance your ComfyUI workflows.\nFile manipulation tools, Image resizing tools, IPAdapter tools, Image processing tools, Mask tools, Face analysis tools, Sampler tools, Miscellaneous tools"
|
||||
},
|
||||
{
|
||||
"author": "Hangover3832",
|
||||
"title": "ComfyUI-Hangover-Moondream [DEPRECATED]",
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,15 @@
|
||||
{
|
||||
"custom_nodes": [
|
||||
{
|
||||
"author": "Comfy-Org",
|
||||
"title": "ComfyUI React Extension Template",
|
||||
"reference": "https://github.com/Comfy-Org/ComfyUI-React-Extension-Template",
|
||||
"files": [
|
||||
"https://github.com/Comfy-Org/ComfyUI-React-Extension-Template"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A minimal template for creating React/TypeScript frontend extensions for ComfyUI, with complete boilerplate setup including internationalization and unit testing."
|
||||
},
|
||||
{
|
||||
"author": "Suzie1",
|
||||
"title": "Guide To Making Custom Nodes in ComfyUI",
|
||||
|
||||
846
openapi.yaml
Normal file
846
openapi.yaml
Normal file
@ -0,0 +1,846 @@
|
||||
openapi: 3.1.0
|
||||
info:
|
||||
title: ComfyUI-Manager API
|
||||
description: |
|
||||
API for ComfyUI-Manager, a comprehensive management tool for ComfyUI custom nodes, models, and components.
|
||||
This API enables programmatic access to node management, model downloading, snapshot operations,
|
||||
and overall system configuration.
|
||||
version: "3.32.3"
|
||||
contact:
|
||||
name: ComfyUI-Manager Maintainers
|
||||
servers:
|
||||
- url: '/'
|
||||
description: Default ComfyUI server
|
||||
|
||||
# Common API components
|
||||
components:
|
||||
schemas:
|
||||
Error:
|
||||
type: object
|
||||
properties:
|
||||
error:
|
||||
type: string
|
||||
description: Error message
|
||||
|
||||
NodePackageMetadata:
|
||||
type: object
|
||||
properties:
|
||||
title:
|
||||
type: string
|
||||
description: Display name of the node package
|
||||
name:
|
||||
type: string
|
||||
description: Repository/package name
|
||||
files:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
description: Source URLs for the package
|
||||
description:
|
||||
type: string
|
||||
description: Description of the node package functionality
|
||||
install_type:
|
||||
type: string
|
||||
enum: [git, copy, pip]
|
||||
description: Installation method
|
||||
version:
|
||||
type: string
|
||||
description: Version identifier
|
||||
id:
|
||||
type: string
|
||||
description: Unique identifier for the node package
|
||||
ui_id:
|
||||
type: string
|
||||
description: ID for UI reference
|
||||
channel:
|
||||
type: string
|
||||
description: Source channel
|
||||
mode:
|
||||
type: string
|
||||
description: Source mode
|
||||
|
||||
ModelMetadata:
|
||||
type: object
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
description: Name of the model
|
||||
type:
|
||||
type: string
|
||||
description: Type of model
|
||||
base:
|
||||
type: string
|
||||
description: Base model type
|
||||
save_path:
|
||||
type: string
|
||||
description: Path for saving the model
|
||||
url:
|
||||
type: string
|
||||
description: Download URL
|
||||
filename:
|
||||
type: string
|
||||
description: Target filename
|
||||
ui_id:
|
||||
type: string
|
||||
description: ID for UI reference
|
||||
|
||||
SnapshotItem:
|
||||
type: string
|
||||
description: Name of the snapshot
|
||||
|
||||
QueueStatus:
|
||||
type: object
|
||||
properties:
|
||||
total_count:
|
||||
type: integer
|
||||
description: Total number of tasks
|
||||
done_count:
|
||||
type: integer
|
||||
description: Number of completed tasks
|
||||
in_progress_count:
|
||||
type: integer
|
||||
description: Number of tasks in progress
|
||||
is_processing:
|
||||
type: boolean
|
||||
description: Whether the queue is currently processing
|
||||
|
||||
securitySchemes:
|
||||
securityLevel:
|
||||
type: apiKey
|
||||
in: header
|
||||
name: Security-Level
|
||||
description: Security level for sensitive operations
|
||||
|
||||
parameters:
|
||||
modeParam:
|
||||
name: mode
|
||||
in: query
|
||||
description: Source mode (e.g., "local", "remote")
|
||||
schema:
|
||||
type: string
|
||||
enum: [local, remote, default]
|
||||
|
||||
targetParam:
|
||||
name: target
|
||||
in: query
|
||||
description: Target identifier
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
|
||||
valueParam:
|
||||
name: value
|
||||
in: query
|
||||
description: New value to set
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
|
||||
# API Paths
|
||||
paths:
|
||||
# Custom Nodes Endpoints
|
||||
/customnode/getmappings:
|
||||
get:
|
||||
summary: Get node-to-package mappings
|
||||
description: Provides unified mapping between nodes and node packages
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/modeParam'
|
||||
responses:
|
||||
'200':
|
||||
description: Successful operation
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
additionalProperties:
|
||||
type: array
|
||||
items:
|
||||
type: array
|
||||
description: Mapping of node packages to node classes
|
||||
|
||||
/customnode/fetch_updates:
|
||||
get:
|
||||
summary: Check for updates
|
||||
description: Fetches updates for custom nodes
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/modeParam'
|
||||
responses:
|
||||
'200':
|
||||
description: No updates available
|
||||
'201':
|
||||
description: Updates found
|
||||
'400':
|
||||
description: Error occurred
|
||||
|
||||
/customnode/installed:
|
||||
get:
|
||||
summary: Get installed custom nodes
|
||||
description: Returns a list of installed node packages
|
||||
parameters:
|
||||
- name: mode
|
||||
in: query
|
||||
description: Lists mode, default or imported
|
||||
schema:
|
||||
type: string
|
||||
enum: [default, imported]
|
||||
responses:
|
||||
'200':
|
||||
description: Successful operation
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
additionalProperties:
|
||||
$ref: '#/components/schemas/NodePackageMetadata'
|
||||
|
||||
/customnode/getlist:
|
||||
get:
|
||||
summary: Get custom node list
|
||||
description: Provides a list of available custom nodes
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/modeParam'
|
||||
- name: skip_update
|
||||
in: query
|
||||
description: Skip update check
|
||||
schema:
|
||||
type: boolean
|
||||
responses:
|
||||
'200':
|
||||
description: Successful operation
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
channel:
|
||||
type: string
|
||||
node_packs:
|
||||
type: object
|
||||
additionalProperties:
|
||||
$ref: '#/components/schemas/NodePackageMetadata'
|
||||
|
||||
/customnode/alternatives:
|
||||
get:
|
||||
summary: Get alternative node options
|
||||
description: Provides alternatives for nodes
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/modeParam'
|
||||
responses:
|
||||
'200':
|
||||
description: Successful operation
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
additionalProperties:
|
||||
type: object
|
||||
|
||||
/customnode/versions/{node_name}:
|
||||
get:
|
||||
summary: Get available versions for a node
|
||||
description: Lists all available versions for a specific node
|
||||
parameters:
|
||||
- name: node_name
|
||||
in: path
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: Successful operation
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
version:
|
||||
type: string
|
||||
'400':
|
||||
description: Node not found
|
||||
|
||||
/customnode/disabled_versions/{node_name}:
|
||||
get:
|
||||
summary: Get disabled versions for a node
|
||||
description: Lists all disabled versions for a specific node
|
||||
parameters:
|
||||
- name: node_name
|
||||
in: path
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: Successful operation
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
version:
|
||||
type: string
|
||||
'400':
|
||||
description: Node not found
|
||||
|
||||
/customnode/import_fail_info:
|
||||
post:
|
||||
summary: Get import failure information
|
||||
description: Returns information about why a node failed to import
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
cnr_id:
|
||||
type: string
|
||||
url:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: Successful operation
|
||||
'400':
|
||||
description: No information available
|
||||
|
||||
/customnode/install/git_url:
|
||||
post:
|
||||
summary: Install custom node via Git URL
|
||||
description: Installs a custom node from a Git repository URL
|
||||
security:
|
||||
- securityLevel: []
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
text/plain:
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: Installation successful or already installed
|
||||
'400':
|
||||
description: Installation failed
|
||||
'403':
|
||||
description: Security policy violation
|
||||
|
||||
/customnode/install/pip:
|
||||
post:
|
||||
summary: Install custom node dependencies via pip
|
||||
description: Installs Python package dependencies for custom nodes
|
||||
security:
|
||||
- securityLevel: []
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
text/plain:
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: Installation successful
|
||||
'403':
|
||||
description: Security policy violation
|
||||
|
||||
# Model Management Endpoints
|
||||
/externalmodel/getlist:
|
||||
get:
|
||||
summary: Get external model list
|
||||
description: Provides a list of available external models
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/modeParam'
|
||||
responses:
|
||||
'200':
|
||||
description: Successful operation
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
models:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/ModelMetadata'
|
||||
|
||||
# Queue Management Endpoints
|
||||
/manager/queue/update_all:
|
||||
get:
|
||||
summary: Update all custom nodes
|
||||
description: Queues update operations for all installed custom nodes
|
||||
security:
|
||||
- securityLevel: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/modeParam'
|
||||
responses:
|
||||
'200':
|
||||
description: Update queued successfully
|
||||
'401':
|
||||
description: Processing already in progress
|
||||
'403':
|
||||
description: Security policy violation
|
||||
|
||||
/manager/queue/reset:
|
||||
get:
|
||||
summary: Reset queue
|
||||
description: Resets the operation queue
|
||||
responses:
|
||||
'200':
|
||||
description: Queue reset successfully
|
||||
|
||||
/manager/queue/status:
|
||||
get:
|
||||
summary: Get queue status
|
||||
description: Returns the current status of the operation queue
|
||||
responses:
|
||||
'200':
|
||||
description: Successful operation
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/QueueStatus'
|
||||
|
||||
/manager/queue/install:
|
||||
post:
|
||||
summary: Install custom node
|
||||
description: Queues installation of a custom node
|
||||
security:
|
||||
- securityLevel: []
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/NodePackageMetadata'
|
||||
responses:
|
||||
'200':
|
||||
description: Installation queued successfully
|
||||
'403':
|
||||
description: Security policy violation
|
||||
'404':
|
||||
description: Target node not found or security issue
|
||||
|
||||
/manager/queue/start:
|
||||
get:
|
||||
summary: Start queue processing
|
||||
description: Starts processing the operation queue
|
||||
responses:
|
||||
'200':
|
||||
description: Processing started
|
||||
'201':
|
||||
description: Processing already in progress
|
||||
|
||||
/manager/queue/fix:
|
||||
post:
|
||||
summary: Fix custom node
|
||||
description: Attempts to fix a broken custom node installation
|
||||
security:
|
||||
- securityLevel: []
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/NodePackageMetadata'
|
||||
responses:
|
||||
'200':
|
||||
description: Fix operation queued successfully
|
||||
'403':
|
||||
description: Security policy violation
|
||||
|
||||
/manager/queue/reinstall:
|
||||
post:
|
||||
summary: Reinstall custom node
|
||||
description: Uninstalls and then reinstalls a custom node
|
||||
security:
|
||||
- securityLevel: []
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/NodePackageMetadata'
|
||||
responses:
|
||||
'200':
|
||||
description: Reinstall operation queued successfully
|
||||
'403':
|
||||
description: Security policy violation
|
||||
|
||||
/manager/queue/uninstall:
|
||||
post:
|
||||
summary: Uninstall custom node
|
||||
description: Queues uninstallation of a custom node
|
||||
security:
|
||||
- securityLevel: []
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/NodePackageMetadata'
|
||||
responses:
|
||||
'200':
|
||||
description: Uninstallation queued successfully
|
||||
'403':
|
||||
description: Security policy violation
|
||||
|
||||
/manager/queue/update:
|
||||
post:
|
||||
summary: Update custom node
|
||||
description: Queues update of a custom node
|
||||
security:
|
||||
- securityLevel: []
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/NodePackageMetadata'
|
||||
responses:
|
||||
'200':
|
||||
description: Update queued successfully
|
||||
'403':
|
||||
description: Security policy violation
|
||||
|
||||
/manager/queue/disable:
|
||||
post:
|
||||
summary: Disable custom node
|
||||
description: Disables a custom node without uninstalling it
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/NodePackageMetadata'
|
||||
responses:
|
||||
'200':
|
||||
description: Disable operation queued successfully
|
||||
|
||||
/manager/queue/update_comfyui:
|
||||
get:
|
||||
summary: Update ComfyUI
|
||||
description: Queues an update operation for ComfyUI itself
|
||||
responses:
|
||||
'200':
|
||||
description: Update queued successfully
|
||||
|
||||
/manager/queue/install_model:
|
||||
post:
|
||||
summary: Install model
|
||||
description: Queues installation of a model
|
||||
security:
|
||||
- securityLevel: []
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/ModelMetadata'
|
||||
responses:
|
||||
'200':
|
||||
description: Installation queued successfully
|
||||
'400':
|
||||
description: Invalid model request
|
||||
'403':
|
||||
description: Security policy violation
|
||||
|
||||
# Snapshot Management Endpoints
|
||||
/snapshot/getlist:
|
||||
get:
|
||||
summary: Get snapshot list
|
||||
description: Returns a list of available snapshots
|
||||
responses:
|
||||
'200':
|
||||
description: Successful operation
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
items:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/SnapshotItem'
|
||||
|
||||
/snapshot/remove:
|
||||
get:
|
||||
summary: Remove snapshot
|
||||
description: Removes a specified snapshot
|
||||
security:
|
||||
- securityLevel: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/targetParam'
|
||||
responses:
|
||||
'200':
|
||||
description: Snapshot removed successfully
|
||||
'400':
|
||||
description: Error removing snapshot
|
||||
'403':
|
||||
description: Security policy violation
|
||||
|
||||
/snapshot/restore:
|
||||
get:
|
||||
summary: Restore snapshot
|
||||
description: Restores a specified snapshot
|
||||
security:
|
||||
- securityLevel: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/targetParam'
|
||||
responses:
|
||||
'200':
|
||||
description: Snapshot restoration scheduled
|
||||
'400':
|
||||
description: Error restoring snapshot
|
||||
'403':
|
||||
description: Security policy violation
|
||||
|
||||
/snapshot/get_current:
|
||||
get:
|
||||
summary: Get current snapshot
|
||||
description: Returns the current system state as a snapshot
|
||||
responses:
|
||||
'200':
|
||||
description: Successful operation
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
'400':
|
||||
description: Error creating snapshot
|
||||
|
||||
/snapshot/save:
|
||||
get:
|
||||
summary: Save snapshot
|
||||
description: Saves the current system state as a new snapshot
|
||||
responses:
|
||||
'200':
|
||||
description: Snapshot saved successfully
|
||||
'400':
|
||||
description: Error saving snapshot
|
||||
|
||||
# ComfyUI Management Endpoints
|
||||
/comfyui_manager/comfyui_versions:
|
||||
get:
|
||||
summary: Get ComfyUI versions
|
||||
description: Returns available and current ComfyUI versions
|
||||
responses:
|
||||
'200':
|
||||
description: Successful operation
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
versions:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
current:
|
||||
type: string
|
||||
'400':
|
||||
description: Error retrieving versions
|
||||
|
||||
/comfyui_manager/comfyui_switch_version:
|
||||
get:
|
||||
summary: Switch ComfyUI version
|
||||
description: Switches to a specified ComfyUI version
|
||||
parameters:
|
||||
- name: ver
|
||||
in: query
|
||||
description: Target version
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: Version switch successful
|
||||
'400':
|
||||
description: Error switching version
|
||||
|
||||
/manager/reboot:
|
||||
get:
|
||||
summary: Reboot ComfyUI
|
||||
description: Restarts the ComfyUI server
|
||||
security:
|
||||
- securityLevel: []
|
||||
responses:
|
||||
'200':
|
||||
description: Reboot initiated
|
||||
'403':
|
||||
description: Security policy violation
|
||||
|
||||
# Configuration Endpoints
|
||||
/manager/preview_method:
|
||||
get:
|
||||
summary: Get or set preview method
|
||||
description: Gets or sets the latent preview method
|
||||
parameters:
|
||||
- name: value
|
||||
in: query
|
||||
required: false
|
||||
description: New preview method
|
||||
schema:
|
||||
type: string
|
||||
enum: [auto, latent2rgb, taesd, none]
|
||||
responses:
|
||||
'200':
|
||||
description: Setting updated or current value returned
|
||||
content:
|
||||
text/plain:
|
||||
schema:
|
||||
type: string
|
||||
|
||||
/manager/db_mode:
|
||||
get:
|
||||
summary: Get or set database mode
|
||||
description: Gets or sets the database mode
|
||||
parameters:
|
||||
- name: value
|
||||
in: query
|
||||
required: false
|
||||
description: New database mode
|
||||
schema:
|
||||
type: string
|
||||
enum: [channel, local, remote]
|
||||
responses:
|
||||
'200':
|
||||
description: Setting updated or current value returned
|
||||
content:
|
||||
text/plain:
|
||||
schema:
|
||||
type: string
|
||||
|
||||
/manager/policy/component:
|
||||
get:
|
||||
summary: Get or set component policy
|
||||
description: Gets or sets the component policy
|
||||
parameters:
|
||||
- name: value
|
||||
in: query
|
||||
required: false
|
||||
description: New component policy
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: Setting updated or current value returned
|
||||
content:
|
||||
text/plain:
|
||||
schema:
|
||||
type: string
|
||||
|
||||
/manager/policy/update:
|
||||
get:
|
||||
summary: Get or set update policy
|
||||
description: Gets or sets the update policy
|
||||
parameters:
|
||||
- name: value
|
||||
in: query
|
||||
required: false
|
||||
description: New update policy
|
||||
schema:
|
||||
type: string
|
||||
enum: [stable, nightly, nightly-comfyui]
|
||||
responses:
|
||||
'200':
|
||||
description: Setting updated or current value returned
|
||||
content:
|
||||
text/plain:
|
||||
schema:
|
||||
type: string
|
||||
|
||||
/manager/channel_url_list:
|
||||
get:
|
||||
summary: Get or set channel URL
|
||||
description: Gets or sets the channel URL for custom node sources
|
||||
parameters:
|
||||
- name: value
|
||||
in: query
|
||||
required: false
|
||||
description: New channel name
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: Setting updated or channel list returned
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
selected:
|
||||
type: string
|
||||
list:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
url:
|
||||
type: string
|
||||
|
||||
# Component Management Endpoints
|
||||
/manager/component/save:
|
||||
post:
|
||||
summary: Save component
|
||||
description: Saves a reusable workflow component
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
workflow:
|
||||
type: object
|
||||
responses:
|
||||
'200':
|
||||
description: Component saved successfully
|
||||
content:
|
||||
text/plain:
|
||||
schema:
|
||||
type: string
|
||||
'400':
|
||||
description: Error saving component
|
||||
|
||||
/manager/component/loads:
|
||||
post:
|
||||
summary: Load components
|
||||
description: Loads all available workflow components
|
||||
responses:
|
||||
'200':
|
||||
description: Components loaded successfully
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
'400':
|
||||
description: Error loading components
|
||||
|
||||
# Miscellaneous Endpoints
|
||||
/manager/version:
|
||||
get:
|
||||
summary: Get manager version
|
||||
description: Returns the current version of ComfyUI-Manager
|
||||
responses:
|
||||
'200':
|
||||
description: Successful operation
|
||||
content:
|
||||
text/plain:
|
||||
schema:
|
||||
type: string
|
||||
|
||||
/manager/notice:
|
||||
get:
|
||||
summary: Get manager notice
|
||||
description: Returns HTML content with notices and version information
|
||||
responses:
|
||||
'200':
|
||||
description: Successful operation
|
||||
content:
|
||||
text/html:
|
||||
schema:
|
||||
type: string
|
||||
10
scanner.py
10
scanner.py
@ -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] <= 11
|
||||
|
||||
if is_rate_limit_exceeded():
|
||||
print(f"GitHub API Rate Limit Exceeded: remained - {(g.rate_limiting_resettime - datetime.datetime.now().timestamp())/60:.2f} min")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user