"Fix node (recreate)" rewired the inputs of the new node with src_node.connect(link.origin_slot, dest.id, input.name). LGraphNode.connect() looks its target up by id only when the id is a number, so on a frontend whose node ids are strings the id was taken for the node itself: the entry threw "findInputSlot is not a function" and, because the original is removed only afterwards, left the wired original and an unwired replacement on the canvas. - Pass the node to connect(), as the output loop below already does - Add a Playwright spec that clicks the entry in the node context menu and checks the page errors and what every KSampler is wired to, with node ids as the frontend issues them and with ids rewritten to strings - Add a CHANGELOG entry Port of #3443 to v4 (#3126).
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:
- Core Layer: Manager modules provide the primary API and business logic
- Utility Layer: Helper modules provide specialized functionality
- 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