什么是自定义节点?
Comfy 的一个重要优势在于其基于节点的方法,允许你通过以不同方式连接提供的节点来开发新的工作流程。内置节点提供了广泛的功能,但你可能会发现需要的某些特性并未由核心节点提供。自定义节点使你能够实现新功能并与更广泛的社区共享。
自定义节点与任何 Comfy 节点一样,基本上是接受输入,对其进行处理,然后生成输出。虽然某些自定义节点执行高度复杂的任务,但许多仅执行一项简单的操作。以下是一个简单节点的示例,它接受一张图像并对其进行反转。
客户端-服务器模型
Comfy 采用客户端-服务器模型运行。服务器使用 Python 编写,处理所有实际工作:数据处理、模型、图像扩散等。客户端使用 JavaScript 编写,处理用户界面。
Comfy 还可以以 API 模式使用,在这种模式下,工作流由非 Comfy 客户端(例如其他 UI 或命令行脚本)发送到服务器。
自定义节点可以分为以下四类:
仅服务器端
大多数自定义节点完全在服务器端运行,通过定义一个 Python 类来指定输入和输出类型,并提供一个可调用的函数以处理输入并生成输出。
仅客户端
少数自定义节点对客户端 UI 进行修改,但并不添加核心功能。尽管名称如此,它们可能甚至不会向系统添加新节点。
独立客户端和服务器
自定义节点可以提供额外的服务器功能,以及额外的(相关的)UI 功能(例如处理新数据类型的新小部件)。在大多数情况下,客户端和服务器之间的通信可以通过 Comfy 数据流控制来处理。
连接客户端和服务器
在少数情况下,UI 功能和服务器需要直接相互交互。