ComfyUI 工作流搭建:AIGC 设计的高效引擎

上周有位学员在群里求助:“我用 Stable Diffusion WebUI 生成服装效果图,每次调整背景或修改模特姿势,都要重新跑一遍完整的图,一天只出了 5 组方案,客户还嫌慢。” 这个问题在 AIGC 设计圈太典型了——大多数设计师还在用“一次性生成”的思维,把 AI 当成高级滤镜。但真正的效率提升,来自于工作流

今天我们要聊的 ComfyUI,不是另一个“一键出图”工具,而是一个节点式编程的视觉引擎。它让你像搭积木一样重组 AI 生成流程。如果你还在纠结“为什么别人的图质量比我高”,答案往往不是模型更强,而是工作流设计更优。

一、ComfyUI 的核心逻辑:为什么它是设计师的“瑞士军刀”

先纠正一个常见误解:ComfyUI 不是 Stable Diffusion 的替代品,而是一个前端编排系统。它底层调用相同的 Diffusion 模型(如 SDXL、SD1.5),但通过节点图让你精确控制每一步。

1.1 工作流 vs. 传统流程

在 WebUI 里,你输入 prompt → 点击生成 → 等待出图。如果要局部修改,只能重来。而在 ComfyUI 中,你可以这样设计:

[加载模型] → [文本编码] → [K采样器] → [VAE解码] → [输出图像]
                                      ↓
                              [ControlNet] → [局部重绘]

每个方框是一个节点,连线代表数据流。你可以随时插入新节点,比如在“K采样器”后加一个“图像放大”节点,或者用“遮罩编辑器”只修改背景。

1.2 版本与安装要点

当前稳定版本是 ComfyUI v0.2.3(2025年3月更新),支持 Python 3.10+。安装时注意:

  • 推荐使用 Git 克隆官方仓库:`git clone https://github.com/comfyanonymous/ComfyUI`
  • 首次启动会下载基础模型,建议提前准备 SDXL 1.0(约 6.9GB)或 SD 1.5(约 1.9GB)
  • 如果显卡显存 < 8GB,在 `extra_model_paths.yaml` 中设置 `--lowvram` 参数
  • 二、实操案例 1:从零搭建“产品主图生成”工作流

    假设你要为一家咖啡品牌生成 10 张不同角度的产品图,每张图需要统一背景、Logo 位置和光影。用传统方法需要 2 小时,用 ComfyUI 工作流只需 15 分钟。

    2.1 核心节点配置

    打开 ComfyUI,新建工作流,拖入以下节点(按 Tab 键搜索):

    1. Checkpoint Loader:加载基础模型,推荐 `sd_xl_base_1.0.safetensors`,参数保持默认
    2. CLIP Text Encode:输入 prompt,如“a cup of latte with latte art, coffee shop background, soft lighting, 8K”
    3. KSampler:关键参数设置
    – `seed`:建议设为 `42`(固定随机种子,便于复现)
    – `steps`:30(平衡速度与质量)
    – `cfg`:7(数值越高越贴近 prompt,但会损失多样性)
    – `sampler_name`:`dpmpp_2m`(适合写实风格)
    – `scheduler`:`karras`(改善高噪声区域的细节)
    4. VAE Decode:将潜在空间解码为图像,推荐 `sdxl_vae.safetensors`

    2.2 添加“批量生成”与“自动保存”

  • 在 KSampler 前插入 Empty Latent Image 节点,设置宽高为 `1024×1024`(SDXL 原生尺寸)
  • 添加 Save Image 节点,路径设为 `output/products/`,文件名格式 `{seed}_{timestamp}.png`
  • 右键点击 KSampler → Convert to Batch → 设置 `batch_size=10`(一次生成 10 张)
  • 2.3 效果与优化

    运行后,你会得到 10 张不同角度(通过随机 seed 实现)但风格一致的咖啡图。如果发现背景杂乱,可以在 KSampler 后插入 ControlNet Tile 节点,加载一张干净的咖啡店照片作为参考。

    ComfyUI工作流示例

    三、实操案例 2:用“局部重绘+ControlNet”实现精准修改

    设计师最痛苦的场景:客户说“模特姿势不错,但把背景换成森林”。在 ComfyUI 中,你只需要修改工作流中的一个分支

    3.1 准备遮罩

    1. 拖入 Load Image 节点,加载原始产品图
    2. 添加 Mask Editor 节点(需要安装 `ComfyUI-MaskEditor` 插件)
    – 用笔刷涂抹背景区域(白色代表要重绘的部分)
    – 保存遮罩为 `mask.png`

    3.2 搭建重绘分支

    在原有工作流基础上,增加:

  • VAE Encode:将原图编码为潜在空间
  • Set Latent Noise Mask:连接遮罩,参数 `noise_mask=on`
  • KSampler:设置 `denoise=0.7`(数值越高,重绘区域变化越大)
  • VAE Decode:解码后与原始非遮罩区域融合
  • 3.3 引入 ControlNet 保持一致性

    如果背景换成森林后,模特边缘出现伪影,加入:
    1. ControlNet Loader:加载 `control_v11p_sd15_canny.pth`
    2. Canny Preprocessor:提取原图边缘(阈值 `low=100, high=200`)
    3. 连接 ControlNet 到 KSampler 的 `control_net` 输入

    这样,AI 会保留模特的轮廓,只替换背景内容。

    局部重绘工作流

    四、进阶技巧:打造“模块化工作流库”

    当你积累了 20+ 个工作流后,会发现很多节点重复出现。建议:

  • 保存为模板:在 ComfyUI 菜单栏 File → Save As,命名如 `产品图_v2.json`
  • 使用“组”功能:选中多个节点,右键 → Add to Group,方便折叠/展开
  • 共享节点:将常用节点(如“高清放大”)导出为 `.png` 格式,拖入即可复用
  • 4.1 性能调优参数

  • 显存不足:在 KSampler 中设置 `vae_decode=taesd`(使用轻量 VAE)
  • 生成速度慢:将 `sampler_name` 改为 `euler`,`steps` 降至 20
  • 图像模糊:在 VAE Decode 后加 Upscale Image 节点,算法选 `4x_NMKD-Superscale-SP_178000_G`(需下载模型)
  • 五、总结与进阶建议

    ComfyUI 的本质是把 AI 生成过程拆解为可复用的逻辑单元。它不适合“随手一生成”的场景,但当你需要:

  • 批量生产统一风格的素材
  • 精确控制每个生成环节
  • 快速迭代多种方案
  • 它就是最高效的引擎。

    学习路径建议
    1. 先复刻本文的两个案例,理解节点连接逻辑
    2. 每天拆解一个 GitHub 上的工作流(搜索 `ComfyUI workflow`)
    3. 尝试用 `API 模式`(启动时加 `–api` 参数)将 ComfyUI 集成到 Figma 插件中

    最后,记住 ComfyUI 社区的金句:“没有最好的工作流,只有最适合当前任务的工作流。”

    常见问题 FAQ

    Q1:ComfyUI 和 WebUI 哪个更适合新手?
    A:WebUI 上手更快,ComfyUI 学习曲线较陡。但如果你每周生成超过 50 张图,ComfyUI 的批量处理能力能节省 70% 时间。建议先掌握 WebUI 基础,再过渡到 ComfyUI。

    Q2:为什么我的工作流运行报错“No module named ‘x’”?
    A:ComfyUI 的节点需要依赖库。在终端运行 `python -m pip install -r requirements.txt`,或手动安装缺失模块。常见缺失:`opencv-python`(图像处理)、`controlnet-aux`(ControlNet 预处理)。

    Q3:如何让生成的图像风格更稳定?
    A:在 CLIP Text Encode 中固定 `seed`,并添加负面 prompt(如“ugly, blurry, watermark”)。更高级的做法是使用 Style Aligned 节点(需额外安装),通过参考图锁定色彩和构图。

    Q4:显存只有 6GB,能跑 SDXL 吗?
    A:可以,但需开启 `–lowvram` 模式,并将 KSampler 的 `batch_size` 设为 1。建议使用 SD 1.5 模型(显存占用约 4GB),或使用 `TAESD` 解码器(减少 30% 显存占用)。

    Q5:工作流中的节点太多,界面卡顿怎么办?
    A:在 ComfyUI 设置中启用 `GPU acceleration for canvas`,或使用 `–highvram` 参数(如果显存足够)。也可以将不常修改的节点折叠为组,减少渲染开销。

    声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。