ComfyUI 是目前最强大的 AI 绘图工作流工具。与 Midjourney 或 Stable Diffusion WebUI 不同,ComfyUI 采用节点式工作流,你可以像搭积木一样自由组合模型加载、提示词编码、采样器、VAE解码等模块,实现完全可控的图像生成管道。
本文解决以下问题:
| 特性 | ComfyUI | Automatic1111 WebUI | Midjourney | |------|---------|---------------------|------------| | 控制粒度 | 节点级,想搭什么搭什么 | 滑块级 | 提示词级 | | 工作流可复用 | ✅ 保存/加载JSON | ❌ | ❌ | | 批量生成 | ✅ 强大,支持并行 | 一般 | 需付费 | | 上手难度 | 高(但更强大) | 低 | 低 | | 硬件要求 | 中等(4GB显存可用) | 中等 | 云端,无本地要求 | | 自定义空间 | 无限 | 受限 | 无法自定义 |
结论: 如果你只是偶尔出图,WebUI 够用;如果你要做批量生产、自定义流程、批量海报,ComfyUI 是唯一选择。
步骤1:下载 ComfyUI 便携版
下载地址(官方GitHub):
``
https://github.com/comfyanonymous/ComfyUI/releases
`
找到 ComfyUI_windows_portable_nvidia.7z 下载(约 500MB)。
> 如果你使用 AMD 显卡,下载 ComfyUI_windows_portable_amd.7z。
> 如果你没有强力独显,下载 CPU 版本虽然慢但能跑。
步骤2:解压到指定目录
`bash
`假设解压到 D:\AI\ComfyUI 目录
解压后目录结构:
D:\AI\ComfyUI\
├── ComfyUI/
│ ├── main.py # 主程序入口
│ ├── launch.py # 启动脚本
│ ├── models/ # 模型存放目录
│ │ ├── checkpoints/ # 基础大模型(SDXL/SD1.5等)
│ │ ├── vae/ # VAE模型
│ │ └── controlnet/ # ControlNet模型
│ └── custom_nodes/ # 第三方节点插件
└── run_nvidia_gpu.bat # NVIDIA GPU启动脚本
步骤3:下载第一个基础模型
ComfyUI 本身不包含模型,需要自己下载。最常用的是 SD1.5 和 SDXL:
| 模型 | 适用场景 | 大小 | 推荐下载 |
|------|----------|------|----------|
| v1-5-pruned-emaonly.safetensors | 通用文生图,兼容性最好 | 3.9GB | ✅ |
| sd_xl_base_1.0.safetensors | 高质量画作,1024×1024 | 6.5GB | ✅ |
| sd_xl_refiner_1.0.safetensors | SDXL细化器 | 6.5GB | 可选 |
下载后将 .safetensors 文件放入:
`
D:\AI\ComfyUI\ComfyUI\models\checkpoints\
`
步骤4:运行 ComfyUI
双击 run_nvidia_gpu.bat,等待一会儿,你会看到类似输出:
`
[Server started] binding to prefix /prompt
Windows版本,已找到NVIDIA CUDA
VRAM: 8192 MB
自定义节点目录: ...\ComfyUI\custom_nodes\
`
然后打开浏览器访问:http://127.0.0.1:8188
ComfyUI 界面主要分四个区域:
`
┌─────────────────────────────────────────────────────┐
│ Node Tree(节点树侧边栏) │ Canvas(画布区域) │
│ │ │
│ 搜索节点名称找到对应模块 │ 节点在这里连接成工作流│
│ │ │
├─────────────────────────────┴───────────────────────┤
│ Queue(生成队列) │ Settings(设置) │
└────────────────────────────────────────────────────┘
`
| 节点名称 | 作用 | 常见参数 |
|----------|------|----------|
| CheckpointLoaderSimple | 加载基础大模型(SD1.5/SDXL等) | 模型路径 |
| CLIP Text Encode | 把文字转成模型能理解的向量(正向/负向提示词各一个) | prompt文本 |
| KSampler | 真正的采样降噪过程,决定图像怎么生成 | seed, steps, cfg, sampler, scheduler |
| VAEDecode | 把潜空间数据解码成真实图片 | 节点输入 |
| SaveImage | 将图片保存到输出目录 | 无 |
| LoadImage | 加载本地图片 | 图片路径 |
| ControlNet | 使用 ControlNet 控制生成 | 控制图+预处理 |
在空白画布上,右键 → Add Node → Loader → Checkpoint Loader Simple
点击 ckpt_name 右侧的下拉框,选择你放入的模型(如 v1-5-pruned-emaonly.safetensors)。
右键 → Add Node → Conditioning → CLIP Text Encode (Prompt)
这会把你的文字变成模型能理解的语言向量。
示例正向提示词:
`
1girl, detailed portrait, golden hour lighting, soft focus, cinematic, 8k, masterpiece
`
示例负向提示词:
`
low quality, worst quality, blurry, text, watermark, signature, deformed
`
右键 → Add Node → Sampling → KSampler
这是最核心的参数区:
| 参数 | 含义 | 推荐值(新手) |
|------|------|----------------|
| seed | 随机种子,固定seed可以复现图 | 随机或固定 |
| steps | 采样步数,越多越精细但越慢 | 20~30 |
| cfg | 提示词引导强度,7左右最均衡 | 7 |
| sampler_name | 采样算法,影响生成风格 | euler_a(快速多样)|
| scheduler | 调度器,影响步间衰减 | normal |
右键 → Add Node → Image → VAE Decode
KSampler 输出的是"潜空间数据",VAE Decode 将其解码成真实像素图片。
再添加一个保存节点:
右键 → Add Node → Image → Save Image
用鼠标拖拽,依次连接:
`
CheckpointLoader → CLIP Text Encode (Positive) ──┐
├── KSampler → VAEDecode → SaveImage
CheckpointLoader → CLIP Text Encode (Negative) ──┘
`
> 提示: CLIP Text Encode 的 conditioning 输出(不是 clip 输出)连接到 KSampler。
点击右上角 Queue Prompt 按钮,右侧会显示进度。
生成完成后,图片自动显示在画布上,同时保存在:
`
D:\AI\ComfyUI\ComfyUI\output\
`
图生图让AI在已有图片的基础上重新创作。
右键 → Add Node → Image → LoadImage
点击图片区域,上传一张本地图片。
右键 → Add Node → Conditioning → VAE Encode
连接:LoadImage → VAE Encode → KSampler
这样 KSampler 就会在你提供的图片基础上"降噪",而不是从纯噪声开始。
在 KSampler 上找到 denoise 参数(有些版本是 strength):
| 值 | 效果 | |----|------| | 0.0 | 不改变原图(等于白做了) | | 0.3 | 小幅度修改,保持原图结构 | | 0.5~0.7 | 中等改动,风格变化明显 | | 0.8~1.0 | 几乎重画,保留构图 |
建议从 0.5 开始试,根据效果调整。
ComfyUI 最大的优势是工作流可分享。别人分享一个 JSON 文件,你导入后一键复现。
如果工作流用了你没下载的模型,ComfyUI 会提示:
`
models/checkpoints/xxx.safetensors not found. Download from: [链接]
`
点击提示中的链接下载,放入 models/checkpoints/ 目录后重试。
| 网站 | 特点 | |------|------| | [ComfyWorkflows.com](https://comfhyworkflows.com) | 最大工作流社区,免费 | | [Civitai](https://civitai.com) | 模型+工作流,有评分 | | [OpenArt.ai](https://openart.ai) | Prompt逆向工程工具 |
原因: 显存不够,通常是模型太大或 batch 太大。
解决:
1. 减小图片分辨率(建议从 512×512 开始)
2. 使用更小的模型(如 SD1.5 而非 SDXL)
3. 关闭其他占用GPU的程序
4. 在 Settings 里开启 VRAM mode: moderate
`python
`手动清显存(在Python节点中)
import torch
torch.cuda.empty_cache()
解决:
使用 Hugging Face 镜像站下载:
`bash
`替换镜像
export HF_ENDPOINT=https://hf-mirror.com
然后重新下载
原因: 类型不匹配。conditioning 和 latent 不能混连。
解决: 检查两个节点的输出/输入类型是否一致。鼠标悬停在连接点上会显示类型提示。
原因: output 目录路径包含中文/空格。
解决: 把 ComfyUI 移到不含中文的路径(如 D:\AI\ComfyUI 而非 D:\AI工具\ComfyUI)。
在 KSampler 上设置 batch_size(如果有这个选项),或使用 Queue 队列:
`
`在comfyui命令行中设置队列大小
python main.py --queue-size 10
别把所有模型都塞进 checkpoints 目录,使用模型路径映射:
在 ComfyUI\extra_model_paths.yaml 中配置:
`yaml
`共享其他WebUI的模型目录,避免重复下载
base_path: D:\AI\SD_WebUI
forks:
SD WebUI:
checkpoints: models/Stable-diffusion
vae: models/VAE
SDXL 官方推荐配置:
如果你是 4GB 显存老显卡,用 SD1.5 是更务实的选择。
1. ComfyUI 核心逻辑: 节点 → 连线 → 生成,任何模块都可以替换 2. 安装关键: 下载正确版本的 portable 包 + 放入至少一个 .safetensors` 模型 3. 上手路径: 先跑通文生图 → 再试图生图 → 最后导入别人工作流学习 4. 显存不够先别上 SDXL,SD1.5 够用且快 5. 工作流 JSON 很重要,养成每次调试成功后保存的习惯
> 下一篇预告:《用 ComfyUI + ControlNet 精准控制AI绘图的构图》