mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-02-19 14:40:04 +00:00
refactor: process isolation support for node replacement API
- Move REGISTERED_NODE_REPLACEMENTS global to NodeReplaceManager instance state - Add NodeReplacement class to ComfyAPI_latest with async register() method - Deprecate module-level register_node_replacement() function - Call register_replacements() from comfy_entrypoint() This enables pyisolate compatibility where extensions run in separate processes and communicate via RPC. The async API allows registration calls to cross process boundaries. Refs: TDD-002 Amp-Thread-ID: https://ampcode.com/threads/T-019c2b33-ac55-76a9-9c6b-0246a8625f21
This commit is contained in:
@@ -1,13 +1,25 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import warnings
|
||||
from typing import Any
|
||||
import app.node_replace_manager
|
||||
|
||||
|
||||
def register_node_replacement(node_replace: NodeReplace):
|
||||
"""
|
||||
Register node replacement.
|
||||
|
||||
.. deprecated::
|
||||
Use ``ComfyAPI.node_replacement.register()`` instead.
|
||||
This synchronous function does not work with process isolation (pyisolate).
|
||||
"""
|
||||
app.node_replace_manager.register_node_replacement(node_replace)
|
||||
warnings.warn(
|
||||
"register_node_replacement() is deprecated. "
|
||||
"Use 'await ComfyAPI.node_replacement.register()' instead for pyisolate compatibility.",
|
||||
DeprecationWarning,
|
||||
stacklevel=2
|
||||
)
|
||||
from server import PromptServer
|
||||
PromptServer.instance.node_replace_manager.register(node_replace)
|
||||
|
||||
|
||||
class NodeReplace:
|
||||
|
||||
Reference in New Issue
Block a user