从零开始搭建ComfyUI工作流:AI绘画节点式入门指南
2026/9/7 10:42:01 网站建设 项目流程

ComfyUI 是目前 AI 绘画工具里非常特别的一类:它不是给你一个天然完整的画图页面,而是把整个绘图链路拆成节点和工作流,让你能看到每一步输入输出是什么。对于想真正理解 AI 绘画的人,这套思路比只会点按钮有价值得多。

这篇文章的定位是新手入门,会从零开始讲清楚 ComfyUI 工作流搭建是怎么回事。适合刚接触 AI 绘画、被网上各种整合包资源搞懵的人,也适合已经在 WebUI 里画过图、想换到更可控工作流的人。我不准备写成操作视频的逐字稿,而是按我实际部署和使用的顺序,把安装、概念、参数、核心操作、报错排查和进阶路线一次说清。每条经验都是我先踩过坑之后的判断,不一定适合所有电脑,但流程基本通用。

1. 节点式工作流:先搞懂这个,再决定要不要学

1.1 ComfyUI 和传统 WebUI 的区别

很多人接触 AI 绘画,第一站是 WebUI,页面上有提示词框、采样步数、CFG、尺寸,填完点生成就能出图。这种方式的问题是,很多过程被隐藏在界面背后:模型怎么加载、采样器怎么去噪、VAE 怎么解码,用户看不到,也很难改。

ComfyUI 不一样。它把绘图流程拆成一个个节点,比如“加载模型”是一个节点,“写提示词”是一个节点,“采样”是一个节点,“解码图像”是一个节点。节点之间用连线连接,数据从左往右流动。每一步都能看见数据格式,也能随时替换某个环节。

这个差异是核心。如果你只是偶尔出几张图,WebUI 确实更省事;但如果你想做复杂工作流、复用自己搭好的流程、或者排查某个环节为什么画崩,ComfyUI 的节点式设计会清楚得多。

1.2 节点、连线、数据流:先建立心智模型

我第一次打开 ComfyUI 时,看到一堆方块和线条,第一反应是“这也太硬核了”。但实际上底层逻辑很简单。

你可以把每个节点理解为一个加工站,连线就是传送带。比如:

  • Load Checkpoint 节点:把基础模型加载进内存。
  • CLIP Text Encode 节点:把“一只猫在窗台上”转换成模型能理解的条件向量。
  • Empty Latent Image 节点:生成一张空白的潜空间画布,就是初始噪声。
  • KSampler 采样器节点:在潜空间里一步步去噪,把随机噪声逐步变成有结构的图像。
  • VAEDecode 节点:把潜空间数据解码成普通像素图像。
  • Save Image 节点:保存图片。

数据从模型、文本、画布三个入口进入采样器,采样器输出潜空间图像,再交给解码器转成 PNG。理解这条链路,很多节点就不会觉得是乱连了。

1.3 适不适合新手,我的判断标准

我的结论是:新手完全可以直接从 ComfyUI 开始学,但要有心理准备。

准备一:你会在配置环境上花一点时间,尤其是第一次安装和下载模型。准备二:界面是英文为主,虽然有汉化版,但你最好熟悉几个英文术语,比如 checkpoint、vae、clip、seed、batch size。准备三:报错会比 WebUI 更直接,但也更容易定位。

如果你满足以下任何一个条件,我很推荐直接学:想可视化理解 AI 绘图的每一步;需要复现别人分享的工作流;希望把自己常用的画图方案整理成固定流程;以后想做批处理或接入自动化脚本。

反过来,如果你只是想快速出一张朋友圈头像,对过程完全没兴趣,那可以先不折腾。

2. 安装部署篇:整合包、手动部署和显卡条件

2.1 先看硬件和系统,避免装完跑不动

ComfyUI 主要是本地运行,对显存最敏感。我的经验是:

  • NVIDIA 显卡,显存 8GB 以上,体验比较舒服,跑主流模型基本没压力。
  • 显存 6GB,也能跑,但分辨率不要一上来就开 1024x1024,建议先用 512x768 或 832x480。
  • 显存 4GB,属于入门级,能玩,但要降低分辨率、减少 batch size,偶尔要等很久。
  • 没有独立显卡,或只有集成显卡,不建议直接装,会非常吃力。

内存建议 16GB 起步,32GB 更稳。磁盘剩余空间至少预留 30GB 到 50GB,因为一个基础模型文件大则有 6.7GB,多个模型加上 LoRA、ControlNet,很快会占满。

操作系统方面,Windows 最容易上手,很多社区整合包都是面向 Windows 做的。Linux 也可以手动部署,适合有命令行经验的人。macOS 能跑,但要看芯片和显存统一内存的大小,M 系列芯片可以试,但兼容性和模型支持经常慢一步。

2.2 新手首选社区整合包,省去环境配置

很多刚入门的人卡在第一步:装 Python、装 PyTorch、装依赖,步骤太多,一个版本不匹配就报错。所以我更推荐新手先使用社区整理好的整合包,比如大家常说的秋叶整合包、Aki 轻量版这类。

整合包的本质,是把程序本体、Python 环境、常用依赖、部分插件甚至一些模型文件打包在一起,解压之后点启动脚本就能用。它适合两类人:一类是完全没碰过命令行的人,另一类是只想先把基础工作流跑通、不打算研究环境细节的人。

使用整合包时要注意几点:

  • 解压路径尽量不要带中文和空格,某些插件对路径有要求。
  • 启动时留意窗口输出,能判断是正常启动还是在下载缺失文件。
  • 整合包不是官方版本,内置组件会随时间更新,如果遇到报错,先看日志再考虑升级到新版本整合包。
  • 下载前确认来源可靠,不要乱点第三方网盘里带异常后缀的文件。

2.3 手动部署的大致流程和依赖说明

如果你更希望自己掌控环境,或者用的是 Linux,可以走手动部署。流程如下:先保证机器已经安装 Python 3.10 或 3.11,建议 3.10,兼容更稳。然后从 ComfyUI 的 GitHub 仓库把代码拉下来,安装依赖,再启动。

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

启动后浏览器访问http://127.0.0.1:8188就能看到界面。手动部署的优点是灵活,方便后续加插件、改代码,也方便 Linux 无桌面环境下的远程调用。缺点是所有问题都要自己排查,版本冲突、网络下载慢、CUDA 版本不匹配都是常见坑。

2.4 启动后先做一次最小验证

不管是整合包还是手动部署,启动后不要急着加载大模型。先看默认工作流能不能跑通。ComfyUI 第一次打开通常自带一个示例工作流,里面已经有加载模型、提示词、采样器、保存图片这一套基础节点。

你只需要检查左下角有没有红色错误节点,然后把默认示例直接执行一次。如果几分钟内正常输出一张图,说明环境安装成功、模型路径正确、解码保存也都正常。如果这里就报错,先别折腾复杂插件,问题多半出在基础环境。

注意:第一次跑通的时间可能比较长,尤其是还需要额外下载模型时。不要一上来就开高分辨率,先用默认参数确认基础链路没问题。

3. 界面核心概念和参数,先搞懂这五个词

3.1 Checkpoint、VAE、CLIP 各管什么

很多新手在 ComfyUI 里看到一堆英文节点名就头晕,其实真正要搞懂的核心概念没多少个。

Checkpoint 就是基础模型,常说的“大模型”,里面通常包含了生成图像的大部分能力。它决定了你出图的整体风格和内容倾向。比如写实、二次元、油画风,不同 checkpoint 差异很大。

VAE 是变分自编码器,可以简单理解成负责把潜空间数据还原成清晰图像的部分。有些 checkpoint 把 VAE 内置在里面,有些需要单独下。VAE 没处理好,图会发灰、发糊,或者出现奇怪的颜色噪点。

CLIP 是文本编码器,负责把提示词转换成模型能理解的条件。ComfyUI 里的 CLIP Text Encode 节点就干这件事。CLIP 本身不直接画图,但提示词能不能被模型理解,它很关键。

3.2 CFG、步数、采样器、种子怎么理解

CFG 全称是 Classifier-Free Guidance,也就是提示词引导强度,很多人问“K 采样器里的 CFG 是什么意思”,就是这个参数。数值越大,图像越贴近提示词,但太大容易过曝、颜色浓、画面发脏;太小则可能偏离提示词。我的经验是先固定在 7 左右,再去调其他参数。

步数(steps)是采样器去噪的迭代次数。不是越大越好。常见的 DPM++ 2M 采样器,20 到 30 步已经足够,超过 40 步收益很小,还明显变慢。

采样器是去噪算法,不同采样器影响图像风格和收敛速度。新手不用记太多,先固定用 Euler 或 DPM++ 2M Karras,等熟悉后再对比。

种子(seed)控制随机初始噪声。同一个种子、同样的模型和参数,理论上会得到相同结果。想复现某张图,需要保存种子;想继续抽卡,就把种子设成随机或换一个数字。

3.3 文本提示词怎么写,正面和负面分开

ComfyUI 的工作流里通常有两个文本节点:正面提示词和负面提示词。

正面提示词写你想要的画面内容,比如“一个女孩子,在雨夜里,霓虹灯,高清细节”。负面提示词写你不想要的东西,比如“低质量,模糊,多余的腿,变形的手”。这些看似是习惯问题,实际很影响结果,因为模型会把负面提示词也作为条件去约束生成过程。

有一点要提醒:提示词不是越长越好。堆砌大量无意义关键词,反而会让画面重点分散。先描述主体,再描述环境、光线、视角,最后加画质词。如果你用了某种风格模型,最好先看模型作者推荐的提示词写法。

3.4 Batch size 和分辨率为什么不能乱拉

Batch size 是同时生成几张图。比如 batch size 为 2,就是一次生成两张不同结果的图。它看似方便,但显存占用接近翻倍。低显存机器拉高 batch size,非常容易爆显存。

分辨率对显存的影响更直接。潜空间图像大小直接决定采样器的计算量。同样是生成一张图,1024x1024 比 512x512 的耗时和显存占用高很多。我的建议是:先确认你的显卡能承受多大分辨率,再调 batch size。判断标准就是连续跑 10 次,不出现 CUDA out of memory,不出现程序崩掉。

4. 从零搭一个最基础的文生图工作流

4.1 搭建前的节点规划

很多人进了 ComfyUI 直接开连,连了一半发现漏了节点,又得重来。我建议先想清楚目标:你要做一个“文生图”工作流,输入是提示词和参数,输出是保存下来的图片。

那最小的链路就是:

  1. 加载 checkpoint。
  2. 使用 checkpoint 里的 CLIP 去编码提示词。
  3. 创建一个空白的潜空间图像。
  4. 用采样器结合模型、条件、潜空间图像去采样。
  5. 解码采样结果。
  6. 保存图片。

这个规划听起来很简单,但能帮你在画布上定位每个节点。ComfyUI 里可以通过右键菜单添加节点,也可以在空白处双击搜索节点名。

4.2 最小工作流需要哪些节点

按上面规划,你需要这些节点:

  • Load Checkpoint
  • CLIP Text Encode(正面提示词)
  • CLIP Text Encode(负面提示词)
  • Empty Latent Image
  • KSampler
  • VAEDecode
  • Save Image

Load Checkpoint 节点会有三个输出,分别是 MODEL、CLIP、VAE。MODEL 连到 KSampler 的 model 输入;CLIP 连到两个文本编码节点;VAE 连到 VAEDecode。

CLIP Text Encode 的输出是 CONDITIONING。正面和负面条件分别连到 KSampler 的 positive 和 negative。Empty Latent Image 的 latent 输出连到 KSampler 的 latent_images 输入。KSampler 的 output 连到 VAEDecode 的 samples。VAEDecode 的 image 输出连到 Save Image 的 images。

第一次连线容易把 CLIP Text Encode 和 CLIP 输入搞混。注意:文本编码节点有一个输入框和一个输入端口,输入端口接的是来自 Load Checkpoint 的 CLIP,前端文本框里写的才是你的提示词。

4.3 参数设置和第一次出图的判断标准

搭建完成后,设置采样器参数。比如:

参数参考值说明
Steps20 - 30步数太高收益低
CFG6 - 8新手固定在 7
SamplerDPM++ 2M Karras速度和质量均衡
Seed-1 或固定数字-1 表示随机
Batch size1先跑通再加大
分辨率512x768 或 832x480先不要直接 1024

第一次执行后,重点看三样东西:图片能不能正常保存、内容是否和提示词相关、有没有明显崩坏。如果图片出来了但很糊,先看是不是分辨率太低或步数太少。如果图片完全跟提示词无关,检查文本编码节点是否接错。

对新手来说,第一次出图不用追求“完美”,只要流程能走通,就是阶段胜利。

4.4 工作流如何保存、分享和二次修改

ComfyUI 的工作流可以保存成 JSON 文件。你编排好节点后,可以直接导出,也可以把生成结果保存为 PNG,图片里会内嵌工作流信息。下次把这张图片直接拖进 ComfyUI 窗口,工作流会自动恢复。

这个功能很有用。看到别人分享的图,如果对方保留了工作流元数据,你可以直接拖进来分析节点结构。但要注意:分享工作流时,模型、LoRA、ControlNet 这些外部文件不会打包进去。别人打开你的工作流时,如果本地没有对应模型,会显示加载失败。因此分享给他人前,最好附带模型来源说明。

5. 模型、LoRA、ControlNet 和常见扩展方向

5.1 模型下载后放哪里,目录和格式怎么安排

ComfyUI 的模型目录是固定结构。默认情况下:

  • checkpoint 放在models/checkpoints
  • VAE 放在models/vae
  • LoRA 放在models/loras
  • ControlNet 放在models/controlnet
  • VAE 和 embedding 也分别在各自目录

下载模型后,如果在界面里看不到,先看文件名格式、文件扩展名是否完整,再看是否需要点击界面上的“刷新”按钮。很多时候不是文件没放进去,而是没刷新模型列表。

模型文件比较大,下载时要注意完整性。如果遇到文件损坏导致无法加载,可以对比文件大小是否与发布方一致,或者重新下载。

5.2 LoRA 不是越堆越好,权重和冲突怎么处理

LoRA 是一种轻量级模型微调方式,体积通常几百 MB,可以在不影响基础模型的情况下改变角色、画风或物体。用 LoRA 时,需要在对应目录放文件,并在工作流中添加 LoraLoader 节点。

关键点是 LoRA 权重。一般权重在 0.5 到 1.0 之间。多个 LoRA 同时加载时,每个权重都要单独调。我的经验是,新手一次只挂 1 到 2 个 LoRA,不要一开始就把三四个 LoRA 叠加在一起,很容易互相冲突,画面会变得不伦不类。

如果你想测试某个 LoRA 的效果,建议固定 checkpoint、提示词、种子,然后只改变 LoRA 权重,这样才能判断到底是 LoRA 本身的问题,还是权重设置问题。

5.3 ControlNet 适合哪些场景,新手怎么上

ControlNet 用来控制构图、姿势、边缘、深度等。比如你想让角色摆出一个特定姿势,可以通过 OpenPose 姿态图作为参考;你想让画面结构接近某张图,可以通过 Canny 边缘提取或 Depth 深度图。

ControlNet 的优势是给生成过程加了“约束”,出图可控性高很多。但新手不要急着装一堆 ControlNet 模型。先装一个预处理器和对应模型,用官方示例跑通,理解“参考图 -> 预处理 -> ControlNet -> 采样器”的链路,再逐步尝试不同控制类型。

遇到效果不好,先检查参考图是否清晰、预处理模型是否正确、ControlNet 权值是否过高。权值不是越大越明显,太大会导致画面死板、结构僵硬。

5.4 视频生成和风格化工作流要不要急着学

现在的 ComfyUI 生态已经不只是静态图,视频生成、音频驱动、角色一致性、游戏风格化等方向也很热门。像视频生成这类新能力,会让一个普通画图工具变成更完整的媒体处理管线。

但我的建议很明确:如果你刚入门,先把文生图这个主链路玩熟,再考虑视频生成。视频生成对显存、内存、模型体积要求更高,而且工作流复杂度成倍上升。很多看似炫酷的视频工作流,核心仍然是加载模型、采样、解码这条主链,只是中间多了帧序列和时序处理。

低配机器不要硬上视频。先确认单帧生图都不爆显存,再考虑降低帧率和分辨率去试视频。

6. 节点报错和运行失败排查

6.1 报错先看哪四样:日志、输入、路径、资源

ComfyUI 报错时,第一个反应不应该是“这工具不行”,而是按顺序排查:日志、输入、路径、资源。

日志是第一个要看的。ComfyUI 界面里点开执行区域,会看到具体错误信息。很多新手不看日志,直接把整屏截图发到群里问,其实日志已经把问题原因写得比较清楚了。

输入检查包括节点之间连线是否接对、文本编码节点是否为空、参考图是否损坏、文件格式是否符合预期。尤其是上传的图片,某些格式或超大尺寸可能导致预处理失败。

路径检查包括模型是否在正确目录、文件名是否含中文或特殊字符、磁盘空间是否足够。路径问题非常隐蔽,经常发生在手动下载模型之后。

资源检查包括显存、内存、CPU 占用。如果生成任务长时间不结束,不要急着调参数,先打开任务管理器看看有没有程序占满内存。

6.2 点“执行”后一直没反应,是什么情况

有几种常见情况:

第一种,任务队列里堆了好几个任务,看起来像没反应。这时候应该看队列列表,把多余任务清掉。

第二种,前置节点报错了,整个流程被卡住。ComfyUI 中报错节点会变成红色,鼠标悬停可以看到错误信息。

第三种,模型正在加载中。首次加载大型 checkpoint 需要几十秒甚至更久,看起来像卡住,其实只是还没加载完。判断方法是看命令窗口有没有输出,或看显存占用是否在涨。

第四种,输出目录没有写入权限。出现“can't save image”这类报错,先检查输出路径。

6.3 常见报错信息拆解

我整理几个高频报错,具体报错文本可能因版本不同有差异,但排查方向基本一致。

报错类型常见原因优先排查方向
CUDA out of memory显存不够降低分辨率、减小 batch size
Failed to execute a node,TypeError节点接线类型不匹配或输入为空检查节点连线和输入文件
Load checkpoint failed模型文件损坏或路径不正确重新下载或移动文件位置
Connection error / failed to connect端口被占用或网络问题换端口,检查防火墙
AttributeError插件版本和程序版本不兼容更新或禁用插件

遇到failed to execute这类报错,不要只看最后一行,要把完整错误日志展开,看具体是哪个节点、哪个参数出了问题。错误提示里通常带有节点名和函数名。

6.4 显存不足、虚拟内存和磁盘空间怎么处理

显存不足是最常见的硬件瓶颈。如果爆显存,优先降低分辨率,比如从 1024 降到 768 或 512;其次把 batch size 降到 1;再不行可以换更轻量的模型,有些模型设计时就是为了节省显存。

虚拟内存不是“伪装成显存”的解决方案,但可以避免某些内存映射类错误。如果你频繁遇到程序闪退、内存分配失败,Windows 下可以适当增加虚拟内存上限,比如设置成物理内存的 1.5 到 2 倍。不过这只是兜底,不能替代真正的显存。

磁盘空间也要留意。生成大量图片、下载大模型、运行视频工作流时,缓存文件会快速膨胀。建议定期清理工作流产生的临时文件,并保持磁盘剩余空间充足。模型下载到一半时,如果磁盘被占满,同样会导致文件损坏。

注意:最有效的排错顺序永远是先解决明显的报错,再看资源占用。不要一上来就重置所有参数,那样只会更难定位问题。

7. 进阶路线与工作流复用经验

7.1 工作流文件本质是 JSON,版本管理很重要

ComfyUI 的工作流文件本质是 JSON,里面记录着节点类型、坐标、参数和连线关系。这意味着你可以把工作流放到 Git 仓库里做版本管理,也可以复制成多个版本慢慢改。

我的习惯是:每跑通一个基础方向,就保存一份命名清晰的工作流文件,比如“文生图_基础.json”“图生图_局部重绘.json”“ControlNet_姿势控制.json”。不要一个文件反复覆盖,等下次想回退到旧版时就麻烦了。

如果从别人那里下载工作流,打开后经常出现“missing node type”,也就是工作流里引用了你本地没有的插件。这时候不是把工作流硬塞进画布,而是先安装对应插件,再重新加载。

7.2 批处理前先想好输出命名和失败重试

工作流稳定之后,很多人会想批量生成。ComfyUI 本身支持批次生成,也可以接入外部 Python 脚本或 API 来做更复杂的批处理。但批量任务和单张图有很大区别。

批量任务要重点考虑输出命名。如果每次都生成同一种随机文件名,后期整理会非常痛苦。建议在流程中或外部脚本里,给文件名加上任务名、日期、种子或序号。我见过有人批量生成几百张图之后,全部挤在一个目录里,根本分不清哪张对应哪个参数,返工成本非常高。

批处理还会遇到失败重试问题。如果某一个任务因为某张参考图格式损坏而失败,不要让整个流程全部停掉。要用队列控制、错误跳过或外部脚本捕获异常,让单个失败不影响其他任务。

7.3 新手进阶路线建议

从零到能独立搭建复杂工作流,我的建议路线是:

  1. 先跑通文生图,理解主链路。
  2. 再学图生图、局部重绘,理解输入输出数据格式。
  3. 接着用 LoRA 替换风格,理解权重影响。
  4. 再上 ControlNet,理解条件控制。
  5. 最后再考虑批处理、API 服务或视频生成。

每一步都以上一步为基础。不要看到网上一个炫酷工作流就立刻复制,很多工作流依赖的插件、模型和环境都不一样,直接复制很容易卡在报错上。

ComfyUI 值得花时间去玩,但要用工程化思维去学:先搭最小可运行版本,再逐步增加复杂度。这样出了问题,你知道是哪一层引起的,也能快速拆解别人的工作流。

如果你只是学习使用,默认配置足够;如果要长期当生产力工具,就要把模型目录、工作流文件、输出命名和日志都提前规划好。踩过几次之后你会发现,很多问题不是工具能力不够,而是前置环境和输入材料没有处理干净。这个习惯比记住再多参数都重要。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询