메인 콘텐츠로 건너뛰기

Comfy가 맞춤형 노드를 로드하는 방법

Comfy가 시작되면, custom_nodes 디렉터리를 파이썬 모듈로 스캔하고 이를 로드하려고 시도합니다. 모듈이 NODE_CLASS_MAPPINGS를 내보내면, 이는 맞춤형 노드로 처리됩니다.
파이썬 모듈은 __init__.py 파일을 포함한 디렉터리입니다.
모듈은 __init__.py에 정의된 __all__ 속성에 나열된 내용을 내보냅니다.

init.py

__init__.py는 Comfy가 모듈을 가져오려고 할 때 실행됩니다. 모듈이 맞춤형 노드 정의를 포함하고 있다고 인식되려면, NODE_CLASS_MAPPINGS를 내보내야 합니다. 만약 그렇게 하고(그리고 가져오기 과정에서 문제가 없다면), 모듈에 정의된 노드들은 Comfy에서 사용 가능해집니다. 코드에 오류가 있으면 Comfy는 계속 진행하지만, 해당 모듈이 로드되지 않았다고 보고합니다. 그러니 파이썬 콘솔을 확인하세요! 아주 간단한 __init__.py 파일은 다음과 같을 것입니다:
from .python_file import MyCustomNode
NODE_CLASS_MAPPINGS = { "My Custom Node" : MyCustomNode }
__all__ = ["NODE_CLASS_MAPPINGS"]

NODE_CLASS_MAPPINGS

NODE_CLASS_MAPPINGS는 맞춤형 노드 이름(Comfy 설치 내에서 고유)을 해당 노드 클래스로 매핑하는 dict여야 합니다.

NODE_DISPLAY_NAME_MAPPINGS

__init__.py는 또한 동일한 고유 이름을 노드의 표시 이름으로 매핑하는 NODE_DISPLAY_NAME_MAPPINGS를 내보낼 수 있습니다. 만약 NODE_DISPLAY_NAME_MAPPINGS가 제공되지 않으면, Comfy는 고유 이름을 표시 이름으로 사용합니다.

WEB_DIRECTORY

클라이언트 측 코드를 배포하는 경우, 자바스크립트 파일들이 위치할 모듈 상대 경로를 내보내야 합니다. 일반적으로 이러한 파일들을 맞춤형 노드의 하위 디렉터리인 js에 두는 것이 관례입니다.
오직 .js 파일만 제공됩니다; .css나 다른 유형의 파일은 이런 방식으로 배포할 수 없습니다
이전 버전의 Comfy에서는 __init__.py를 통해 자바스크립트 파일을 메인 Comfy 웹 하위 디렉터리로 복사해야 했습니다. 아직도 그런 코드를 볼 수 있을 것입니다. 하지만 그럴 필요는 없습니다.