📚 AI学习

「AI绘画从0到1」Day12:ComfyUI工作流——用可视化节点编排AI绘画的全流程

· 2026-04-20 · 17 阅读

「AI绘画从0到1」Day12:ComfyUI工作流——用可视化节点编排AI绘画的全流程

👤 龙主编 📅 2026-04-20 👁️ 17 阅读 💬 0 评论

你有没有这种感觉:在 Stable Diffusion WebUI 里画一张图,需要来回点很多次——先调提示词,再选模型,再调参数,再开 ControlNet,再选采样器,再设分辨率……每张图都要重复这些步骤,有时候想批量跑一个系列,光设置就要花半天。

如果把这些操作做成一个”流水线”,一键启动就能自动跑完全部流程,是不是就轻松多了?

ComfyUI 就是干这个的。

ComfyUI 是目前最流行的 AI 绘画可视化节点编辑器。它的核心理念是:把 AI 绘画的每一个环节(加载模型、输入提示词、设置参数、添加控制、生成图片、输出保存)都变成一个”节点”,用线把这些节点连起来,就构成了一个完整的工作流。

这不是什么新概念—— Blender 的节点编辑器、Unity 的 Shader Graph、Unreal Engine 的 Blueprints 都是类似的东西。但 ComfyUI 第一次把这个理念带入了 AI 绘画领域,让创作者可以真正实现”设计一次,重复使用”的自动化创作。

这篇文章是「AI绘画从0到1」系列的第十二篇。前面你已经学了提示词、ControlNet、图生图、LoRA 训练——这些技能在 WebUI 里要来回切换操作,在 ComfyUI 里你可以把它们串联成一条自动化流水线,大幅提升效率。接下来我们从头开始,完整掌握 ComfyUI 的使用方法和进阶技巧。


ComfyUI工作流概念

一、ComfyUI 是什么?

1.1 节点编辑器的基本原理

理解 ComfyUI,先理解”节点编辑器”这个概念。

想象一下音乐制作软件里的”合成器”或者视频编辑软件里的”滤镜链”——你把不同的音效处理器、视频滤镜一个个串起来,声音或画面从第一个处理器进入,经过处理后输出到第二个,再输出到第三个,最终得到成品。

ComfyUI 的工作方式完全一样。每一个节点(Node)代表一个独立的功能模块——有的节点负责加载大模型,有的负责输入提示词,有的负责设置采样参数,有的负责加载 ControlNet 控制图。节点和节点之间用”线”连接,数据(图像 latent space 中的数据)从上游节点流向下游节点,经过每个节点的加工处理,最终在最后一个节点输出成品图片。

这种设计有一个巨大的好处:你设计的工作流可以被完整保存和分享。 别人拿到你的工作流文件,直接在自己电脑上复现一模一样的效果,不需要知道你每一步是怎么设置的。社区里有大量创作者分享自己的 ComfyUI 工作流,这是 AI 绘画领域最有价值的开源资产之一。

1.2 ComfyUI 和 WebUI 的核心区别

很多初学者会问:已经有了 WebUI,为什么还要学 ComfyUI?两者有什么区别?

WebUI(AUTOMATIC1111 或其他)的优势在于易用性。 界面直观,点哪里都是可视化菜单,不需要理解背后的逻辑,打开就会用。缺点是灵活性受限——你想同时叠加多个 ControlNet?想在生成过程中切换不同的采样器?想自定义每一步的操作逻辑?WebUI 很难实现或者需要安装额外的插件。

ComfyUI 的优势在于灵活性和可复现性。 你几乎可以实现任何自定义的生成逻辑,包括 WebUI 需要插件才能支持的复杂功能。更重要的是,ComfyUI 的工作流本质上是一个 JSON 文件,可以完整保存、复制、分享。而 WebUI 的操作记录不系统,每次重新生成都要重新设置。

两者的生成质量没有本质差异。 ComfyUI 和 WebUI 底层调用的都是同一套 Stable Diffusion 引擎,模型和采样算法完全通用,所以生成质量是一样的。区别只在于操作方式和工作流管理。

1.3 ComfyUI 能做到哪些 WebUI 很难做到的事?

以下几个场景是 ComfyUI 显著优于 WebUI 的典型例子:

场景一:批量生成和自动化。 你想生成 100 张同一系列但有细微变化的图片(比如同一角色的不同表情和服装组合)。在 WebUI 里你需要操作 100 次;在 ComfyUI 你可以设计一个工作流,用变量节点控制不同参数的变化,一次运行自动生成全部 100 张。

场景二:自定义采样流程。 WebUI 的采样流程是固定写死的,你无法在采样过程中插入额外的操作。但 ComfyUI 可以让你在第 5 步采样之后插入一个”局部重绘”,然后继续采样——这种自定义采样流程的能力在高级玩法中非常有用。

场景三:多模型串联。 你想用同一个提示词同时跑 3 个不同的大模型,对比效果。在 WebUI 里需要开 3 个标签页分别操作;在 ComfyUI 一个工作流里并联 3 个模型节点,一次运行同时出 3 张图。

场景四:复杂 ControlNet 组合。 需要同时叠加 OpenPose 姿势控制、Canny 边缘控制、Tile 纹理控制等多个 ControlNet。WebUI 对 ControlNet 叠加的支持有限且操作复杂;ComfyUI 可以直观地串联多个 ControlNet 节点,精确控制每个控制信号的强度和介入时机。


二、ComfyUI 基础界面和核心节点

2.1 界面布局

首次打开 ComfyUI,你会看到一个深色背景的工作区,左侧是节点搜索/添加面板,右侧是属性面板,中间大片空白区域就是工作流画布。

工作流画布 是你摆放和连接节点的地方。你可以通过滚轮缩放画布、通过右键拖拽移动视角、通过左键点击选中节点或连接线。

节点添加面板 在界面左侧。你可以点击”Add Node”打开节点目录树,或者直接在空白处双击鼠标,在弹出搜索框里输入节点名称来快速添加。这是最高效的节点添加方式。

属性面板 在界面右侧。当选中某个节点时,右侧面板会显示这个节点的详细参数设置,和 WebUI 的参数设置区功能类似。

队列和生成按钮 在界面右下角。点击”Queue Prompt”按钮会把这张图加入生成队列并开始生成;按住 Shift 点击则会立即开始生成(跳过队列)。

2.2 最基础的生图工作流

先介绍最简单的一个工作流,它只包含 5 个节点,但足以让你理解 ComfyUI 的基本操作方式:

第一个节点:Load Checkpoint(加载大模型)。 这个节点有 3 个输出端口(MODEL、CLIP、VAE),分别输出加载的模型、文本编码器、VAE 解码器。用一根模型线(通常橙色)连接到下一个节点的对应输入端口。

第二个节点:CLIP Text Encode(提示词编码)。 这个节点有两个输入端口——CLIP 和 text。CLIP 输入连接 Load Checkpoint 的 CLIP 输出;text 输入框里填写你想要的正面提示词。这个节点的作用是把文字转换成 AI 能理解的向量表示。

第三个节点:CLIP Text Encode(负面提示词编码)。 结构和正面编码节点完全一样,只是 text 输入框里填写你不想出现在图片里的内容(如低质量、变形的手指等)。

第四个节点:KSampler(采样器)。 这是生成过程的核心节点。它有多个输入端口:model(连接 Load Checkpoint 的 MODEL)、positive(连接正面提示词编码的输出)、negative(连接负面提示词编码的输出)。参数面板里有 steps(采样步数)、cfg(提示词引导强度)、sampler_name(采样器名称)、scheduler(学习率调度器)、seed(随机种子)等设置。

第五个节点:VAE Decode(VAE解码)。 这个节点连接 KSampler 的输出(latent 空间的图像)和 Load Checkpoint 的 VAE,把 AI 脑海中的”思维图像”解码成真实像素。

第六个节点:Save Image(保存图片)。 连接 VAE Decode 的输出像素图,设置文件名和保存路径。

连接顺序是:Load Checkpoint → CLIP Encode(正面)→ KSampler(正面端);Load Checkpoint → CLIP Encode(负面)→ KSampler(负面端);Load Checkpoint → VAE → VAE Decode → Save Image;KSampler → VAE Decode。

理解了最基础的 6 节点工作流,你就掌握了 ComfyUI 的核心逻辑——其他所有复杂工作流,都是在这个基础上增加更多节点、更多控制、更多处理步骤。

2.3 常用节点类型一览

ComfyUI 的节点数量非常多(社区版本通常有数百个节点),以下是日常使用中最常见的几类:

模型加载节点:

  • Load Checkpoint:加载完整的大模型(.safetensors/.ckpt 文件),包含 MODEL/CLIP/VAE 三个输出
  • Load LoRA:加载 LoRA 文件,需要连接到 Load Checkpoint 的输出和某个 LoRA 模型的输入,有 strength(强度)参数
  • Load ControlNet Model:加载 ControlNet 模型,需要配合对应 ControlNet 预处理节点使用

提示词节点:

  • CLIP Text Encode:输入文字,输出 CLIP 向量,这是提示词进入生成流程的唯一入口
  • CR Text Gate:更高级的提示词节点,支持将正面和负面提示词合并到一个节点里,减少连接线的数量

采样节点:

  • KSampler:最核心的采样器节点,包含采样算法的所有核心参数
  • KSamplerSelect:用来在多个采样器之间切换,适合做采样器对比测试
  • SamplerCustom:允许你自定义采样流程的每一个步骤,是高级玩法的核心节点

图像处理节点:

  • VAE Encode / VAE Decode:控制 latent 空间和像素空间之间的转换,是图生图和局部重绘功能的关键节点
  • Image Scale / Image Pad:调整图像分辨率
  • ImageBlend:混合两张图片,适合做图生图前后的对比

ControlNet 相关节点:

  • ControlNet Apply:把 ControlNet 的控制信号应用到生成过程
  • ControlNet Stack:叠加多个 ControlNet,支持分别设置每个 ControlNet 的强度

工作流控制节点:

  • CR Load Image:加载本地图片
  • Preview Image(或者 Save Image):预览/保存中间生成结果,用于调试工作流
  • Clone(或者 Duplicate):复制节点,提高工作效率

三、实战:用 ComfyUI 实现完整的 ControlNet + 图生图工作流

3.1 工作流设计思路

在 Day9 我们学了 ControlNet 的各种控制方式,在 Day10 我们学了图生图和局部重绘。如果你想在 WebUI 里同时使用这两个功能,需要来回切换页面、反复上传参考图、手动设置参数。

在 ComfyUI 里,你可以把 ControlNet 和图生图串联成一个完整的工作流,一次设置完成后每次只需要改提示词就能稳定复现。

这个工作流的逻辑是:加载一张 ControlNet 参考图(比如 OpenPose 姿势图)→ 以这张参考图为基础进行图生图 → 同时启用 ControlNet 控制姿势 → 输出成品。

3.2 具体节点连接步骤

第一步:加载大模型和参考图。

添加 Load Checkpoint 节点加载你的主模型。同时添加 CR Load Image 节点加载 ControlNet 参考图(骨骼姿势图或者其他控制图)。

第二步:预处理 ControlNet 参考图。

如果你有的是原始图片而不是姿势骨骼图,需要用 DW Preprocessor(OpenPose 预处理器)先提取骨骼信息。如果已经有了处理好的 pose 图,这一步可以跳过。

把 CR Load Image 的输出连接到对应预处理器的输入,然后预处理器的输出连接到 ControlNet Apply 节点。

第三步:设置提示词。

添加两个 CLIP Text Encode 节点(正面和负面提示词),分别连接到 Load Checkpoint 的 CLIP 输出。提示词内容需要包含你想要的画面描述。

第四步:构建采样器。

添加 KSampler 节点,model 输入连接 Load Checkpoint 的 MODEL 输出,正面连接正面 CLIP Encode 输出,负面连接负面 CLIP Encode 输出。

在 KSampler 和 Load Checkpoint 之间插入 ControlNet Apply 节点——具体做法是:Load Checkpoint 的 MODEL 输出先连到 ControlNet Apply,ControlNet Apply 的 MODEL 输出再连到 KSampler 的 model 输入。这样 ControlNet 的控制信号就能在采样过程中生效。

第五步:VAE 解码和保存。

KSampler 输出的 latent 图像先经过 VAE Decode 转换成像素图,然后连接 Save Image 节点保存。

3.3 工作流调试技巧

ComfyUI 工作流比 WebUI 更强大,但也更容易出错。以下是几个调试技巧:

技巧一:善用 Preview Image 节点。 在任何中间步骤插入 Preview Image 节点,可以查看该步骤的输出图像,快速定位问题出在哪一步。

技巧二:注意数据类型匹配。 ComfyUI 的连接线是有颜色区分的——橙色线传输模型数据,蓝色线传输图像数据,灰色线传输文本或数字。不同颜色的端口不能互连。如果你发现某根线接不上,先检查两端的端口类型是否匹配。

技巧三:保存工作流前清理测试节点。 调试过程中可能添加了很多 Preview Image 测试节点,正式使用前记得删除这些临时节点,让工作流更简洁。同时建议用”Minimize”功能压缩工作流占用空间。


工作流自动化示意

四、进阶工作流:批量自动生成

4.1 为什么需要批量生成?

在实际创作中,你可能需要生成一系列有变化的图片——比如同一个角色在不同背景下的多张图、或者同一提示词下不同随机种子的大批图片。在 WebUI 里这类需求操作繁琐,ComfyUI 的批量处理能力则让这类任务变得轻松。

4.2 用变量节点控制提示词变化

ComfyUI 有一个”CLIP Text Encode”的高级变体叫”Text Multiline”或者配合”CR Module Template”的节点,可以实现提示词的批量替换。

一个典型用法是:你在工作流中设置多个提示词变体(比如不同的背景描述),然后让 ComfyUI 依次使用每个提示词变体生成图片,全部自动排队完成。

具体实现方式是使用”Prompt Schedule”——通过外部配置文件或者内置的节点编辑器,设置一个包含多个提示词的列表,每个提示词对应不同的生成阶段或循环次数。

4.3 用 Seed 控制实现变体生成

最基础的批量生成方法是固定提示词、变化随机种子(Seed)。在 ComfyUI 的 KSampler 节点里,seed 值决定随机噪声的起始状态。不同的 seed 会产生不同的随机变化,但提示词和其他参数完全相同。

如果你想生成 20 张同提示词但不同构图细节的图,只需要设置 KSampler 的 seed 为”randomize”,然后设置 batch(批次数)为 20,ComfyUI 会自动用 20 个不同的 seed 生成 20 张图片并保存。

4.4 用 ControlNet Stack 实现多图对比

另一个实用的批量场景是:同一提示词 + 同一 ControlNet 参考图,但变化不同的大模型或不同的 LoRA,对比效果差异。

这种工作流的设计思路是:在主流程上并联多个 Load Checkpoint 分支,每个分支加载不同的大模型,然后在 ControlNet Apply 之后汇合到同一个 KSampler——但实际上因为模型不同,通常需要分别采样再合并结果。

更简单的方法是:分别建立 3 个独立但结构相同的工作流,分别加载不同的模型,同时运行对比结果。这种”并联测试”方式在模型对比、LoRA 效果测试等场景非常高效。


五、ComfyUI 的进阶技巧

5.1 动态参数:让工作流真正可复用

ComfyUI 最强大的特性之一是”自定义节点”和”工作流输入输出”。通过添加”Primitive”(原始值)节点或者在节点参数中引用外部输入,你可以把工作流设计成”参数化”的形式。

比如你设计了一个角色图工作流,固定了模型、LoRA、ControlNet 设置,但想保留提示词和种子可调整的能力。你可以把正面提示词和 seed 拖拽成独立的输入端口,保存为模板。以后使用时,不需要打开工作流编辑内部设置,直接在右侧属性面板就能调整这些关键参数。

这种”参数化工作流”设计是 ComfyUI 高手和新手之间最大的分水岭。掌握这个技能后,你的创作效率会有质的飞跃。

5.2 模板和社区资源

ComfyUI 有一个非常活跃的社区,大量创作者在 Civitai、GitHub、Reddit 等平台分享自己的工作流模板。这些模板通常以”.json”文件形式提供,下载后直接导入 ComfyUI 就能复现原作者的生成效果。

推荐的模板获取渠道:

  • Civitai 上有专门的 ComfyUI 工作流板块,按功能分类(头像生成、插画、摄影等),可以直接下载使用
  • GitHub 上的 ComfyUI examples 仓库有官方提供的基础示例工作流,是学习的好素材
  • B站和 YouTube 上有大量中文和英文的 ComfyUI 教程

下载模板时要注意:模板依赖的模型(Checkpoints、LoRA、ControlNet 等)需要提前安装到对应目录,否则导入后会报节点缺失错误。

5.3 工作流优化:加速生成

ComfyUI 相比 WebUI 的另一个优势是更精细的显存管理。WebUI 一次性加载所有资源,显存占用相对粗放;ComfyUI 只在需要时才加载对应模型,且支持把 VAE 等大型模块独立管理。

如果你有一张中低端显卡(8GB 左右显存),可以通过以下方式优化:

方式一:启用模型卸载。 在 ComfyUI 设置里开启”Auto queue + Model management”,让 ComfyUI 在生成完毕后自动把大模型从显存卸载,释放空间给下一次生成,避免显存溢出。

方式二:使用 SDXL 模型优化版本。 SDXL 大模型原生分辨率是 1024,但有专门的 fp16 精度的优化版本可以在更低显存下运行。

方式三:分块处理高分辨率图片。 ComfyUI 有专门的”SDXL Ultimate”等节点集,可以把高分辨率图片的生成切分成多个小块分别处理再拼接,大幅降低显存峰值占用。


六、主流工作流模板解析

6.1 基础文生图工作流

这是 ComfyUI 的”Hello World”,几乎所有教程都从它开始。结构最简洁:Load Checkpoint → CLIP Encode(正面)→ CLIP Encode(负面)→ KSampler → VAE Decode → Save Image。

这个工作流的功能和 WebUI 的文生图完全一样,但好处是你可以精确控制每一个参数,且所有设置都能保存复用。

6.2 进阶 ControlNet + 图生图工作流

在基础工作流上增加 ControlNet 相关节点:

  • 增加 Load ControlNet Model 节点
  • 增加 ControlNet Preprocessor 节点(如 OpenPose/Canny 等)
  • 增加 Load Image 节点作为 ControlNet 参考图输入
  • 在 Load Checkpoint 和 KSampler 之间插入 ControlNet Apply

这个工作流能实现 Day9 Day10 两个技能的组合,是高级创作的核心工具。

6.3 LoRA 叠加工作流

在基础工作流的 Load Checkpoint 和 KSampler 之间插入 Load LoRA 节点。LoRA 节点有两个关键参数:strength_model(对模型的影响强度)和 strength_clip(对提示词编码的影响强度)。

如果你要叠加多个 LoRA,可以串联多个 Load LoRA 节点,或者使用 ComfyUI 的”LayerUtility”等高级节点集来更精细地控制每个 LoRA 的生效时机和范围。


七、常见问题与解决方案

问题一:导入别人的工作流报”节点缺失”错误

这是最常见的 ComfyUI 问题。原因是模板使用了某个你没有安装的自定义节点。解决方法:查看错误提示里缺失的节点名称(通常是节点类型名如”CR Load Image”),在 ComfyUI Manager 里搜索并安装对应的自定义节点扩展包。如果缺少的是官方节点,则可能是 ComfyUI 版本过旧,需要更新。

问题二:生成时提示显存不足(OOM)

在 ComfyUI 设置里开启”Model Auto-load”或者尝试降低生成分辨率。还可以检查是否同时加载了多个大型模型(如多个大模型 + 多个 ControlNet),尽量减少同时在显存中的模型数量。

问题三:生成的图片质量明显比 WebUI 差

确认大模型和 VAE 是否匹配——有些 SDXL 模型需要配套的 VAE,如果用了不同的 VAE 会导致颜色异常或模糊。还要检查 KSampler 的 steps 和 CFG 参数是否合理。

问题四:工作流保存后再打开,节点位置全乱了

这是 ComfyUI 的已知问题,和屏幕分辨率和 UI 缩放设置有关。解决方法是用”Arrange Nodes”功能自动排列节点,或者安装”ComfyUI Manager”里的节点布局整理插件。

问题五:如何在 ComfyUI 里使用 WebUI 安装的模型?

ComfyUI 和 WebUI 可以共享同一套模型文件。只要确保模型文件放在 ComfyUI 对应的 models 目录下(Checkpoints、LoRA、ControlNet 等各有独立目录),就能在 ComfyUI 里直接加载使用。模型目录路径可以在 ComfyUI 启动时确认,或者在设置里自定义。


八、总结与下节预告

今天我们完整学习了 ComfyUI 工作流编辑器——从基础概念、界面操作、节点类型,到完整的 ControlNet + 图生图工作流搭建、批量生成技巧、以及高阶复用方法。ComfyUI 是 AI 绘画从”手动操作”走向”自动化创作”的关键工具,掌握它之后,你的工作效率会大幅提升。

核心要点回顾:

  • ComfyUI 是基于节点编辑器的 AI 绘画工作流工具,和 WebUI 相比更灵活、可复用性更强
  • 节点之间用不同颜色的线连接(橙色=模型,蓝色=图像,灰色=文本/数值),数据类型必须匹配
  • 最基础的生图工作流只需要 6 个节点:Load Checkpoint → 2x CLIP Encode → KSampler → VAE Decode → Save Image
  • ControlNet、LoRA、图生图都可以无缝集成到 ComfyUI 工作流中
  • 批量生成和参数化工作流是 ComfyUI 最强大的功能之一

明天是 Day13,我们将进入商业实战:角色设计与头像变现的学习——从纯技术转向商业应用,教你如何用 AI 绘画真正赚到钱。如果你跟着这个系列学到了 Day13,你已经掌握了 AI 绘画的核心技能树,是时候把这些技能转化为实际收益了。敬请期待。


【本系列目录】

  • Day1:AI绘图底层逻辑 ✅
  • Day2:Stable Diffusion快速上手 ✅
  • Day3:提示词基础语法 ✅
  • Day4:五大万能构图公式 ✅
  • Day5:参数设置入门 ✅
  • Day6:模型选择指南 ✅
  • Day7:AI绘画变现路径 ✅
  • Day8:头像定制实战演示 ✅
  • Day9:ControlNet入门 ✅
  • Day10:图生图与局部重绘 ✅
  • Day11:LoRA模型训练 ✅
  • Day12:ComfyUI工作流 ← 今天
  • Day13:商业实战·角色设计与头像变现 ← 明天
  • Day14-Day15:敬请期待
  • 发表评论

    您的邮箱地址不会被公开。 必填项已用 * 标注

    微信公众号二维码

    扫码关注公众号

    QQ
    QQ二维码

    扫码添加QQ