# 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()