跳转至

ComfyUI 图像生成入门

一句话说明:ComfyUI 是一个基于节点(Node)的 Stable Diffusion 图像生成界面,把"文字变图片"的每一步都拆成可拖拽的积木块,让你像搭乐高一样控制 AI 画图的全过程。


一、为什么要学 AI 图像生成 / ComfyUI

1.1 AI 图像生成能做什么

场景具体例子
论文配图用 AI 生成示意图、流程图的初稿,再精修
PPT / 海报快速产出风格统一的插画素材
头像 / 壁纸个人使用,自由度极高
产品原型给设计师一个"差不多是这样"的草图
科研可视化蛋白质结构、细胞图示的艺术化渲染
自媒体配图公众号、B 站封面批量生成

1.2 为什么选 ComfyUI 而不是其他工具

对比项ComfyUIWebUI (A1111)Fooocus
上手难度中等(需要理解节点)低(填表式)极低(几乎无参数)
可控性极高,每一步可调
显存占用低(自动队列调度)
工作流复用一键导入/导出 JSON需要手动对参数不支持
批量生产天然适合需要脚本不适合
社区生态增长最快,插件丰富成熟但增速放缓
适合人群想深入理解+批量出图想快速出图纯小白体验

结论:如果你只是想体验一下,Fooocus 最快;如果你想真正理解并掌控 AI 画图流程,ComfyUI 是 2024-2025 年的主流选择。


二、核心概念白话版

2.1 Stable Diffusion 是什么

白话:Stable Diffusion(SD)是一个开源的"AI 画师大脑"。你给它一句话描述(prompt),它就能画出对应的图片。

它不是一个软件,而是一个模型(一组训练好的参数),需要有个界面来使用它——ComfyUI 就是这个界面。

类比:SD 是发动机,ComfyUI 是驾驶舱。

2.2 扩散模型原理(白话版)

想象你拿一张清晰的照片,往上面撒噪点(像电视雪花),撒 1000 次之后就变成一张纯噪音图片。

扩散模型做的事情正好相反: 1. 从一张纯噪音开始 2. 一步步"去噪"(denoise),每一步让图片清晰一点 3. 去噪的方向由你的文字描述(prompt)引导 4. 经过 20-30 步去噪后,一张清晰的图片就出来了

纯噪音 → 模糊轮廓 → 粗略图形 → 细节浮现 → 清晰图片
 (step 1)   (step 5)    (step 10)   (step 20)   (step 30)

这就是为什么生成图片时你能看到参数 steps(步数)和 denoise(去噪强度)。

2.3 ComfyUI 是什么(节点式工作流)

ComfyUI 把 AI 画图的每一步都变成一个节点(Node),你用线把节点连起来就是一个工作流(Workflow)

[加载模型] → [输入提示词] → [采样器(去噪)] → [VAE解码] → [保存图片]

白话理解: - 节点 = 一个功能积木块(比如"加载模型""写提示词""去噪""保存图片") - 连线 = 数据的流向(上一步的输出接到下一步的输入) - 工作流 = 一整套积木搭好的流水线

好处:你可以随时在中间插入新节点、换模型、加 ControlNet,不需要重新配置。

2.4 关键术语速查

术语白话解释文件后缀放哪个目录
Checkpoint完整的 AI 画师大脑,决定画风和能力.safetensors (2-7GB)models/checkpoints/
LoRA小型"技能补丁",给大脑加一个特定风格或角色.safetensors (10-200MB)models/loras/
VAE"调色师",把模型内部的数据翻译成人眼能看的图片.safetensors (300-800MB)models/vae/
ControlNet"骨架指导员",用姿势图/线稿/深度图控制构图.safetensors (700MB-1.4GB)models/controlnet/
Embedding浓缩的"关键词包",一个词代替一长串描述.pt / .safetensorsmodels/embeddings/
Sampler去噪的"方法论"(不同的去噪算法)软件内置
CFG Scale提示词听话程度,越高越严格遵守描述参数
Denoise去噪强度,1.0=从纯噪音开始,0.5=保留一半原图参数

三、环境安装(Windows + 8G 显存)

3.1 硬件确认

你的 8G 显存 GPU 足够跑 SD 1.5 和 SDXL(优化后)。先确认显卡型号:

# 在 PowerShell 中执行
nvidia-smi

确保安装了 NVIDIA 驱动 >= 525 版本。

3.2 下载 ComfyUI 便携版(推荐)

便携版自带 Python 和依赖,不需要自己配环境,解压就能用。

  1. 去 GitHub 下载:https://github.com/comfyanonymous/ComfyUI/releases
  2. 找最新的 ComfyUI_windows_portable_xxx.7z
  3. 或者去国内镜像站(秋叶整合包也可以,但建议先用官方便携版理解原理)

  4. 解压到一个路径不含中文的目录,比如:

    D:\ComfyUI_windows_portable\
    

  5. 目录结构:

    ComfyUI_windows_portable/
    ├── ComfyUI/
    │   ├── models/          ← 放模型的地方
    │   │   ├── checkpoints/
    │   │   ├── loras/
    │   │   ├── vae/
    │   │   ├── controlnet/
    │   │   └── embeddings/
    │   ├── input/            ← 放输入图片
    │   ├── output/           ← 生成的图片在这
    │   └── custom_nodes/     ← 插件目录
    ├── python_embeded/       ← 内置 Python
    └── run_nvidia_gpu.bat    ← 双击启动
    

  6. 双击 run_nvidia_gpu.bat 启动,浏览器访问 http://127.0.0.1:8188

3.3 模型下载

必须下载至少一个 Checkpoint 才能出图。

推荐下载源: - Civitaihttps://civitai.com(最大的 SD 模型社区,需注册) - HuggingFacehttps://huggingface.co(官方模型仓库) - 国内镜像https://hf-mirror.com(HuggingFace 国内镜像,速度快)

入门推荐 Checkpoint:

模型名基础架构大小特点适合场景
DreamShaper 8SD 1.5~2GB通用,效果好,显存友好入门首选
Realistic Vision 5.1SD 1.5~2GB写实人像真实感照片
SDXL Base 1.0SDXL~6.5GB官方大模型,画质更高8G 显存可跑(需优化)
Juggernaut XL v9SDXL~6.5GB写实类 SDXL 顶级高质量写实

下载后放入 ComfyUI/models/checkpoints/ 目录即可。

3.4 安装 ComfyUI Manager(必装插件)

ComfyUI Manager 是插件管理器,可以一键安装/更新其他插件。

安装方法

# 进入 custom_nodes 目录
cd D:\ComfyUI_windows_portable\ComfyUI\custom_nodes

# 克隆仓库
git clone https://github.com/ltdrdata/ComfyUI-Manager.git

安装后重启 ComfyUI,界面右侧会出现 Manager 按钮。

通过 Manager 你可以: - 一键安装缺失节点 - 搜索安装新插件 - 更新所有插件 - 安装缺失的模型


四、实操教程

4.1 文生图(Text-to-Image)基础工作流

这是最基础的工作流,从文字直接生成图片。

步骤

  1. 启动 ComfyUI,默认会加载一个基础工作流
  2. 如果是空白画布,点击右侧 Load Default 加载默认工作流

默认工作流包含以下节点(从左到右):

[Load Checkpoint]     选择你下载的模型
[CLIP Text Encode]    正面提示词(你想要什么)
[CLIP Text Encode]    负面提示词(你不想要什么)
[KSampler]            采样器(核心去噪节点)
[VAE Decode]          把潜空间数据解码成图片
[Save Image]          保存到 output 目录

关键参数设置

Load Checkpoint:
  - ckpt_name: 选择你的 checkpoint 文件

正面提示词(Positive Prompt)示例:
  "1girl, solo, long hair, blue eyes, school uniform, 
   cherry blossom, spring, masterpiece, best quality"

负面提示词(Negative Prompt)示例:
  "bad quality, worst quality, blurry, deformed hands, 
   extra fingers, ugly, watermark, text"

KSampler:
  - seed: 随机数种子(固定种子=固定构图)
  - steps: 20-30(步数越多越精细,但更慢)
  - cfg: 7.0(提示词引导强度,5-12 之间调)
  - sampler_name: euler_ancestral(入门推荐)
  - scheduler: normal
  - denoise: 1.0(文生图固定 1.0)

Empty Latent Image:
  - width: 512, height: 512(SD 1.5)
  - width: 1024, height: 1024(SDXL)
  - batch_size: 1
  1. 点击 Queue Prompt(或按 Ctrl+Enter)开始生成
  2. 等待 10-30 秒,图片出现在 Save Image 节点和 output/ 目录

4.2 图生图(Image-to-Image)

图生图 = 以一张现有图片为基础,让 AI 在上面"再创作"。

与文生图的区别: - 文生图:从纯噪音开始(denoise=1.0) - 图生图:从你提供的图片开始,加一部分噪音再去噪(denoise=0.3-0.8)

操作步骤

  1. 在画布空白处右键 → Add Node → image → Load Image
  2. 添加节点 → latent → VAE Encode(把图片编码到潜空间)
  3. 连线:Load Image → VAE Encode → KSampler 的 latent_image 输入
  4. 删掉原来的 Empty Latent Image 节点
  5. 关键:把 KSampler 的 denoise 调低:
  6. 0.3-0.4:小改,保留原图大部分内容
  7. 0.5-0.7:中改,改变风格但保留构图
  8. 0.8-0.9:大改,只保留大致轮廓
[Load Image] → [VAE Encode] → [KSampler (denoise=0.5)] → [VAE Decode] → [Save Image]
                            [CLIP Text Encode] (正面/负面提示词)

4.3 ControlNet 姿势控制

ControlNet 让你用一张"控制图"来约束 AI 的构图,比如用火柴人骨架图控制人物姿势。

安装: 1. 通过 Manager 安装 comfyui_controlnet_aux(预处理器节点包) 2. 下载 ControlNet 模型,放入 models/controlnet/

推荐 ControlNet 模型(SD 1.5):

模型功能场景
control_v11p_sd15_openpose姿势控制控制人物动作
control_v11p_sd15_canny边缘线稿保持轮廓
control_v11f1p_sd15_depth深度图保持空间关系
control_v11p_sd15_lineart线稿上色线稿变彩图

操作步骤(以 OpenPose 姿势控制为例)

  1. 准备一张人物照片
  2. 添加节点:
    [Load Image] → [OpenPose Preprocessor] → [Apply ControlNet]
    
  3. OpenPose Preprocessor 会自动提取骨架图
  4. 添加 Load ControlNet Model 节点,选择 openpose 模型
  5. 连线到 Apply ControlNet,再接入 KSampler 的条件(conditioning)
[Load Checkpoint] → [CLIP Encode (正面)] → [Apply ControlNet] → [KSampler] → [VAE Decode] → [Save]
[Load Image] → [OpenPose预处理] ──────────────────┘
[Load ControlNet Model] ─────────────────────────┘

关键参数: - strength: 0.7-1.0(ControlNet 的影响力,1.0=完全遵守) - 如果姿势太僵硬,降低 strength 到 0.5-0.7

4.4 LoRA 风格微调

LoRA 是轻量级的"风格补丁",可以让模型学会特定的画风或角色。

操作步骤

  1. 下载 LoRA 文件(.safetensors),放入 models/loras/
  2. 在画布添加 Load LoRA 节点
  3. 插入到 Checkpoint 和 CLIP Encode 之间:
[Load Checkpoint] → [Load LoRA] → [CLIP Encode (正面)] → [KSampler] → ...
              选择 LoRA 文件
              strength_model: 0.6-0.8
              strength_clip: 0.6-0.8

参数说明: - strength_model: LoRA 对模型的影响强度(0=无效果,1=最强) - strength_clip: LoRA 对文字理解的影响强度 - 建议从 0.6 开始,效果不够再加到 0.8 - 超过 1.0 容易"过拟合"(画面扭曲)

多个 LoRA 叠加:串联多个 Load LoRA 节点即可,但每个的 strength 要适当降低。

4.5 高清放大(Upscale)

SD 直接出图分辨率有限(SD1.5: 512x512),想要高清大图需要放大。

方法一:Latent Upscale(简单)

[KSampler] → [Latent Upscale (2x)] → [KSampler (denoise=0.4-0.5)] → [VAE Decode] → [Save]

在潜空间放大后再做一次低强度去噪,补充细节。

方法二:使用 Upscale 模型(推荐,效果更好)

  1. 下载放大模型,放入 models/upscale_models/
  2. 推荐:4x-UltraSharp.pthRealESRGAN_x4plus.pth
  3. 添加节点:
[VAE Decode] → [Upscale Image (Using Model)] → [Save Image]
            [Load Upscale Model]

方法三:两步放大法(质量最佳)

先用 Upscale 模型放大,再 VAE Encode 回潜空间,做一次低 denoise 的 KSampler 补细节:

[VAE Decode] → [Upscale Model (2x)] → [VAE Encode] → [KSampler (denoise=0.3)] → [VAE Decode] → [Save]

五、8G 显存优化技巧

8G 显存可以流畅跑 SD 1.5,跑 SDXL 需要以下优化:

5.1 启动参数优化

编辑 run_nvidia_gpu.bat,在启动命令后加参数:

.\python_embeded\python.exe -s ComfyUI\main.py --lowvram --preview-method auto
参数效果适用场景
--lowvram按需加载模型到显存8G 显存跑 SDXL
--gpu-only全部放显存(默认)显存充足时
--fp16-vaeVAE 用半精度减少 VAE 解码时的显存峰值
--preview-method auto生成时实时预览不影响显存,体验好

8G 显存推荐组合--lowvram --fp16-vae --preview-method auto

5.2 推荐分辨率

模型推荐分辨率备注
SD 1.5512x512 / 512x768原生分辨率,显存友好
SDXL1024x1024 / 896x11528G 需开 --lowvram

千万别直接生成超过 1024x1024 的图,先生成小图再用 Upscale 放大。

5.3 其他省显存技巧

  1. batch_size 保持 1:一次只生成一张
  2. 关闭不用的程序:浏览器、游戏等占显存的程序关掉
  3. steps 不用太高:20-25 步对大多数场景足够,30 步以上提升很小
  4. 用 TAESD 替代标准 VAE:TAESD 是轻量 VAE,显存占用极低
  5. 下载 taesd_decoder.pth,放入 models/vae_approx/
  6. ControlNet 用完释放:不用 ControlNet 的工作流就别加载它

六、推荐模型列表

6.1 Checkpoint 模型

模型架构大小风格推荐度
DreamShaper 8SD 1.52GB通用/半写实入门首选
Realistic Vision 5.1SD 1.52GB写实人像真实感
MeinaMix V11SD 1.52GB动漫二次元首选
RevAnimated V2SD 1.52GB动漫/幻想风格多变
Juggernaut XL v9SDXL6.5GB写实通用SDXL 顶级
Animagine XL 3.1SDXL6.5GB动漫SDXL 动漫

6.2 LoRA 模型

模型用途大小触发词
Detail Tweaker LoRA增加/减少细节~140MB无需触发词,调 strength
Film Grain LoRA胶片颗粒感~50MBfilm grain
Pixel Art LoRA像素风格~50MBpixel art
Flat Color LoRA扁平插画风~50MBflat color
Add More Details补充画面细节~50MBdetailed

6.3 ControlNet 模型

模型功能推荐度
control_v11p_sd15_openpose姿势骨架控制必装
control_v11p_sd15_canny边缘线稿控制必装
control_v11f1p_sd15_depth深度图空间控制推荐
control_v11p_sd15_lineart线稿上色推荐
control_v11p_sd15_softedge软边缘控制可选
t2i-adapter_diffusers_xl_openposeSDXL 姿势控制SDXL 用户装

七、ComfyUI vs WebUI vs Fooocus 详细对比

维度ComfyUIWebUI (A1111/Forge)Fooocus
界面形式节点连线(像 Blender)表单填写极简聊天式
上手难度需要 1-2 小时理解节点开箱即用几乎零门槛
灵活度极高,可自由组合任意流程高,但受限于 UI 布局低,只能调少量参数
显存效率最优(智能队列调度)中等中等
工作流复用导出/导入 JSON,一键复现需要手动截图记参数不支持
API/自动化原生支持 API 调用有 API 但不如 ComfyUI 方便不支持
插件生态大量且快速增长最大最成熟很少
SDXL 支持完善完善完善
SD 3 / Flux 支持第一时间支持需要等适配部分支持
适合谁想深入理解 + 生产力用户想稳定出图的老用户纯体验/不想学习
社区趋势2024-2025 主流转向 ComfyUI存量用户为主小众

总结建议: - 纯体验 → Fooocus - 想学习原理 + 长期使用 → ComfyUI - 已经习惯 WebUI 的老用户 → WebUI Forge(A1111 的优化分支)


八、常见报错与解决

8.1 CUDA out of memory(显存不足)

原因:模型 + 图片分辨率超过显存容量。

解决: 1. 启动参数加 --lowvram 2. 降低分辨率(SD1.5 用 512x512,SDXL 用 1024x1024) 3. batch_size 改为 1 4. 关掉其他占显存的程序 5. 如果还不行,试试 --cpu-vae(VAE 解码用 CPU,慢但省显存)

8.2 Cannot find xxx model / checkpoint(找不到模型)

原因:模型文件没放对目录,或文件名有问题。

解决: 1. 确认文件放在 ComfyUI/models/checkpoints/ 下 2. 文件名不要有中文或特殊字符 3. 确认文件完整下载(没有中断),检查文件大小 4. 点击 Load Checkpoint 节点的刷新按钮

8.3 No module named 'xxx'(缺少 Python 包)

原因:某个插件需要额外的 Python 依赖。

解决

# 进入 ComfyUI 的 Python 环境
cd D:\ComfyUI_windows_portable
.\python_embeded\python.exe -m pip install 缺少的包名

或者通过 Manager → Install Missing → 自动安装缺失依赖。

8.4 RuntimeError: Expected all tensors on same device(设备不匹配)

原因:部分数据在 GPU,部分在 CPU,通常是 lowvram 模式下的兼容问题。

解决: 1. 更新 ComfyUI 到最新版 2. 更新出问题的插件 3. 换用 --lowvram 或去掉 --cpu 参数 4. 检查工作流中是否混用了不同精度的模型

8.5 Connection error / 打开浏览器白屏

原因:ComfyUI 服务没有正常启动。

解决: 1. 检查命令行窗口是否有报错信息 2. 确认端口 8188 没被占用:netstat -ano | findstr 8188 3. 如果端口被占用,启动时加 --port 8189 4. 确认防火墙没有拦截

8.6 NaN values in output(输出中出现 NaN,图片全黑/全灰)

原因:数值溢出,通常是 CFG 过高或模型不兼容。

解决: 1. 把 CFG Scale 降到 5-7 2. 换一个采样器(试试 eulerdpmpp_2m) 3. 如果用了 LoRA,降低 LoRA strength 4. 检查 VAE 是否匹配(有些模型需要特定 VAE)

8.7 WorkflowNodeNotFound(工作流中有未安装的节点)

原因:导入的工作流用了你没装的插件节点。

解决: 1. 打开 Manager → Install Missing Custom Nodes 2. Manager 会自动识别缺失的节点并提供安装选项 3. 安装后重启 ComfyUI


九、常用节点速查表

9.1 基础节点

节点名功能常用参数
Load Checkpoint加载主模型ckpt_name
CLIP Text Encode文字→条件向量text(正面/负面提示词)
Empty Latent Image创建空白潜空间图width, height, batch_size
KSampler核心采样/去噪seed, steps, cfg, sampler, denoise
VAE Decode潜空间→图片
VAE Encode图片→潜空间
Save Image保存图片filename_prefix
Preview Image预览(不保存)

9.2 模型相关

节点名功能
Load LoRA加载 LoRA 模型
Load ControlNet Model加载 ControlNet 模型
Apply ControlNet将 ControlNet 条件应用到提示词
Load VAE加载独立 VAE
Load Upscale Model加载放大模型

9.3 图像处理

节点名功能
Load Image加载本地图片
Image Scale / Resize缩放图片
Upscale Image (Using Model)用 AI 模型放大图片
Image Composite图片合并/拼接
Image Batch批量处理多张图

9.4 条件控制

节点名功能
CLIP Set Last Layer设置 CLIP 使用哪一层(-1 或 -2)
Conditioning Combine合并多个条件
Conditioning Set Area限制条件到特定区域(区域提示词)
ControlNet Apply应用 ControlNet

9.5 常用快捷键

快捷键功能
Ctrl + Enter开始生成(Queue Prompt)
Ctrl + Shift + Enter队列生成(加入队列但不打断当前任务)
Ctrl + Z撤销
Ctrl + S保存工作流
Ctrl + O打开/加载工作流
Space + 拖拽移动画布
双击空白处快速搜索添加节点
右键打开节点菜单

十、延伸学习资源

10.1 官方与核心文档

  • ComfyUI GitHub:https://github.com/comfyanonymous/ComfyUI
  • ComfyUI 示例工作流:https://comfyanonymous.github.io/ComfyUI_examples/
  • Stable Diffusion 官方文档:https://stability.ai

10.2 工作流分享平台

  • OpenArthttps://openart.ai/workflows(大量 ComfyUI 工作流模板)
  • Civitaihttps://civitai.com(模型 + 工作流社区)
  • ComfyWorkflowshttps://comfyworkflows.com(专门的工作流分享站)

10.3 中文学习资源

  • B 站搜索 "ComfyUI 入门",推荐 UP 主:赛博佛祖、Nenly、秋叶aaaki
  • 知乎专栏 "Stable Diffusion 入门"
  • 微信公众号:AI绘画指南

10.4 进阶方向

方向内容难度
AnimateDiff用 SD 生成短视频/动画中等
IP-Adapter用参考图控制风格/人物一致性中等
InstantID人脸一致性生成中等
Inpainting局部重绘(修改图片某个区域)简单
Flux 模型新一代基础模型,画质飞跃中等(需更多显存)
ComfyUI API用代码调用 ComfyUI 批量出图需编程基础
训练自己的 LoRA用自己的图片训练风格/角色进阶

附:快速上手路线图

第 1 步:安装便携版 + 下载 DreamShaper 8
第 2 步:跑通默认工作流(文生图)
第 3 步:装 Manager,学会安装插件
第 4 步:试图生图(调 denoise 感受变化)
第 5 步:试 LoRA(找一个喜欢的风格加载)
第 6 步:试 ControlNet(用 OpenPose 控制姿势)
第 7 步:学会 Upscale 放大出高清图
第 8 步:去 OpenArt 下载别人的工作流学习

每一步花 30 分钟到 1 小时,一个周末就能入门。


文档版本:v1.0 | 最后更新:2025年5月 | 适用 ComfyUI 版本:0.2.x+