# node_replacements.py
from comfy_api.latest import ComfyExtension, io, ComfyAPI
api = ComfyAPI()
async def register_my_replacements():
"""이 패키지의 모든 노드 교체를 등록하세요."""
# 간단한 이름 변경 - 입력 변경 필요 없음
await api.node_replacement.register(io.NodeReplace(
new_node_id="MyNewNode",
old_node_id="MyOldNode",
))
# 입력 매핑이 포함된 복잡한 교체
await api.node_replacement.register(io.NodeReplace(
new_node_id="MyImprovedSampler",
old_node_id="MyOldSampler",
old_widget_ids=["steps", "cfg"],
input_mapping=[
{"new_id": "model", "old_id": "model"},
{"new_id": "num_steps", "old_id": "steps"},
{"new_id": "guidance", "old_id": "cfg"},
{"new_id": "scheduler", "set_value": "normal"}, # 기본값을 가진 새 입력
],
output_mapping=[
{"new_idx": 0, "old_idx": 0},
],
))
class MyExtension(ComfyExtension):
async def on_load(self) -> None:
await register_my_replacements()
async def get_node_list(self) -> list[type[io.ComfyNode]]:
return [] # 여기에는 노드를 정의하지 않고 교체만 정의합니다
async def comfy_entrypoint() -> MyExtension:
return MyExtension()