一、三种安装方式,按你的平台选
方式 A:官方 Desktop App(推荐 2025 新手)
2025 年起 Comfy 团队推出了 ComfyUI Desktop——一个打包好的 Mac/Windows 客户端,自动装 Python 虚拟环境、自动挑合适的 torch、自带 Manager,小白友好度≈WebUI 一键包。
- 下载:comfy.org/download
- 第一次启动会问"模型装哪个目录"——给一个大硬盘位置(例如 D:\ComfyUI-Models),后面所有 checkpoint/LoRA 都丢这
- 有 Python 环境的老用户可以选 "use existing" 复用已有虚拟环境,避免双份 torch
方式 B:Git 源码安装(推荐想折腾/Linux 服务器)
# 1. 拉源码
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
# 2. 建虚拟环境(强烈建议用 uv,装包快十倍)
uv venv --python 3.11
source .venv/bin/activate # Win: .venv\Scripts\activate
# 3. 装 PyTorch(先挑对应你显卡的版本,别无脑 pip install torch)
# NVIDIA CUDA 12.4:
uv pip install torch torchvision --index-url https://download.pytorch.org/whl/cu124
# AMD ROCm(Linux):
# uv pip install torch torchvision --index-url https://download.pytorch.org/whl/rocm6.1
# Apple Silicon:
# uv pip install torch torchvision # 原生 MPS 加速,不用额外参数
# 4. 装 ComfyUI 依赖
uv pip install -r requirements.txt
# 5. 启动
python main.py # 默认 http://127.0.0.1:8188
方式 C:Docker(适合云端/WSL)
# yanwk/comfyui-boot 是主流一键镜像
docker run -it --rm \
--gpus all \
-p 8188:8188 \
-v $PWD/storage:/root \
yanwk/comfyui-boot:cu124
Mac 用户注意
Apple Silicon 的 MPS 后端已经能跑 SDXL,但Flux.1 dev 需要 16GB+ 统一内存,M1/M2 8GB 机器基本跑不动完整 Flux(GGUF 量化版可以试)。4K 视频模型必用 NVIDIA。
Apple Silicon 的 MPS 后端已经能跑 SDXL,但Flux.1 dev 需要 16GB+ 统一内存,M1/M2 8GB 机器基本跑不动完整 Flux(GGUF 量化版可以试)。4K 视频模型必用 NVIDIA。
二、装 ComfyUI-Manager(必装!)
原生 ComfyUI 的节点就那些,真正的生态在"custom nodes"(第三方节点)里——ControlNet、IP-Adapter、视频节点都是 custom nodes。ComfyUI-Manager 是用来装/管/升级这些节点的图形工具,相当于 ComfyUI 的"应用商店"。
cd ComfyUI/custom_nodes
git clone https://github.com/ltdrdata/ComfyUI-Manager.git
# 重启 ComfyUI,右上角会出现 "Manager" 按钮
Manager 的三个核心用法:
- Install Custom Nodes → 按关键词搜装节点包(如 "controlnet"、"ipadapter")
- Install Missing Custom Nodes → 导入别人的工作流时缺节点?一键补齐
- Install Models → 直接从 Manager 下载 checkpoint/LoRA/ControlNet,自动放对目录
三、下一个模型:SDXL Base 1.0
全新 ComfyUI 没有任何模型——启动会提示"未找到 checkpoint"。去下一个:
- 官方 SDXL Base:HuggingFace 的
sd_xl_base_1.0.safetensors(6.6GB) - 或者社区微调,Civitai 上 Juggernaut XL v9 / DreamShaper XL 质量都比 Base 好
下完放到:
ComfyUI/
├── models/
│ ├── checkpoints/ ← 大模型 .safetensors 放这里
│ ├── vae/ ← 独立 VAE
│ ├── loras/ ← LoRA
│ ├── embeddings/ ← Textual Inversion
│ ├── controlnet/ ← ControlNet 模型
│ └── upscale_models/ ← 超分模型
├── custom_nodes/
│ └── ComfyUI-Manager/
├── main.py
└── ...
模型目录可以"软链接"复用
如果你同时用 WebUI 和 ComfyUI,不想每个模型存两份,可以在 ComfyUI 根目录的
如果你同时用 WebUI 和 ComfyUI,不想每个模型存两份,可以在 ComfyUI 根目录的
extra_model_paths.yaml.example 改个名字去掉 .example,写入 WebUI 的路径,ComfyUI 就会自动扫到 WebUI 的模型。省一大片硬盘。
四、第一张图:SDXL 文生图最小工作流
打开 http://127.0.0.1:8188,ComfyUI 默认就有一个最小工作流。节点连接关系是这样的:
┌──────────────────────┐
│ Load Checkpoint │ ── MODEL ──┐
│ (选 sd_xl_base.safetensors)│ │ ┌─────────────────────┐
│ │ ── CLIP ───┼──▶ CLIP Text Encode(Positive)─▶ CONDITIONING(+)─┐
│ │ │ └─────────────────────┘ │
│ │ │ │
│ │ │ ┌─────────────────────┐ │
│ │ └──▶ CLIP Text Encode(Negative)─▶ CONDITIONING(-)─┤
│ │ ── VAE ────────────┐ └─────────────────────┘ │
└──────────────────────┘ │ │
│ ▼
┌──────────────────────┐ │ ┌─────────────────────┐
│ Empty Latent Image │ ── LATENT ──────────▶│ KSampler │
│ (宽 1024 高 1024,1 张)│ │ │ steps=25, cfg=7 │
└──────────────────────┘ │ │ sampler=dpmpp_2m │
│ │ scheduler=karras │
│ │ seed=随机 │
│ └─────────────────────┘
│ │
│ ▼ LATENT(去完噪声的)
│ ┌─────────────────────┐
└────▶│ VAE Decode │──▶ IMAGE ──▶ Save Image
└─────────────────────┘
拆解每个节点在干什么:
Load Checkpoint
读取你下载的 .safetensors 文件,同时输出三样东西:MODEL(U-Net)、CLIP(Text Encoder)、VAE(编解码器)。SDXL 的这个节点内部会处理双 CLIP-L/G。
CLIP Text Encode(Prompt)
把文字 prompt 编码成向量(CONDITIONING)。正反 prompt 各一个,喂给 KSampler 的不同输入槽。
Empty Latent Image
"空画布"——创建一个全零(实际是随机噪声种子填)的 latent tensor,尺寸决定最终出图分辨率。SDXL 甜点是 1024×1024,SD1.5 是 512×512。batch_size 控制一次跑几张。
KSampler
主角——执行实际的 N 步去噪。关键参数:
steps(去噪步数,20-30)、cfg(文字引导强度,SDXL 5-8,Flux 1.0-3.5)、sampler_name(见第 4 章)、scheduler(调度器)、seed(随机种子)、denoise(1.0=全新生成,<1 用于 img2img)。VAE Decode
把 KSampler 输出的 latent 解码回像素图像(IMAGE)。
Save Image / Preview Image
保存到磁盘(
ComfyUI/output/)或仅预览不保存。五、连线操作:三条硬规则
- 同色才能连:每种输出/输入都有颜色——紫色 MODEL、黄色 CLIP、粉色 VAE、桃色 LATENT、蓝色 IMAGE、橙色 CONDITIONING。强行拖不同色根本连不上。
- 每个输入槽只能接一条线,输出槽可以分叉多条。
- 断开连线:在输入槽那端拖拽到空白处释放。
六、点 Queue Prompt,看图出现
右侧面板点 Queue Prompt(或快捷键 Ctrl+Enter)——
- ComfyUI 会从终点节点(Save Image)往回追溯,构建一个 DAG
- 按拓扑序执行每个节点,完成后把输出缓存住
- 第一次运行要加载 checkpoint,SDXL 要 10-30 秒(读 6GB)
- 之后每次改参数再跑,只有变动的下游节点会重算——所以同一个 prompt 改 seed 跑 10 张,每张只花采样时间,没有重新加载模型的开销
这叫"节点缓存"
——ComfyUI 的核心性能优势。WebUI 每次 generate 都从头走,ComfyUI 只算变了的部分。你修 prompt 时,前面的 Load Checkpoint / VAE 整个节点跳过,直接从 CLIP Text Encode 开始——体感快几倍。
——ComfyUI 的核心性能优势。WebUI 每次 generate 都从头走,ComfyUI 只算变了的部分。你修 prompt 时,前面的 Load Checkpoint / VAE 整个节点跳过,直接从 CLIP Text Encode 开始——体感快几倍。
七、第一张图的"甜点配方"(SDXL)
| 参数 | 推荐值 | 说明 |
|---|---|---|
| 分辨率 | 1024×1024 / 832×1216 / 1216×832 | SDXL 训练就是这几个比例,其他值质量骤降 |
| steps | 25-30 | 30 以上收益递减 |
| cfg | 5-7 | 大于 8 画面容易过饱和、手部扭曲 |
| sampler_name | dpmpp_2m / dpmpp_sde | dpmpp_2m 是通用默认王 |
| scheduler | karras | 几乎永远选它 |
| seed | -1(随机)/ 固定值 | 固定 seed + 固定参数 = 可复现 |
八、Prompt 起步模板
正向 prompt:
a majestic siberian husky wearing round glasses, sitting on a wooden
desk, bookshelf background, soft window light, photorealistic,
detailed fur texture, shallow depth of field, 50mm lens
负向 prompt:
blurry, lowres, bad anatomy, extra fingers, watermark, text, jpeg
artifacts, deformed, ugly, worst quality
几个经验:
- 主体 → 姿态 → 环境 → 光照 → 风格 → 技术参数 的顺序,信息越前模型越重视
- 反向 prompt 不是越长越好——堆太多反向会压缩正向空间。SDXL 其实反向很短就够
- Flux 完全不用负向 prompt(CFG=1 没有 guidance 可用)——这是 Flux 和 SDXL 最大的心智差
九、保存/加载工作流
ComfyUI 的工作流本质是 JSON:
- Save:右侧面板导出
.json(包含所有节点 + 连线 + 参数) - Load:拖 .json 到画布,或选 Load 按钮
- PNG 里也有工作流:ComfyUI 生成的每张 PNG 都把工作流 metadata 嵌在文件里——拖回画布就能完整还原那张图的工作流。这是 ComfyUI 最好的"作品分享"方式。
工作流 JSON 有两种格式
①
②
开发时先保存一份 workflow(可视化调),再 File → "Save (API Format)" 导出 API 版,两者是一对。
①
workflow.json——原生工作流,含所有 UI 节点,ComfyUI 内部用
②
workflow_api.json——API 格式,给后端 HTTP 调用用(见第 11 章)
开发时先保存一份 workflow(可视化调),再 File → "Save (API Format)" 导出 API 版,两者是一对。
十、常见报错与解决
| 报错 | 原因 | 解法 |
|---|---|---|
| CUDA out of memory | VRAM 不够 | 启动加 --lowvram / 减 batch_size / 用 GGUF 量化 |
| Error: Missing Node Types | 导入的 JSON 依赖 custom node 没装 | Manager → Install Missing Custom Nodes |
| Prompt outputs failed validation | 节点输入输出没连上 | 看红框节点,补连线 |
| 黑图 / 纯绿图 | VAE 坏或 fp16 数值溢出 | 换 VAE;或 --force-fp16 改 bf16 |
| 极慢(> 1min 一张 SDXL) | 没装 xformers / 没用 GPU | 检查启动日志是否 "Using pytorch cross attention" |
十一、本章小结
记住:
① 2025 年推荐 Desktop App 装;折腾党 git clone + uv venv 清爽。Manager 必装。
② 文生图四大件:Load Checkpoint / CLIP Text Encode(正反) / Empty Latent / KSampler + VAE Decode + Save Image。
③ SDXL 甜点:1024 分辨率 + 25 步 + cfg 6 + dpmpp_2m + karras。
④ 工作流 = JSON,PNG 自带工作流,方便分享与复现——这是 ComfyUI 胜过 WebUI 的核心之一。
① 2025 年推荐 Desktop App 装;折腾党 git clone + uv venv 清爽。Manager 必装。
② 文生图四大件:Load Checkpoint / CLIP Text Encode(正反) / Empty Latent / KSampler + VAE Decode + Save Image。
③ SDXL 甜点:1024 分辨率 + 25 步 + cfg 6 + dpmpp_2m + karras。
④ 工作流 = JSON,PNG 自带工作流,方便分享与复现——这是 ComfyUI 胜过 WebUI 的核心之一。