本文档概述了ComfyUI的分层架构,涵盖了主要的系统组件及其交互。它重点介绍了核心抽象、执行管道以及基于节点的 워크플로우 系统如何协调 AI 模型操作。
有关特定节点实现的详细信息,请参阅 节点系统。有关特定模型的架构和实现,请参阅 模型系统。有关执行详细信息和 워크플로우 处理,请参阅 执行系统。
ComfyUI围绕一个基于节点的 워크플로우引擎构建,该引擎通过分层架构协调 AI 模型操作。系统通过执行代表文本编码、图像生成和模型加载等操作的互连节点来处理用户定义的 워크플로우。
来源: main.py1-312 server.py150-220 execution.py270-400 nodes.py1-100 comfy/model_management.py1-50
PromptServer类作为中央协调点,管理HTTP/WebSocket连接并将请求路由到执行系统。
服务器维护用于实时进度更新的WebSocket连接,并使用HTTP端点进行 워크플로우 提交和文件操作。
来源: server.py150-292 main.py214-296
节点系统构建在ComfyNodeABC基类和一个将节点类型映射到其实现的全局注册表之上。
每个节点通过类方法定义其接口,这些方法指定输入类型、返回类型和执行函数。
来源: nodes.py49-70 comfy/comfy_types.py1-50 nodes.py538-575
模型管理系统负责AI模型的加载、内存优化和设备放置。
系统自动检测模型类型,根据可用VRAM应用内存优化,并管理加载/卸载生命周期。
来源: comfy/model_management.py407-500 comfy/model_base.py112-150 comfy/sd.py266-310
ComfyUI通过确定性的执行管道处理 워크플로우,该管道解析依赖关系并按正确的顺序执行节点。
执行引擎维护节点输出和UI数据的缓存,支持不同的缓存策略(经典、LRU、依赖感知),并提供实时进度反馈。
来源: execution.py270-400 comfy_execution/graph.py1-100 execution.py108-151
模型管理系统通过智能加载策略优化内存使用。
该系统支持多种设备类型(CUDA、CPU、MPS、DirectML),并根据可用资源自动管理模型放置。
来源: comfy/model_management.py563-637 comfy/model_management.py496-561 comfy/model_management.py720-799
所有ComfyUI节点都通过类方法实现一致的接口。
| 方法 | 目的 | 必填 |
|---|---|---|
INPUT_TYPES() | 定义输入模式和验证。 | 是 |
RETURN_TYPES | 指定输出数据类型。 | 是 |
FUNCTION | 执行方法的名称。 | 是 |
CATEGORY | UI组织类别。 | 是 |
OUTPUT_NODE | 标记为输出/保存节点。 | 可选 |
IS_CHANGED() | 缓存失效逻辑。 | 可选 |
来源: nodes.py49-70 nodes.py538-575 comfy/comfy_types.py1-50
ComfyUI通过统一的接口抽象不同的AI模型架构。
这种抽象允许ComfyUI通过通用接口支持各种模型架构(Stable Diffusion、SDXL、Flux等)。
来源: comfy/model_base.py112-200 comfy/supported_models.py27-180 comfy/model_base.py56-102
执行系统提供多种缓存策略以优化性能。
缓存系统跟踪节点输入以确定何时可以重用缓存结果,从而显著提高 워크플로우 执行性能。
来源: execution.py69-106 comfy_execution/caching.py1-100 execution.py278-282