> ## Documentation Index
> Fetch the complete documentation index at: https://dripart-docs-recommend-assets-api.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 生命周期

## Comfy 如何加载自定义节点

当 Comfy 启动时，它会扫描 `custom_nodes` 目录下的 Python 模块，并尝试加载它们。
如果模块导出了 `NODE_CLASS_MAPPINGS`，它就会被视为自定义节点。
<Tip>一个 Python 模块是包含 `__init__.py` 文件的目录。
模块会导出在 `__init__.py` 文件中 `__all__` 属性中列出的内容。</Tip>

### **init**.py

当 Comfy 尝试导入模块时，会执行 `__init__.py` 文件。要让模块被识别为包含自定义节点定义，必须导出 `NODE_CLASS_MAPPINGS`。如果导出了（并且导入过程中没有出错），模块中定义的节点就会在 Comfy 中可用。如果你的代码有错误，Comfy 会继续运行，但会报告该模块加载失败。所以请检查 Python 控制台！

一个非常简单的 `__init__.py` 文件如下所示：

```python theme={null}
from .python_file import MyCustomNode
NODE_CLASS_MAPPINGS = { "My Custom Node" : MyCustomNode }
__all__ = ["NODE_CLASS_MAPPINGS"]
```

#### NODE\_CLASS\_MAPPINGS

`NODE_CLASS_MAPPINGS` 必须是一个 `dict`，将自定义节点的唯一名称（在整个 Comfy 安装中唯一）映射到对应的节点类。

#### NODE\_DISPLAY\_NAME\_MAPPINGS

`__init__.py` 还可以导出 `NODE_DISPLAY_NAME_MAPPINGS`，它将同样的唯一名称映射为节点的显示名称。
如果没有提供 `NODE_DISPLAY_NAME_MAPPINGS`，Comfy 会使用唯一名称作为显示名称。

#### WEB\_DIRECTORY

如果你需要部署客户端代码，还需要导出 JavaScript 文件所在路径（相对于模块的路径）。通常将这些文件放在自定义节点的 `js` 子目录下。
<Tip>只有 `.js` 文件会被服务；你不能通过这种方式部署 `.css` 或其他类型的文件</Tip>

<Warning>在旧版本的 Comfy 中，`__init__.py` 需要将 JavaScript 文件复制到主 Comfy 的 web 子目录下。你可能还会看到这样做的代码。不要这样做。</Warning>
