如果你第一次打开 ComfyUI,大概率会一脸懵:满屏的方块被彩色连线串在一起,看起来不像绘图软件,更像一个给程序员准备的流程编排工具。很多人第一反应是关掉它,回到 WebUI 那种“填参数、点生成”的舒适区。但 2024 年下半年以后,一个绕不开的事实摆在了面前——FLUX、SD3.5、Wan 系列视频模型等大量新模型的官方示例或社区首发工作流,几乎都默认选用 ComfyUI 作为载体。社交媒体上分享的 AI 视频生成教程,也越来越多以“ComfyUI 界面长截图”的形式出现。
这篇文章想给出的核心判断是:ComfyUI 的真正价值,不在于“又多了一个 AI 画图工具”,而在于它把 AI 生成过程从“点一下按钮”变成了“可编排、可复用、可编程的流程”。如果你只是随手生成一张头像,WebUI 就够用;但如果你需要精确控制每一步参数、批量出图、把流程分享给团队,或者接入自己的应用,ComfyUI 几乎是绕不开的选择。
这篇教程不会把每个按钮都讲一遍,而是先帮你建立起节点式思维,再带你从零跑通一个真实的文生图工作流,包括环境安装、模型准备、工作流搭建、常见问题排查,以及把 ComfyUI 接入业务系统时的工程建议。文章尽量用“场景 + 结论 + 操作”的方式展开,读完你应该能判断自己到底适不适合用 ComfyUI,以及第一次上手时最该注意哪些坑。
1. 为什么 ComfyUI 越来越绕不开
先说结论:ComfyUI 正在成为 AI 图像与视频生成领域的“事实标准之一”,尤其是在复杂工作流和新模型适配方面。
它最初是 comfyanonymous 发布的开源项目,目前由 Comfy-Org 组织维护。它的定位非常明确:一个基于节点式工作流的 Stable Diffusion 前端工具。所谓“节点式”,可以理解为把生成过程拆成一个个独立模块,比如“加载模型”“写提示词”“采样去噪”“保存图片”,然后用连线把它们串起来。每一个节点负责一件事,节点之间的连线表示数据的流向。
这套设计和 WebUI 有本质区别。WebUI 把生成过程封装成一个“黑盒”,你只能调整固定的几个参数;ComfyUI 则把黑盒拆开,所有中间步骤都能看到、能修改、能替换。这也是为什么社区常说“WebUI 是相机,ComfyUI 是修图工作台”。
下面用一张表快速对比两者的差异:
| 对比维度 | WebUI | ComfyUI |
|---|---|---|
| 操作方式 | 表单填写 + 按钮生成 | 节点连线 + 可视化编排 |
| 流程可见性 | 低,中间过程被封装 | 高,每个中间结果都可查看 |
| 新模型适配速度 | 相对滞后 | 社区首发工作流通常最先在这里出现 |
| 批量与自动化 | 支持但较弱 | 天然适合,工作流可导成 API 格式 |
| 学习门槛 | 较低 | 较高,需要理解节点和数据流 |
| 显存占用 | 相对偏高 | 通常更省显存,支持局部重绘和优化 |
| 适用人群 | 新手、快速出图 | 开发者、深度用户、对过程控制有要求的人 |
从实际生态来看,ComfyUI 的优势还在被持续放大。FLUX 模型发布后,社区大量工作流第一时间出现在 ComfyUI;SD3.5 官方也提供 ComfyUI 版本的 workflow;视频生成方向,Wan、LTXV 等模型的工作流同样以 ComfyUI 为主要分享形式。可以这么说:如果你想紧跟新模型和社区新玩法,ComfyUI 已经不是一个“可选项”,而是一个“必选项”。
但这里必须说清楚适用边界。ComfyUI 适合谁?适合想理解生成过程的人、适合需要批量出图的团队、适合想把 AI 能力嵌入业务系统的开发者。不适合谁?如果你只是想快速生成一张图、不想折腾节点和参数,那 WebUI 或者在线工具体验会友好得多。不要因为别人都在用 ComfyUI 就强迫自己切换,工具是服务于场景的。
2. 核心概念与工作原理
在动手安装之前,建议先花几分钟理解 ComfyUI 的核心概念。这部分不是理论空谈,因为后面所有操作都会反复用到这些术语。
2.1 节点(Node)
节点是 ComfyUI 的基本单元。每个节点代表一个函数或一个处理步骤,比如:
Load Checkpoint:加载大模型(checkpoint 文件)。CLIP Text Encode:把提示词编码成模型能理解的向量。Empty Latent Image:创建一个空的潜空间图像,相当于设定画布尺寸。KSampler:执行采样去噪,是生成过程的核心。VAE Decode:把潜空间数据解码成像素图像。Save Image:把图像保存到本地。
可以这样理解:ComfyUI 就是一条流水线,每个节点是一个工位,连线是传送带。数据从模型文件开始,经过提示词编码、潜空间初始化、采样去噪、VAE 解码,最终输出成品图片。
2.2 连线(Data Flow)
连线表示数据流向。每条连线的起点是某个节点的输出端口,终点是另一个节点的输入端口。ComfyUI 中连接的端口类型必须匹配,比如模型输出只能连接到模型输入,不能把“图像”接到“模型”上。这也是新手最容易犯错的地方:连线错误时节点会变成红色,并提示类型不匹配。
2.3 模型三件套:Checkpoint、CLIP、VAE
很多人第一次接触 ComfyUI 时会对“模型”这个概念感到困惑。在 WebUI 里,你通常只需要把大模型放到一个目录;在 ComfyUI 里,一个完整的生成链路涉及三类模型文件:
| 模型类型 | 作用 | 常见格式 |
|---|---|---|
| Checkpoint | 主干模型,决定图像风格和内容倾向 | .safetensors、.ckpt |
| CLIP | 文本编码器,负责理解提示词 | 通常打包在 checkpoint 内 |
| VAE | 图像变分自编码器,负责潜空间与像素图互转 | .safetensors,常内嵌在 checkpoint 中 |
实际使用时,Load Checkpoint节点会自动加载一个 checkpoint 文件,并把内部的模型、CLIP、VAE 三个输出分别暴露出来,供下游节点使用。这也是 ComfyUI 工作流里最常见的“第一块拼图”。
2.4 采样器(KSampler)
KSampler 是决定生成质量的核心节点,参数很多,新手最容易在这里踩坑。简单解释几个关键参数:
seed:随机种子。相同种子 + 相同参数 + 相同模型 = 相同结果。steps:采样步数。步数太少细节不足,太多不一定更好,通常 20 到 30 步已足够。cfg:提示词引导强度。数值越大越贴近提示词,但过大会导致色彩过饱和或图像失真。denoise:重绘幅度。图生图时常用,1 表示完全重新生成,0 到 0.5 表示保留原图结构做局部修改。
理解这些参数后,你会发现 ComfyUI 的“可控性”比 WebUI 强得多,因为每一步都能独立调整,而不是只靠一个“生成按钮”。
3. 环境准备与前置条件
开始安装前,先确认你的电脑满足基本条件。ComfyUI 本质是一个 Python 应用,依赖 PyTorch 和各类生成模型,对硬件有一定要求。
3.1 硬件要求
核心瓶颈是显存,和你要跑的模型直接相关:
- 跑 SD 1.5 系列模型:建议 6GB 以上显存,4GB 也能用但要开启优化。
- 跑 SDXL 系列模型:建议 8GB 以上显存,低显存需要配合模型优化。
- 跑 FLUX、SD3.5 等大模型:建议 16GB 以上显存,或者使用量化版本。
- 跑视频生成模型:显存需求更高,通常建议 12GB 起步。
如果没有 NVIDIA 显卡,AMD 显卡或 Apple Silicon 也能跑,但需要额外配置相关后端,这里不再展开。操作系统方面,Windows 10/11 的教程最多,macOS 和 Linux 也可以部署,流程类似。
3.2 软件要求
推荐在 Windows 上采用如下前置环境:
- Python 3.10 或 3.11(不推荐更高的版本,部分依赖可能不兼容)。
- Git(用于拉取 ComfyUI 源码和后续更新)。
- 一个能正常访问模型下载站的网络环境。
如果你的网络下载 PyTorch 或模型文件很慢,可以提前配置国内镜像源,比如 pip 使用清华源或阿里源。具体版本号以实际安装时间为准,不要硬套某个固定版本。
3.3 模型准备
模型文件是生成图像的关键。ComfyUI 默认会在models目录下按类型查找模型:
models/checkpoints:放主模型。models/vae:放 VAE 文件。models/loras:放 LoRA 模型。models/embeddings:放文本反转 embedding。
建议先去下载一个 SD 1.5 或 SDXL 的 checkpoint 文件,放到models/checkpoints目录。具体下载渠道可以在模型社区搜索对应名称,这里不做具体链接推荐。模型文件通常很大,少则 2GB,多则 7GB,下载前先确认磁盘空间充足。
4. 本地部署与启动
ComfyUI 的部署方式大致有两种:手动 Git 部署和整合包部署。手动部署更利于理解原理、方便后续更新;整合包则省去环境配置,适合新手快速体验。
4.1 方式一:Git 手动部署
打开命令行,进入你希望安装的目录,执行:
git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI然后创建并激活 Python 虚拟环境。Windows 下命令如下:
python -m venv venv venv\Scripts\activate激活后安装依赖。如果电脑有 NVIDIA 显卡,推荐先安装 GPU 版 PyTorch,再安装 ComfyUI 其他依赖:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124 pip install -r requirements.txt如果安装过程中网络不稳定,可以使用国内镜像源:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple最后启动:
python main.py启动成功后,控制台会显示类似Starting server的信息,并给出访问地址。默认端口是 8188,浏览器打开:
http://127.0.0.1:8188看到节点式画布界面,就说明安装成功了。
4.2 方式二:整合包部署
如果你不想折腾 Python 环境和依赖,可以选择社区整合包。国内用户比较熟悉的是“秋叶一键整合包”这类方案,它把 Python 环境、ComfyUI 主程序、常用插件和部分模型打包在一起,解压即可用。
这里要特别提醒两点:
第一,整合包本质是“别人帮你配好的环境”,适合快速体验,但升级模型和插件时容易出现版本混乱,建议还是要有手动部署的知识储备。
第二,第三方整合包来源必须可靠。安装前建议做病毒查杀,不要运行来路不明的脚本。项目开源,官方推荐方式永远是 Git 克隆 + 手动安装,整合包只是入门捷径。
4.3 启动参数与远程访问
ComfyUI 支持多个命令行启动参数,比较常用的有:
--listen 0.0.0.0:允许局域网内其他机器访问。--port 8188:自定义端口。--cuda-device 0:指定使用哪张 GPU,多卡机器可以分别启动多个实例。
例如,允许局域网访问并指定端口:
python main.py --listen 0.0.0.0 --port 8188注意:开放局域网访问前,先确认你的网络环境安全。生产环境建议不要直接暴露公网,而是放到内网或加反向代理认证。这个原则后面还会再强调。
5. 第一个文生图工作流:从零搭建
安装完成后,先从一个最简单的文生图流程开始。默认打开 ComfyUI 时,首页可能已经有一个默认模板;为了理解原理,建议新建一个空白工作流,从零添加节点。
5.1 清空画布并添加节点
在画布空白处右键,会弹出节点搜索菜单。需要依次添加以下节点:
Load CheckpointCLIP Text Encode(正向提示词)CLIP Text Encode(反向提示词)Empty Latent ImageKSamplerVAE DecodeSave Image
节点添加后,按照下面的顺序连线:
- checkpoint 的
MODEL输出 → KSampler 的model输入 - checkpoint 的
CLIP输出 → 两个CLIP Text Encode的clip输入 - 正向提示词节点的
CONDITIONING输出 → KSampler 的positive输入 - 反向提示词节点的
CONDITIONING输出 → KSampler 的negative输入 Empty Latent Image的LATENT输出 → KSampler 的latent_image输入- KSampler 的
LATENT输出 →VAE Decode的samples输入 - checkpoint 的
VAE输出 →VAE Decode的vae输入 VAE Decode的IMAGE输出 →Save Image的images输入
连接完成后,在正向提示词节点里输入:
a beautiful landscape, mountains and lake, sunset, highly detailed反向提示词输入:
low quality, blurry, watermark, text5.2 配置采样器参数
在Load Checkpoint节点里选择你放入的模型文件。然后在Empty Latent Image节点中设置图片宽高,例如 512x512(SD 1.5 默认分辨率)或 1024x1024(SDXL)。KSampler 节点按以下参数配置:
seed:随意填一个数字,比如 12345。steps:20cfg:7sampler_name:eulerscheduler:normaldenoise:1
5.3 运行工作流
点击界面右侧的Queue Prompt按钮,生成任务会进入队列。画布上每个节点下方会显示进度,KSampler 节点会实时展示去噪过程中的预览图。生成结束后,Save Image节点下方会显示最终图像,同时图片会自动保存到ComfyUI/output目录。
验证成功与否,主要看三点:
- 所有节点没有红色报错。
- KSampler 有进度条并正常走完。
- output 目录中出现了新生成的 PNG 图片。
如果节点显示红色,通常是把鼠标悬停在红色节点上,会看到具体的报错信息。这一步先记录下来,下一章会集中排查。
5.4 工作流文件结构示意
如果在界面上保存工作流,或导出为 API 格式,你会得到一个 JSON 文件。它记录了所有节点的类型、参数和连线关系。简单结构如下,节点 ID 和 UUID 以本地实际导出为准:
{ "1": { "class_type": "CheckpointLoaderSimple", "inputs": { "ckpt_name": "v1-5-pruned-emaonly.safetensors" } }, "2": { "class_type": "CLIPTextEncode", "inputs": { "text": "a beautiful landscape", "clip": ["1", 1] } } }这里["1", 1]表示“取节点 1 的第 1 个输出端口”。理解这个结构后,你就能读懂别人分享的工作流文件,也能用代码动态生成工作流。
6. 工作流的复用、分享与 API 接入
ComfyUI 最有魅力的地方,不是单个节点,而是“工作流”这套可复用机制。很多用户下载一个工作流文件,就能一键复现别人的出图效果。
6.1 拖入图片即可加载工作流
这是一个实用技巧:ComfyUI 生成的 PNG 图片里默认嵌入了完整的工作流信息。把别人分享的 PNG 图片直接拖进 ComfyUI 画布,它会自动还原出原图的工作流节点和参数。这个功能极大降低了复现门槛,也是社区分享工作流的主要方式。
需要提醒的是,别人分享的工作流依赖的模型、LoRA、自定义节点可能和你本地环境不一致。加载后如果出现红色节点,大概率是缺少对应的自定义节点或模型文件,需要先补全。
6.2 工作流格式:默认格式与 API 格式
ComfyUI 菜单里可以导出工作流,常见的是完整 UI 格式(包含画布布局信息,适合人读)和 API 格式(精简为纯数据流,适合程序调用)。两者内容都包含节点和连线,区别只在于是否包含界面展示信息。
如果你想用代码批量提交任务,推荐导出 API 格式,然后通过 REST API 提交。ComfyUI 默认启动时就会开启 API 服务。
6.3 通过 Python 调用 ComfyUI 生成图像
ComfyUI 的 API 端点非常简洁,核心接口是POST /prompt,把工作流 JSON 作为prompt字段传进去即可。下面是一个最小示例:
import json import requests # 假设你已经导出了一个 API 格式的工作流 JSON with open("workflow_api.json", "r", encoding="utf-8") as f: workflow = json.load(f) # 可选:修改其中的提示词或种子 # workflow["2"]["inputs"]["text"] = "a cat wearing a hat" response = requests.post( "http://127.0.0.1:8188/prompt", json={"prompt": workflow} ) if response.status_code == 200: print("任务已提交:", response.json()) else: print("提交失败:", response.text)提交成功后,ComfyUI 会返回任务的prompt_id。你可以再写一个轮询脚本,去GET /history/{prompt_id}查询生成结果。这个模式可以很方便地接入业务流程。
6.4 模型下载与放置规范
从社区下载的模型,建议按类型放到对应目录,并保持命名规范。文件名最好能体现模型名称和版本,例如sd_xl_base_1.0.safetensors。不要随意堆在一个目录,否则工作流里选择模型时会让你找半天。
对于 LoRA、VAE、embedding 这类附加模型,同样要放到对应目录。如果某个工作流加载模型时报错,先检查是不是文件路径或目录放错了。
7. 常见问题与排查思路
ComfyUI 的报错机制相对直接,节点显示红色通常有提示信息。下面整理几个新手最常遇到的问题:
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
| 启动失败,端口被占用 | 8188 端口已被其他程序占用 | 看启动日志中的 bind 报错 | 改用--port指定其他端口 |
| 节点红色,提示模型找不到 | 模型文件未放入正确目录 | 查看报错中的模型文件名 | 下载对应模型并放入models/checkpoints |
| 加载别人工作流后大量红色节点 | 缺少自定义节点 | 看红色节点提示的类名 | 安装对应自定义节点,或通过 ComfyUI-Manager 补全 |
| 生成图片全黑或灰蒙蒙 | VAE 未正确连接或模型问题 | 检查 VAE Decode 节点连线 | 手动加载一个配套 VAE 文件接到解码节点 |
| 显存不足,生成中途报错 OOM | 图像分辨率设置过高 | 查看日志中的 CUDA out of memory | 降低分辨率、减少 batch size,或开启显存优化 |
| 输出图像和预期差别很大 | seed、CFG、采样器参数不匹配 | 检查 KSampler 参数 | 固定 seed 并保持相同参数再复现 |
| 界面是英文,想汉化 | 缺少汉化插件 | 在 ComfyUI-Manager 中搜索中文翻译扩展 | 安装社区汉化插件,如 AIGODLIKE 系列汉化扩展 |
其中“显存不足”是最容易确认的问题。如果日志中出现了CUDA out of memory,优先把Empty Latent Image的宽度、高度调小,比如从 1024 降到 512,然后再试。
版本兼容问题也值得单独说明。ComfyUI 更新频率很激进,v0.33.1 也经历过前端和节点 API 的调整。升级主程序后,老的自定义节点可能失效。稳妥的做法是:升级前备份工作流和 Python 环境,或者先复制一份 ComfyUI 目录做测试,确认旧插件仍然兼容后再切换。
8. 最佳实践与工程化建议
把 ComfyUI 用起来只是第一步。如果要在团队或业务中稳定使用,下面这些工程化经验建议收藏。
8.1 工作流版本管理
ComfyUI 的工作流本质是 JSON 文件,完全可以用 Git 管理。建议一个项目对应一个目录,里面至少包含:
workflow_ui.json:UI 格式工作流,方便人工打开查看。workflow_api.json:API 格式工作流,方便程序调用。requirements.txt:自定义节点的依赖清单。README.md:说明依赖模型、预期效果。
这样团队协作时,每个人 checkout 代码后都能快速复现环境。
8.2 插件按需安装
ComfyUI 生态中“必装插件”的说法经常变,但核心建议是:不要看到什么插件都装。插件越多,升级冲突的概率越高,启动也会变慢。
两个插件建议优先考虑:
- ComfyUI-Manager:这是社区最常用的插件管理器,可以搜索、安装、更新自定义节点,也能一键安装缺失节点。有了它,加载别人工作流时补依赖会方便很多。
- 汉化扩展:如果你不习惯英文界面,可以在 Manager 中搜索中文翻译相关的插件。汉化只改界面文字,不影响工作流和模型逻辑。
8.3 API 接入时的并发与重试
用 API 接入业务系统时,要注意性能和稳定性。几个要点:
- ComfyUI 默认是单任务排队执行。并发提交多个任务时需要自己设计队列,或启动多个实例分摊压力。
- 生成任务可能耗时几十秒甚至几分钟,客户端请求要设置合理超时,避免因等待而断开。
- 任务失败要记录日志并支持重跑,尤其是模型加载失败或显存不足这类瞬时错误。
- 不要把前端 API 直接暴露在公网,建议加中间层做鉴权、限流和监控。
8.4 双卡与多实例部署
如果机器有多张显卡,可以在不同端口分别启动多个 ComfyUI 实例,用--cuda-device指定各自使用的 GPU。例如:
python main.py --port 8188 --cuda-device 0 python main.py --port 8189 --cuda-device 1然后在上层用负载均衡或队列服务把任务分发到不同实例。这个方案比单实例内部强行并行更稳定,但也更占显存,需要根据实际资源规划。
8.5 ComfyUI 与 LLM 是否必须同一台机器
一个常见的误解是:ComfyUI 和 LLM 应用必须部署在同一台电脑上。其实不需要。ComfyUI 启动后就是一个独立的 HTTP 服务,LLM 应用可以通过网络请求调用它的 API。只要两台机器之间网络互通,就可以分开部署:GPU 机器跑 ComfyUI,CPU 机器跑 LLM 应用。
建议的架构是:LLM 负责理解用户意图、生成提示词,然后通过 HTTP 调用 ComfyUI 完成任务生成。ComfyUI 本身不参与语义理解,它只负责执行图形生成流程。
8.6 视频生成工作流的前景与注意点
当前社区最热的方向之一是视频生成工作流,比如基于 Wan、LTXV 等模型的工作流。这里的“无限时长视频”需要正确理解:大多数工作流不会在单次推理里直接产出无限时长的视频,而是通过分段生成、关键帧衔接、再拼接的方式实现延长。真正要关注的是工作流对显存的消耗、生成速度以及拼接质量,不要被营销性的表述带偏。
如果想尝试视频工作流,建议先跑通官方或社区的标准示例,再逐步调整参数。视频生成比文生图更吃显存,第一次运行前最好先看模型卡说明给出的推荐配置。
9. 总结与下一步行动
回到开头那个判断:ComfyUI 不是又一个 AI 绘图软件,而是一个 AI 生成流程引擎。它用节点图把“加载模型、编写提示词、采样去噪、解码保存”这一整条链路透明化,让你能精确控制每一环,也让你能把自己的参数组合变成可分享的资产。
如果你决定继续深入学习,下面这条路径值得参考:
第一步,把默认模板或本文的简单文生图工作流跑通,理解每个节点的作用和连线关系。第二步,找一份别人分享的成熟工作流,尝试加载并换用不同的模型、LoRA 和提示词,观察输出变化。第三步,学习自定义节点开发,尝试把更多零散操作封装成一个节点。第四步,把工作流导出成 API 格式,接入自己的项目,实现自动化或批量化生成。
真正容易踩坑的地方往往不是安装,而是“把 WebUI 的使用习惯带进来”。ComfyUI 的学习曲线本质是流程思维:先理解你要的最终输出是什么,再倒推需要哪些节点、如何连接、如何调参。在一张张工作流搭建完成后,你会慢慢发现,AI 生成这件事已经从“抽卡”变成了“工程设计”。
建议把这篇文章收藏备用,尤其是环境搭建、常见问题排查和最佳实践几个部分,实际操作时大概率会回来翻。如果你在跑通第一个工作流时遇到问题,先按“节点是否红色、日志有没有报错、模型目录对不对”三步排查,大部分问题都能自己解决。