fix: use direct PromptServer registration instead of ComfyAPI class
Some checks failed
Python Linting / Run Ruff (push) Has been cancelled
Python Linting / Run Pylint (push) Has been cancelled

Amp-Thread-ID: https://ampcode.com/threads/T-019c2be8-0b34-747e-b1f7-20a1a1e6c9df
This commit is contained in:
bymyself 2026-02-05 15:52:21 -08:00
parent a2d4c0f98b
commit 739ed21714

View File

@ -656,22 +656,27 @@ class BatchImagesMasksLatentsNode(io.ComfyNode):
return io.NodeOutput(batched) return io.NodeOutput(batched)
from comfy_api.latest import ComfyAPI, node_replace from comfy_api.latest import node_replace
from server import PromptServer
def _register(nr: node_replace.NodeReplace):
"""Helper to register replacements via PromptServer."""
PromptServer.instance.node_replace_manager.register(nr)
async def register_replacements(): async def register_replacements():
"""Register all built-in node replacements using the async API.""" """Register all built-in node replacements."""
await register_replacements_longeredge() register_replacements_longeredge()
await register_replacements_batchimages() register_replacements_batchimages()
await register_replacements_upscaleimage() register_replacements_upscaleimage()
await register_replacements_controlnet() register_replacements_controlnet()
await register_replacements_load3d() register_replacements_load3d()
await register_replacements_preview3d() register_replacements_preview3d()
await register_replacements_svdimg2vid() register_replacements_svdimg2vid()
await register_replacements_conditioningavg() register_replacements_conditioningavg()
async def register_replacements_longeredge(): def register_replacements_longeredge():
# No dynamic inputs here # No dynamic inputs here
await ComfyAPI.node_replacement.register(node_replace.NodeReplace( _register(node_replace.NodeReplace(
new_node_id="ImageScaleToMaxDimension", new_node_id="ImageScaleToMaxDimension",
old_node_id="ResizeImagesByLongerEdge", old_node_id="ResizeImagesByLongerEdge",
old_widget_ids=["longer_edge"], old_widget_ids=["longer_edge"],
@ -684,9 +689,9 @@ async def register_replacements_longeredge():
output_mapping=[node_replace.OutputMap(new_idx=0, old_idx=0)], output_mapping=[node_replace.OutputMap(new_idx=0, old_idx=0)],
)) ))
async def register_replacements_batchimages(): def register_replacements_batchimages():
# BatchImages node uses Autogrow # BatchImages node uses Autogrow
await ComfyAPI.node_replacement.register(node_replace.NodeReplace( _register(node_replace.NodeReplace(
new_node_id="BatchImagesNode", new_node_id="BatchImagesNode",
old_node_id="ImageBatch", old_node_id="ImageBatch",
input_mapping=[ input_mapping=[
@ -695,9 +700,9 @@ async def register_replacements_batchimages():
], ],
)) ))
async def register_replacements_upscaleimage(): def register_replacements_upscaleimage():
# ResizeImageMaskNode uses DynamicCombo # ResizeImageMaskNode uses DynamicCombo
await ComfyAPI.node_replacement.register(node_replace.NodeReplace( _register(node_replace.NodeReplace(
new_node_id="ResizeImageMaskNode", new_node_id="ResizeImageMaskNode",
old_node_id="ImageScaleBy", old_node_id="ImageScaleBy",
old_widget_ids=["upscale_method", "scale_by"], old_widget_ids=["upscale_method", "scale_by"],
@ -709,9 +714,9 @@ async def register_replacements_upscaleimage():
], ],
)) ))
async def register_replacements_controlnet(): def register_replacements_controlnet():
# T2IAdapterLoader → ControlNetLoader # T2IAdapterLoader → ControlNetLoader
await ComfyAPI.node_replacement.register(node_replace.NodeReplace( _register(node_replace.NodeReplace(
new_node_id="ControlNetLoader", new_node_id="ControlNetLoader",
old_node_id="T2IAdapterLoader", old_node_id="T2IAdapterLoader",
input_mapping=[ input_mapping=[
@ -719,30 +724,30 @@ async def register_replacements_controlnet():
], ],
)) ))
async def register_replacements_load3d(): def register_replacements_load3d():
# Load3DAnimation merged into Load3D # Load3DAnimation merged into Load3D
await ComfyAPI.node_replacement.register(node_replace.NodeReplace( _register(node_replace.NodeReplace(
new_node_id="Load3D", new_node_id="Load3D",
old_node_id="Load3DAnimation", old_node_id="Load3DAnimation",
)) ))
async def register_replacements_preview3d(): def register_replacements_preview3d():
# Preview3DAnimation merged into Preview3D # Preview3DAnimation merged into Preview3D
await ComfyAPI.node_replacement.register(node_replace.NodeReplace( _register(node_replace.NodeReplace(
new_node_id="Preview3D", new_node_id="Preview3D",
old_node_id="Preview3DAnimation", old_node_id="Preview3DAnimation",
)) ))
async def register_replacements_svdimg2vid(): def register_replacements_svdimg2vid():
# Typo fix: SDV → SVD # Typo fix: SDV → SVD
await ComfyAPI.node_replacement.register(node_replace.NodeReplace( _register(node_replace.NodeReplace(
new_node_id="SVD_img2vid_Conditioning", new_node_id="SVD_img2vid_Conditioning",
old_node_id="SDV_img2vid_Conditioning", old_node_id="SDV_img2vid_Conditioning",
)) ))
async def register_replacements_conditioningavg(): def register_replacements_conditioningavg():
# Typo fix: trailing space in node name # Typo fix: trailing space in node name
await ComfyAPI.node_replacement.register(node_replace.NodeReplace( _register(node_replace.NodeReplace(
new_node_id="ConditioningAverage", new_node_id="ConditioningAverage",
old_node_id="ConditioningAverage ", old_node_id="ConditioningAverage ",
)) ))