ComfyUI 是一个基于图的视觉 AI 引擎,用于生成工作流,实现为模块化的 Python 应用程序。它提供了一个基于节点的界面,用于设计和执行复杂的扩散模型管道,并支持图像、视频、音频和 3D 生成。
ComfyUI 作为一款基于 Web 的应用程序运行,具有清晰的前端界面、后端服务器和执行引擎之间的分离。该系统围绕节点图执行模型构建,其中每个操作都封装为一个节点类。
该架构遵循分层设计,其中前端通过 HTTP/WebSocket 与服务器通信,服务器管理执行队列,执行引擎在管理 GPU 内存和模型加载的同时处理节点图。
来源: README.md1-101 comfy_extras/nodes_mask.py1-413 node_helpers.py1-61
ComfyUI 实现了一个强类型节点系统,节点之间传递标准化的数据类型。该系统通过统一的接口支持多种模型架构和格式。
| 类型 | 描述 | 实现 |
|---|---|---|
MODEL | Diffusion model wrapper | UNet 架构,Transformer 模型 |
CLIP | 文本编码器 | CLIP、T5、多编码器系统 |
VAE | Variational autoencoder | 图像↔潜在空间转换 |
CONDITIONING | 文本/图像嵌入 | 已处理的提示嵌入 |
LATENT | 潜在表示 | 编码的图像数据 |
IMAGE | Tensor 图像 | RGB/RGBA 图像张量 |
MASK | 二值掩码 | 灰度掩码张量 |
| 类别 | 示例 | 节点类 |
|---|---|---|
| 图像模型 | SD1.x、SD2.x、SDXL、SD3/3.5、Flux、HunyuanDiT | CheckpointLoaderSimple、UNETLoader |
| 视频模型 | SVD、Mochi、LTX-Video、Hunyuan Video | 视频特定采样器 |
| 音频模型 | Stable Audio、ACE Step | 音频处理节点 |
| 3D 模型 | Hunyuan3D 2.0、StableZero123 | StableZero123_Conditioning |
| 控制模型 | ControlNet、T2I-Adapter | ControlNetLoader、ControlNetApply |
该系统支持通过统一的加载器加载多种检查点格式
.safetensors):首选的安全格式.ckpt、.pth):旧版检查点格式来源: README.md57-102 comfy_extras/nodes_stable3d.py1-144
ComfyUI 的核心是其基于节点的执行系统,其中每个操作都实现为一个具有标准化接口的 Python 类。
每个节点类都必须实现标准接口,其中 INPUT_TYPES() 类方法定义输入模式,RETURN_TYPES 元组指定输出类型,执行方法由 FUNCTION 引用。
节点通过标准化的设备管理功能与内存管理系统集成,允许自动适应不同的 VRAM 配置。
来源: comfy_extras/nodes_mask.py393-413 comfy_extras/nodes_post_processing.py107-118 node_helpers.py46-61
ComfyUI 通过一个基于图的系统执行工作流,在该系统中,节点通过连接传递强类型数据。执行引擎实现了智能缓存,并且仅重新执行工作流的已修改部分。
该系统包含针对不同操作的专用节点类别
掩码处理节点
MaskToImage / ImageToMask:在掩码和图像类型之间转换GrowMask:使用 scipy.ndimage 进行形态学操作FeatherMask:边缘羽化以实现平滑过渡MaskComposite:布尔运算(乘法、加法、减法、与、或、异或)后期处理节点
Blur:使用自定义 gaussian_kernel() 进行高斯模糊Sharpen:带有可配置半径和强度的非锐化蒙版Quantize:带有抖动选项的颜色量化ImageBlend:多模式混合(正常、乘法、屏幕、叠加等)合成节点
PorterDuffImageComposite:使用 Porter-Duff 混合模式进行 Alpha 合成SplitImageWithAlpha / JoinImageWithAlpha:Alpha 通道操作来源: comfy_extras/nodes_mask.py46-71 comfy_extras/nodes_post_processing.py11-47 comfy_extras/nodes_compositing.py104-154
ComfyUI 包含复杂的内存管理,使其能够在具有不同 VRAM 容量的设备上运行
| 模式 | 所需 VRAM | 行为 |
|---|---|---|
| HIGH_VRAM (高 VRAM) | 12GB+ | 将所有模型保留在 VRAM 中以获得最大速度 |
| NORMAL_VRAM (普通 VRAM) | 8GB+ | 根据需要加载和卸载模型 |
| LOW_VRAM (低 VRAM) | 4GB+ | 将模型拆分成多个部分以适应有限的 VRAM |
| NO_VRAM (无 VRAM) | 2GB+ | 仅将必需的处理张量保留在 VRAM 中 |
| CPU_ONLY | 0GB | 在 CPU 上处理所有内容(速度慢) |
这种分层方法可以自动适应可用硬件,使得 ComfyUI 可以在从高端 GPU 到仅 CPU 设置的各种设备上使用。
来源: README.md76-79
用户通过其 Web 界面与 ComfyUI 交互,该界面提供了一个用于创建节点图的画布。该界面允许
ComfyUI 包含用于常见操作的便捷键盘快捷键
| 操作 | 快捷键 |
|---|---|
| 队列当前图 | Ctrl+Enter |
| 将队列置于最前 | Ctrl+Shift+Enter |
| 取消生成 | Ctrl+Alt+Enter |
| 保存工作流 | Ctrl+S |
| 加载工作流 | Ctrl+O |
| 复制/粘贴节点 | Ctrl+C/Ctrl+V |
| 删除节点 | Delete/Backspace |
| 折叠/展开节点 | Alt+C |
来源: README.md102-139
ComfyUI 支持多种安装方法,并提供自动硬件检测和优化。
| 方法 | 描述 | 平台 | GPU 支持 |
|---|---|---|---|
| 桌面应用 | 来自 comfy.org 的预构建应用程序 | Windows、macOS | NVIDIA、AMD、Apple Silicon |
| Windows Portable | 自包含的 ZIP 包 | Windows | NVIDIA |
| 手动安装 | pip install comfy-cli && comfy install | 所有平台 | 所有 GPU 类型 |
| 云笔记本 | Jupyter notebook 部署 | Colab、Kaggle 等 | 云 GPU |
ComfyUI 会自动检测并针对不同的硬件配置进行优化
| GPU 类型 | 安装命令 | 平台支持 |
|---|---|---|
| NVIDIA | pip install torch --extra-index-url https://download.pytorch.org/whl/cu128 | Windows、Linux |
| AMD ROCm | pip install torch --index-url https://download.pytorch.org/whl/rocm6.3 | 仅限 Linux |
| Intel Arc | pip install torch --index-url https://download.pytorch.org/whl/nightly/xpu | Windows、Linux |
| Apple Silicon | 默认 PyTorch,支持 MPS 后端 | macOS |
| DirectML | pip install torch-directml | Windows (AMD) |
| 仅 CPU | python main.py --cpu | 所有平台 |
包含的 Jupyter notebook 演示了云部署,具有自动依赖管理功能
该 notebook 包含通过 cloudflared 或 localtunnel 进行的隧道连接选项,以便远程访问 Web 界面。
ComfyUI 遵循每周发布周期,并跨存储库进行协调更新
pyproject.toml 中跟踪)版本同步通过 GitHub Actions 工作流自动完成,这些工作流在 pyproject.toml 更改时更新 comfyui_version.py。
来源: README.md161-293 notebooks/comfyui_colab.ipynb20-49 pyproject.toml1-25 comfyui_version.py1-4
ComfyUI 通过自定义节点开发和标准化的扩展点实现插件架构。
自定义节点通过实现标准节点接口与核心系统无缝集成
代码库提供了用于常见节点开发任务的实用函数
node_helpers.conditioning_set_values():修改 conditioning 数据node_helpers.image_alpha_fix():处理 alpha 通道兼容性node_helpers.pillow(): 健壮的PIL图像加载,带错误处理node_helpers.string_to_torch_dtype(): 转换字符串数据类型规范通过以下方式维护自动化的代码质量
开发遵循 Python 最佳实践,采用类型提示、文档字符串和模块化架构,支持在不修改核心代码的情况下轻松扩展。
来源: node_helpers.py8-61 .github/workflows/ruff.yml1-24 .github/workflows/update-version.yml1-59
ComfyUI 通过其节点式界面为 AI 图像和视频生成提供了一个强大、灵活的框架。其高效的架构、全面的模型支持和先进的内存管理使其能够被不同硬件能力的用户所使用,而其模块化设计也允许进行广泛的定制和扩展。
有关 ComfyUI 特定方面的更详细信息,请参阅本文档的相应部分。