菜单

概述

相关源文件

ComfyUI 是一个基于图的视觉 AI 引擎,用于生成工作流,实现为模块化的 Python 应用程序。它提供了一个基于节点的界面,用于设计和执行复杂的扩散模型管道,并支持图像、视频、音频和 3D 生成。

有关执行系统的详细信息,请参阅 核心架构执行系统

架构概述

ComfyUI 作为一款基于 Web 的应用程序运行,具有清晰的前端界面、后端服务器和执行引擎之间的分离。该系统围绕节点图执行模型构建,其中每个操作都封装为一个节点类。

核心系统组件

该架构遵循分层设计,其中前端通过 HTTP/WebSocket 与服务器通信,服务器管理执行队列,执行引擎在管理 GPU 内存和模型加载的同时处理节点图。

来源: README.md1-101 comfy_extras/nodes_mask.py1-413 node_helpers.py1-61

模型支持和数据类型

ComfyUI 实现了一个强类型节点系统,节点之间传递标准化的数据类型。该系统通过统一的接口支持多种模型架构和格式。

核心数据类型

类型描述实现
MODELDiffusion model wrapperUNet 架构,Transformer 模型
CLIP文本编码器CLIP、T5、多编码器系统
VAEVariational autoencoder图像↔潜在空间转换
CONDITIONING文本/图像嵌入已处理的提示嵌入
LATENT潜在表示编码的图像数据
IMAGETensor 图像RGB/RGBA 图像张量
MASK二值掩码灰度掩码张量

支持的模型类别

类别示例节点类
图像模型SD1.x、SD2.x、SDXL、SD3/3.5、Flux、HunyuanDiTCheckpointLoaderSimpleUNETLoader
视频模型SVD、Mochi、LTX-Video、Hunyuan Video视频特定采样器
音频模型Stable Audio、ACE Step音频处理节点
3D 模型Hunyuan3D 2.0、StableZero123StableZero123_Conditioning
控制模型ControlNet、T2I-AdapterControlNetLoaderControlNetApply

模型格式和加载

该系统支持通过统一的加载器加载多种检查点格式

  • SafeTensors.safetensors):首选的安全格式
  • PyTorch.ckpt.pth):旧版检查点格式
  • Diffusers:HuggingFace diffusers 格式
  • GGUF:量化模型格式

来源: 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_ONLY0GB在 CPU 上处理所有内容(速度慢)

这种分层方法可以自动适应可用硬件,使得 ComfyUI 可以在从高端 GPU 到仅 CPU 设置的各种设备上使用。

来源: README.md76-79

使用和交互

用户通过其 Web 界面与 ComfyUI 交互,该界面提供了一个用于创建节点图的画布。该界面允许

  • 创建节点并连接它们以形成工作流
  • 执行工作流以生成图像、视频或其他媒体
  • 将工作流保存和加载为 JSON 文件
  • 导出带有嵌入式工作流元数据的生成媒体
  • 从生成的 PNG/WebP 文件加载工作流

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、macOSNVIDIA、AMD、Apple Silicon
Windows Portable自包含的 ZIP 包WindowsNVIDIA
手动安装pip install comfy-cli && comfy install所有平台所有 GPU 类型
云笔记本Jupyter notebook 部署Colab、Kaggle 等云 GPU

硬件支持矩阵

ComfyUI 会自动检测并针对不同的硬件配置进行优化

GPU 类型安装命令平台支持
NVIDIApip install torch --extra-index-url https://download.pytorch.org/whl/cu128Windows、Linux
AMD ROCmpip install torch --index-url https://download.pytorch.org/whl/rocm6.3仅限 Linux
Intel Arcpip install torch --index-url https://download.pytorch.org/whl/nightly/xpuWindows、Linux
Apple Silicon默认 PyTorch,支持 MPS 后端macOS
DirectMLpip install torch-directmlWindows (AMD)
仅 CPUpython main.py --cpu所有平台

云部署示例

包含的 Jupyter notebook 演示了云部署,具有自动依赖管理功能

该 notebook 包含通过 cloudflaredlocaltunnel 进行的隧道连接选项,以便远程访问 Web 界面。

版本管理

ComfyUI 遵循每周发布周期,并跨存储库进行协调更新

  • 核心:ComfyUI 主后端(版本在 pyproject.toml 中跟踪)
  • 前端:独立的 Vue.js 前端,每日发布
  • 桌面:使用稳定核心版本的 Electron 包装器

版本同步通过 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(): 转换字符串数据类型规范

质量保证

通过以下方式维护自动化的代码质量

  • Ruff Linting: 强制执行代码风格并捕获常见错误
  • GitHub Actions: 在推送和拉取请求时进行自动化的 CI/CD
  • Version Sync: 通过工作流自动化自动更新版本文件

开发遵循 Python 最佳实践,采用类型提示、文档字符串和模块化架构,支持在不修改核心代码的情况下轻松扩展。

来源: node_helpers.py8-61 .github/workflows/ruff.yml1-24 .github/workflows/update-version.yml1-59

结论

ComfyUI 通过其节点式界面为 AI 图像和视频生成提供了一个强大、灵活的框架。其高效的架构、全面的模型支持和先进的内存管理使其能够被不同硬件能力的用户所使用,而其模块化设计也允许进行广泛的定制和扩展。

有关 ComfyUI 特定方面的更详细信息,请参阅本文档的相应部分。