跳到正文

目录

ComfyUI:用节点图驱动 AI 内容创作的模块化引擎

先看结论

ComfyUI 解决的不是"给扩散模型加个界面",而是把一次生图从"一段跑完就扔的脚本"变成"一张可编辑、可复用、可分享的图"。它把模型推理的每一步——加载检查点、文本编码、采样、VAE 解码——都拆成独立节点,用户连线编排,系统按拓扑序执行。界面只是入口,真正的工作发生在节点之间的数据流上。

这套设计带来三个直接结果:

  • 换模型只动一个节点:从 SDXL 换到 Flux.2,替换加载节点即可,其余结构不动
  • 工作流可序列化为 JSON:既能保存复用,也能通过 API 远程驱动
  • 改参数只重跑受影响子图,不必整个流程从头再来

ComfyUI 用 Python 编写,以 GPL-3.0 许可发布,截至本文写作时在 GitHub 上获得超过 13 万 Star。展开细节之前,先把它拆成四层,后面各节都对应其中一层:

层级负责什么典型组件
前端画布节点编排、连线校验、参数编辑Web 前端、节点类型注册表
后端执行队列调度、拓扑排序、部分图重执行执行器、异步队列
模型层模型加载、文本编码、采样、解码Load Checkpoint、KSampler、VAE Decode
生态层自定义节点、模板、App Mode、APICustom Nodes、工作流模板

读完全文,你应该能说清这四层各自的工作方式,并能判断自己该不该自建一套。

节点图架构:从画布到推理

ComfyUI 的界面是一张无限画布。用户从搜索面板拖出节点,用连线(Wire)把上游节点的输出端口连到下游节点的输入端口,形成一张有向无环图(DAG)。按下 Ctrl+Enter 后,系统对这张图做拓扑排序,依次执行每个节点。

每个节点只声明输入类型和输出类型,连线合法性由系统自动校验——类型不匹配的端口连不上。这一步把"参数传错"这类错误从运行时提前到了编辑时。复杂工作流因此保持可读:看得见的数据流,就是执行顺序。

一个典型的文生图工作流:

  1. Load Checkpoint 加载 .safetensors 模型文件,输出 MODEL、CLIP、VAE 三个对象
  2. CLIP Text Encode 接收 CLIP 对象和提示词文本,输出条件向量(Conditioning)
  3. Empty Latent Image 生成一张空白潜空间图像,指定分辨率
  4. KSampler 接收 MODEL、正向条件、负向条件、潜空间图像,执行扩散采样
  5. VAE Decode 把采样后的潜空间数据解码为像素图像
  6. Save Image 保存结果到磁盘

一条任务如何流过系统

以"把 SDXL 工作流换成 Flux.2 重新出图"为例,看各层如何配合:

  1. 用户在画布上把 Load Checkpoint 节点从 SDXL 检查点切换为 Flux.2 检查点
  2. 前端把改动提交给后端,后端重新校验下游连线的类型兼容性(Flux 系模型通常不需要负面条件)
  3. 拓扑排序后只重跑受影响子图——从新的 Load Checkpoint 开始,经文本编码、采样到 VAE 解码,其余节点不动
  4. 结果图片保存,同时把整张工作流图(模型路径、提示词、采样参数、随机种子)写进 PNG 元数据

这条路径串起了三套机制:连线校验保证图始终合法,部分图重执行避免全量重跑,PNG 元数据让结果可以完整复现。

模型支持:广度与分层

ComfyUI 原生支持的模型覆盖当前主流生成模型家族,按模态大致分为:

模态代表模型
图像生成Stable Diffusion 1.5 / SDXL / SD3.5、Flux.1 / Flux.2、Qwen Image、Z-Image、Hunyuan Image 2.1
图像编辑Flux Kontext、Qwen Image Edit、OmniGen2
视频生成Wan 2.1 / 2.2、LTX-Video 2 / 2.3 / 2.5、HunyuanVideo 1.5
音频生成ACE-Step 1.5、Stable Audio 3、MiniMax Music 3
3D 与视觉Hunyuan3D 2.1、TripoSplat、SAM 3 / 3.1、Depth Anything 3
文本生成Gemma 3 / 4、Qwen3 / Qwen3.5(含多模态输入)

除了开源模型,ComfyUI 还通过 API Nodes 接入按调用计费的闭源模型(如 Nano Banana、Seedance、Wan 3.0、Hunyuan3D)。这些节点需要联网且可能产生费用;想完全离线使用,启动时加 --disable-api-nodes 参数即可屏蔽所有付费 API 节点。

模型文件不限于完整检查点,也支持分散加载:Text Encoder、VAE、LoRA、ControlNet、Adapter、Upscaler 都能作为独立节点接入,按需组合。extra_model_paths.yaml 配置允许指定额外的模型目录,方便与 Automatic1111 WebUI 等其他工具共享模型文件。

本地执行与资源管理

执行层有几个关键设计:

  • 异步队列:生成任务排队执行,不阻塞 UI 线程,提交后可以继续编辑工作流
  • 部分图重执行:只重新执行受影响的子图,参数微调不必从头跑
  • 显存管理:自动检测可用 VRAM,在 GPU 和 CPU 之间做模型卸载(Offload),让显存有限的设备也能跑大模型
  • 量化支持:支持 FP8、GGUF 等量化格式,进一步降低显存占用

显存卸载把本地运行的门槛从"显存够大"压到"显存够用"。GPU 覆盖 NVIDIA、AMD、Intel、Apple Silicon(通过 MPS 后端)以及华为昇腾(Ascend)。最低 PyTorch 版本要求 2.7,官方建议用更新版本以启用完整优化;NVIDIA 20 系及以上还需要 cu130 以上的 PyTorch。

安装方式

三种安装路径:

桌面应用(推荐新手):从 comfy.org/download 下载,支持 Windows 和 macOS(Apple Silicon),安装过程最简单。

Windows 便携包:从 GitHub Releases 下载 .7z 压缩包,解压后直接运行,自带 Python 3.13 和 PyTorch。分 NVIDIA、AMD、Intel 三个版本。

手动安装(全平台)

git clone https://github.com/Comfy-Org/ComfyUI
cd ComfyUI
pip install -r requirements.txt
python main.py

也可以用官方 CLI:

pip install comfy-cli
comfy install

安装后默认监听 http://127.0.0.1:8188,浏览器打开即可看到节点图编辑器。

工作流的保存与复用

工作流以 JSON 格式保存,包含节点类型、参数和连线关系。一个实用能力:生成的 PNG 文件内嵌完整工作流元数据,把图片拖回编辑器就能恢复整个工作流(包括模型路径、提示词、采样参数和随机种子),复现和分享都很直接。

此外,Subgraph 功能允许把一组节点封装成单个自定义节点,在多个工作流中复用;App Mode 则把复杂工作流暴露为简化界面,非技术用户填几个输入框就能使用。

版本节奏

ComfyUI 迭代很快,大版本间隔常在两三天到一周,具体节奏随模型适配调整。截至本文写作时最新版本为 v0.34.1(2026 年 8 月 26 日发布)。

项目由三个相互关联的仓库构成:

  • ComfyUI Core:推理引擎和节点系统(即本文介绍的仓库)
  • Comfy Desktop:桌面应用封装
  • ComfyUI Frontend:Web 前端界面,定期合并进 Core 仓库

适用边界与采用顺序

ComfyUI 适合需要对生成过程精细控制的人:调参、切换模型、组合 ControlNet、设计复杂工作流。如果只是输入提示词快速出图,Automatic1111 WebUI 或模型官方 Demo 更直接;如果连本地环境都不想搭,直接用在线平台。

按场景决定先上哪套:

  • 本地创作者:从桌面应用或便携包开始,跑官方模板,再逐步引入自定义节点
  • 开发者:用手动安装,通过 API 把工作流嵌进自己的服务
  • 只做轻量尝试:先别装,用云端在线版验证工作流是否满足需求,再决定是否自建

自定义节点生态(Custom Nodes)是另一大优势,社区贡献了大量扩展节点,覆盖后处理、动画、批量处理等场景。但非稳定版本 Core 可能与部分自定义节点不兼容,生产工作流建议钉在稳定版上。

常见问题

想完全离线、不产生 API 费用? 启动参数加 --disable-api-nodes,付费 API 节点会被整体屏蔽。

显存不够跑大模型? 依次尝试:用 FP8 / GGUF 量化版本、启用动态显存卸载、降低输出分辨率、用分块(Tiled)VAE 解码。

想和 A1111 WebUI 共用模型文件?extra_model_paths.yaml 里把模型目录指到同一个路径,两边都能读到。

浏览器打不开页面? 默认端口是 8188,先确认端口没被占用,再检查服务是否真的启动成功(终端最后几行会打印监听地址)。

自定义节点装不上或报错? 多数情况是依赖冲突或版本不兼容,先看该节点的 README 要求的 Python / PyTorch 版本,再对照自己环境;确认在稳定版 ComfyUI 上运行。

结尾判断

回到开头那句判断:ComfyUI 把"推理管线"变成了"可编辑对象"。节点图让它可组合,JSON 序列化让它可复用,PNG 元数据让它可复现。要不要自建,取决于你是否需要这份控制力;需要,它就是当前最完整的开源选择之一。


项目地址:github.com/Comfy-Org/ComfyUI · 官网:comfy.org · 许可证:GPL-3.0

参与讨论

使用 GitHub 登录。欢迎补充事实、异议与实践。