ComfyUI:节点式扩散模型工作流搭建

FreeGuideOnline 最新 2026-06-20

ComfyUI 节点式扩散模型工作流搭建完全指南

ComfyUI 是一款基于节点的 Stable Diffusion 图形界面,通过可视化的方式将扩散模型的各个组件串联成完整的工作流,为 AI 绘画提供极高的灵活性和可复现性。本教程将带你从零开始,理解核心概念并亲手搭建自己的工作流。

认识 ComfyUI:为什么选择节点式界面

传统 AI 绘画工具(如 Automatic1111 WebUI)将所有功能打包在黑盒界面中,参数调整空间有限。ComfyUI 将模型加载、文本编码、采样、解码等每一步都拆解为独立的节点,通过连线传递数据。这让用户能够:

  • 精确控制管线:自由组合模型、LoRA、ControlNet 等模块。
  • 轻松复用实验:工作流可保存为 JSON 文件,分享即复现。
  • 尝试前沿技术:新模型或新方法仅需新增节点,无需等待界面更新。
  • 高效批次处理:利用队列和缓存机制,极大提升生产速度。

即使你没有编程基础,只要理解几个关键节点,就能搭建出专业的生成流程。

环境准备:安装与启动

在开始之前,请确保你的系统满足要求:NVIDIA 显卡(建议 6GB 显存以上),已安装 Git 和 Python 3.10。

  1. 下载 ComfyUI
    打开终端,克隆官方仓库:

    git clone https://github.com/comfyanonymous/ComfyUI.git
    cd ComfyUI
    
  2. 安装依赖
    使用 pip 安装所需包(建议创建虚拟环境):

    pip install -r requirements.txt
    
  3. 放置模型
    将下载的 Stable Diffusion 检查点文件(.safetensors 或 .ckpt)放入 models/checkpoints/ 文件夹。常见的模型如 SD1.5、SDXL 或 SD3 均可直接使用。

  4. 启动界面
    运行主程序:

    python main.py
    

    默认会在浏览器中打开 http://127.0.0.1:8188,你将看到画布式的节点编辑区。

核心概念:图与节点

ComfyUI 的工作区本质上是一个有向无环图(DAG),由节点和连线组成。每个节点完成特定计算,输入/输出通过插槽连接。数据从左向右流动:左侧提供条件与噪声,右侧输出图像。

节点类型速览

类别 常见节点 作用
加载器(Loader) Load Checkpoint, Load VAE, Load LoRA 将模型或模块加载到显存
条件(Conditioning) CLIP Text Encode 将提示词转为模型可理解的嵌入向量
潜变量(Latent) Empty Latent Image, VAE Encode 生成或处理潜空间中的图像
采样(Sampling) KSampler, KSampler Advanced 执行扩散去噪过程
解码/图像(Image) VAE Decode, Save Image 将潜变量变回像素并保存

基础连线规则

  • 输出插槽(右侧圆点)必须连接到同类型或兼容类型的输入插槽(左侧圆点)。
  • 鼠标悬停在插槽上会显示数据类型(MODELCLIPVAELATENTCONDITIONINGIMAGE 等)。
  • 错误连接会立即以红色高亮提示。

搭建你的第一个工作流:文生图

我们将从最简单但完整的文生图流程开始,只需要 7 个节点。

步骤一:加载模型

在画布右键选择 Add NodeloadersLoad Checkpoint
通过下拉菜单选择你放入 checkpoints/ 文件夹的模型。该节点会输出 MODELCLIPVAE 三个数据口。

步骤二:编码提示词

添加两个 CLIP Text Encode 节点(在 conditioning 类中)。
Load Checkpoint 节点的 CLIP 输出分别连接到两个文本编码节点的 clip 输入。
在第一个节点输入正向提示词(如“一只在月球上奔跑的柴犬,写实风格,高细节”),第二个输入负向提示词(如“模糊,低质量,变形”)。

步骤三:生成初始潜空间噪声

添加 Empty Latent Image 节点(latent 类)。
设置宽度、高度和批次大小(batch_size)。例如 512×512,批次 1。此节点输出一个符合指定尺寸的随机噪声潜变量。

步骤四:配置采样器

添加 KSampler 节点(sampling 类)。
连接输入:

  • model:来自 Load Checkpoint 的 MODEL。
  • positivenegative:来自两个文本编码节点的 CONDITIONING。
  • latent_image:来自 Empty Latent Image 的 LATENT。

在 KSampler 的参数中设置:

  • seed:固定或随机(设为 -1 即为随机)。
  • control_after_generate:生成后种子的变化方式,建议 increment
  • steps:采样步数,SD1.5 推荐 20~30 步。
  • cfg:提示词引导系数,一般 7 左右。
  • sampler_name:如 eulerdpmpp_2m
  • scheduler:如 normalkarras
  • denoise:文生图保持 1.0。

步骤五:解码并保存图像

添加 VAE Decodelatent 类)和 Save Imageimage 类)。
将 KSampler 输出的 LATENT 连接到 VAE Decode 的 samples,再将 Load Checkpoint 的 VAE 连接到 VAE Decode 的 vae
最后将 VAE Decode 输出的 IMAGE 连入 Save Image 的 images,可设置输出前缀名。

点击侧边栏的“Queue Prompt”按钮,几秒后你的第一张 AI 图像即会出现在输出面板中。

进阶工作流:图生图与 ControlNet 引入

实际创作中,我们常常对已有图像进行变化或控制构图。ComfyUI 替换几个节点即可实现。

图生图(Image to Image)

Empty Latent Image 替换为以下流程:

  1. Load Image 节点加载一幅参考图。
  2. VAE Encode 节点(使用与主模型相同的 VAE)把像素图像编码到潜空间。
  3. 将 VAE Encode 输出的 LATENT 连接到 KSampler 的 latent_image 输入。
  4. 在 KSampler 中降低 denoise 值(例如 0.6~0.8),数值越小保留原图信息越多。

这样就实现了以原图为基础的重绘或风格化。

加入 ControlNet 精准控制

ControlNet 通过边缘、深度、姿态等条件引导生成。加入步骤如下:

  • 下载 ControlNet 模型并放入 models/controlnet/ 文件夹。
  • 添加 Load ControlNet Model 节点,选择对应模型(如 canny 控制网)。
  • 添加 Apply ControlNet 节点,连接:
    • conditioning:来自正向提示词编码后的 CONDITIONING。
    • control_net:来自 Load ControlNet Model 的 CONTROL_NET。
    • image:经过预处理的图像(如 canny 边缘提取的图像)。可使用 Canny Edge 节点处理输入图像。
  • Apply ControlNet 输出的新 CONDITIONING 替换掉原来直接连入 KSampler 的正向条件。

这样,生成结果会严格遵循边缘图的线条结构。

LoRA 与多重模型混合

LoRA 是一种轻量级微调模型,可以快速切换风格或角色。

  • Load LoRA 节点插入到 Load Checkpoint 之后。
  • Load Checkpoint 的 MODEL 和 CLIP 分别连接 Load LoRA 的 modelclip 输入。
  • Load LoRA 再输出新的 MODEL 和 CLIP,传给后续节点。
  • 可在参数中调整 LoRA 强度(如 0.8)。堆叠多个 LoRA 节点可以实现风格混合。

工作流保存与加载

完成一个复杂的工作流后,务必保存以复用:

  • 点击菜单中的 WorkflowSaveSave As,将生成 JSON 文件。
  • 支持拖拽 JSON 文件到画布直接加载,或通过 Load 按钮选择。
  • 如果你生成了一张图像,ComfyUI 自动将生成该图像的工作流嵌入到 PNG 文件的元数据中。把图片拖入画布即可还原整个工作流(甚至包括当时使用的模型名称和种子)。这一特性对于回溯实验极为有用。

常用技巧与排错

  • 节点对齐与整理:使用右键菜单 Align 或快捷键 Ctrl+G 分组,保持画布清晰。
  • 队列与批次:通过 Extra Options 可以设置批次数量, 一次生成多张图。
  • 显存优化:当显存不足时,启用 --lowvram--novram 启动参数(在启动命令后添加)。ComfyUI 会自动将部分模型卸载以节省显存,代价是生成速度略降。
  • 自定义节点:社区提供了大量自定义节点(如效率节点包 Efficiency Nodes、ControlNet 辅助预处理器等),使用 ComfyUI Manager 可以方便地安装和管理。
  • 错误排查:如果节点变红,鼠标悬停会显示错误原因。最常见的是数据类型不匹配或缺少模型,检查连接线或模型路径。

结语

ComfyUI 打破了传统 UI 的限制,将扩散模型的生成过程拆解为可组合的“乐高积木”。一旦你习惯了节点式思维,任何新的 AI 绘画技术都能迅速融入自己的工作流。从最简单的文生图到复杂的 ControlNet + IP-Adapter + 多重采样回路,你的创意可以天马行空且精确复现。立即打开画布,用节点搭建属于你的创作管线吧。