Skip to main content

Cómo carga Comfy los nodos personalizados

Cuando Comfy inicia, escanea el directorio custom_nodes en busca de módulos de Python e intenta cargarlos. Si el módulo exporta NODE_CLASS_MAPPINGS, se tratará como un nodo personalizado.
Un módulo de Python es un directorio que contiene un archivo __init__.py. El módulo exporta todo lo que se enumera en el atributo __all__ definido en __init__.py.

init.py

__init__.py se ejecuta cuando Comfy intenta importar el módulo. Para que un módulo se reconozca como contenedor de definiciones de nodos personalizados, debe exportar NODE_CLASS_MAPPINGS. Si lo hace (y si nada falla en la importación), los nodos definidos en el módulo estarán disponibles en Comfy. Si hay un error en tu código, Comfy continuará, pero reportará el módulo como fallido al cargar. ¡Así que revisa la consola de Python! Un archivo __init__.py muy sencillo se vería así:

NODE_CLASS_MAPPINGS

NODE_CLASS_MAPPINGS debe ser un dict que asigne los nombres de los nodos personalizados (únicos en toda la instalación de Comfy) a la clase de nodo correspondiente.

NODE_DISPLAY_NAME_MAPPINGS

__init__.py también puede exportar NODE_DISPLAY_NAME_MAPPINGS, que asigna el mismo nombre único a un nombre para mostrar del nodo. Si no proporcionas NODE_DISPLAY_NAME_MAPPINGS, Comfy usará el nombre único como nombre para mostrar.

WEB_DIRECTORY

Si vas a implementar código del lado del cliente, también deberás exportar la ruta, relativa al módulo, en la que se encuentran los archivos JavaScript. Es convencional colocarlos en un subdirectorio de tu nodo personalizado llamado js.
Solo se servirán los archivos .js; no puedes implementar .css u otros tipos de esta manera
En versiones anteriores de Comfy, __init__.py debía copiar los archivos JavaScript al subdirectorio web principal de Comfy. Todavía verás código que hace esto. No lo hagas.