ComfyUI 工作流搭建:AIGC 设计的高效引擎
上周有位学员在群里发了一张他花了两小时用 Midjourney 生成的电商海报——图像质量很高,但模特衣服上的品牌 Logo 被 AI 画成扭曲的字母乱码,背景的光影也不符合产品主图的要求。他问我:“为什么我花这么多时间,最后还得回 Photoshop 手动修图?”
这个场景太典型了。很多人以为 AIGC 设计就是“输入提示词→生成图片→完事”。但现实是,商业设计需要精确控制,需要迭代,需要局部修改,需要批量输出。而 ComfyUI 正是为解决这些问题而生的——它不是另一个“生图工具”,而是一个可视化工作流引擎,让你像搭建乐高一样组装 AI 生成管线。
今天我们就从两个真实案例出发,拆解 ComfyUI 工作流的核心搭建方法。
—
一、为什么是 ComfyUI?——从“黑箱”到“透明管道”
先明确一个认知:Stable Diffusion 的 WebUI(如 AUTOMATIC1111)适合快速探索创意,但当你需要精确控制生成流程时,它的单页面“全功能面板”反而成了束缚。比如你想在同一张图里分别控制前景和背景的生成参��,WebUI 需要反复切换选项卡、手动记录种子值;而在 ComfyUI 中,这只是一个节点连接的问题。
ComfyUI 的核心优势在于:
- 节点式可视化编程:每个节点代表一个处理步骤(加载模型、采样、放大、遮罩处理等),用连线定义数据流向
下面我们通过两个实操案例,从简单到复杂,逐步搭建一个完整的商业级工作流。
—
二、案例一:电商主图生成——精准控制产品与背景
场景:需要为某品牌保温杯生成 10 张不同场景的主图,要求:杯子本身必须保持品牌设计的颜色和材质细节,背景可以自由变化(户外、室内、极简风格等)。
步骤 1:安装并启动 ComfyUI
版本要求:ComfyUI v0.2.5+(2024 年 10 月后版本)。推荐使用整合包(如 Stability Matrix 或官方 Git 仓库克隆),确保已安装以下关键节点:
启动后,你会看到一个空白画布,左侧是节点菜单,右侧是工作区。
步骤 2:搭建基础生成管线
从节点菜单中拖拽以下节点,并按顺序连接:
[Checkpoint Loader] → [CLIP Text Encode (Prompt)] → [KSampler] → [VAE Decode] → [Save Image]
点击“Queue Prompt”测试,你应该能得到一张简单的保温杯图片。但问题来了:背景和杯子是同时生成的,无法单独控制。
步骤 3:引入 ControlNet 实现区域分离
这是本案例的核心——我们需要用 Canny 边缘检测 和 遮罩 来分离产品与背景。
1. 添加 ControlNet 节点:从节点菜单中选择 `ControlNet Loader`,加载 `control_v11p_sd15_canny.pth`(需提前下载到 ComfyUI/models/controlnet 目录)
2. 准备产品轮廓图:在 Photoshop 中将保温杯的正面视图转为黑白线稿(Canny 风格),保存为 `product_outline.png`,导入 ComfyUI 的 `Load Image` 节点
3. 连接管线:
– 将 `Load Image` 的输出连接到 `ControlNet Apply` 的 `image` 输入
– 将 `ControlNet Loader` 的输出连接到 `ControlNet Apply` 的 `control_net` 输入
– 将 `ControlNet Apply` 的 `positive` 和 `negative` 输入分别连接到两个 `CLIP Text Encode` 节点(一个写产品,一个写背景)
完整节点结构如下:
[Load Image (产品轮廓)] → [ControlNet Apply] → [KSampler]
[Checkpoint Loader] → [CLIP Text Encode (产品提示词)] → [ControlNet Apply positive]
[CLIP Text Encode (背景提示词)] → [ControlNet Apply negative]
参数说明:
生成结果:杯子轮廓严格遵循线稿,背景则根据提示词自由生成。你可以通过修改背景提示词快速切换 10 种场景,而杯子始终保持一致。
—
三、案例二:人物写真精修——局部重绘与面部一致性
场景:用 AI 生成了一张人物写真,五官精致但手指出现 6 根,衣服纹理有瑕疵。需要在不重绘整张图的前提下,修复局部问题。
步骤 1:加载图像并生成遮罩
在 `MaskEditor` 中,用画笔工具手动涂抹需要修复的区域(手指部分),然后输出遮罩图像。
步骤 2:搭建局部重绘管线
ComfyUI 的局部重绘需要 `KSampler` 的 `denoise` 参数配合 `mask` 输入:
[Load Image] → [VAE Encode] → [KSampler] → [VAE Decode] → [Save Image]
↑ ↑
[Mask Editor] [CLIP Text Encode]
注意:`KSampler` 的 `mask` 输入必须连接 `Mask Editor` 的 `mask` 输出。同时,`VAE Encode` 需要将原图编码后传入 `KSampler` 的 `latent_image`。
步骤 3:面部一致性优化
如果修复手部后,面部表情或特征发生变化(局部重绘有时会轻微影响周围区域),可以引入 IPAdapter 保持面部一致性。
IPAdapter 是一个轻量级的参考图适配器,能提取参考图(如原始照片的面部)的风格与构图特征,注入到生成过程中。
1. 安装 IPAdapter 节点:通过 ComfyUI-Manager 搜索 `IPAdapter` 并安装
2. 加载参考图:`Load Image` 加载原始人像的面部特写(裁剪好的面部区域)
3. 连接方式:
– `IPAdapter Loader` 加载模型 `ip-adapter-faceid-plusv2_sd15.bin`
– `IPAdapter Apply` 连接到 `KSampler` 的 `model` 输入(注意不是 `positive` 输入)
完整重绘工作流:
[Load Image (原图)] → [VAE Encode] → [KSampler] → [VAE Decode] → [Save Image]
[Load Image (面部参考)] → [IPAdapter Apply] → [KSampler model]
[Mask Editor] → [KSampler mask]
[CLIP Text Encode] → [KSampler positive]
这样,重绘手部时,面部特征会被 IPAdapter“锁定”,不会出现“修复手部后脸变了”的尴尬。
—
四、进阶技巧:工作流复用与批量处理
搭建一次工作流不是终点,真正的效率来自模板化与批量执行。
保存工作流为模板
点击 ComfyUI 界面右上角的“Save”按钮,将当前工作流导出为 JSON 文件。命名规则建议:`[用途]_[模型]_[精度].json`,例如 `ecommerce_bg_switch_realisticVision_v1.json`。
下次使用时,点击“Load”直接加载,只需修改 `Load Image` 中的产品轮廓图和 `CLIP Text Encode` 中的背景提示词即可。
批量处理:使用 Latent Batch
如果需要一次性生成 10 张不同背景的保温杯图片,不要手动重复点击。使用 `LatentBatch` 节点:
1. 将多个背景提示词分别写入多个 `CLIP Text Encode` 节点
2. 用 `LatentBatch` 将所有潜空间数据合并
3. `KSampler` 的 `batch_size` 设为 `10`
4. 输出时使用 `Save Image` 的 `filename_prefix` 添加时间戳或编号
注意:批量处理时显存占用会线性增加,建议先测试单张,确认显存余量后再批量。
—
总结与进阶建议
ComfyUI 工作流的本质是将“生成”拆解为可控的步骤。今天两个案例展示了它的核心能力:
1. ControlNet 区域控制:让产品与背景独立生成
2. 遮罩重绘 + IPAdapter:局部修复而不破坏整体一致性
但 ComfyUI 的能力远不止于此。如果你希望进一步深入,建议按以下路径学习:
最后送大家一句话:ComfyUI 不是工具,而是一种思维方式——把 AI 生成从“黑箱”变成“透明管道”,你才能真正掌控它。
—
常见问题 FAQ
Q1:我的 ComfyUI 启动后界面是英文,如何切换中文?
A:通过 ComfyUI-Manager 安装 `ComfyUI-Language-ZH` 插件,重启后在 Settings 中选择 Language 为 `Chinese`。注意:部分第三方节点仍显示英文,但核心界面可完全汉化。
Q2:使用 ControlNet 时,为什么生成图像完全复制了轮廓图?
A:`ControlNet Apply` 的 `strength` 参数过高(超过 0.9)会导致过度拟合。建议从 0.6 开始调试,同时检查轮廓图是否过于复杂(线条太密或噪点太多),可以先用 `Canny` 节点预处理轮廓图。
Q3:局部重绘后,修复区域与周围图像颜色不匹配?
A:这是常见问题。解决方法:在 `KSampler` 中将 `denoise` 设为 0.3-0.5,同时确保 `Mask Editor` 的涂抹区域边缘有 5-10 像素的羽化(在 MaskEditor 中勾选“Feather”并设置半径)。如果问题依旧,尝试在重绘提示词中加入 `matching lighting, consistent color` 等描述。
Q4:批量处理时显存溢出怎么办?
A:三种方案:① 降低 `batch_size` 至 2-3,分批次生成;② 使用 `Tiled VAE Decode` 节点(分块解码,减少单次显存占用);③ 升级显卡至 12GB 以上显存(RTX 3060 12GB 或更高)。
Q5:如何将 ComfyUI 工作流分享给他人?
A:点击右上角“Save”导出 JSON 文件,同时将用到的模型、ControlNet、LoRA 等文件打包(或提供下载链接)。注意:JSON 文件中不包含模型文件本身,接收方需自行下载相同版本的模型。推荐使用 `ComfyUI-Manager` 的“Share Workflow”功能,它会自动生成依赖列表。

评论(0)