Chapter 02

ComfyUI 安装与第一次跑图

装好、跑通、看懂一个最小工作流——这一章目标很具体。我们不堆理论,直接把你从"零"带到"看着第一张图从自己电脑里渲染出来"。

一、三种安装方式,按你的平台选

方式 A:官方 Desktop App(推荐 2025 新手)

2025 年起 Comfy 团队推出了 ComfyUI Desktop——一个打包好的 Mac/Windows 客户端,自动装 Python 虚拟环境、自动挑合适的 torch、自带 Manager,小白友好度≈WebUI 一键包。

方式 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。

二、装 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 的三个核心用法:

三、下一个模型:SDXL Base 1.0

全新 ComfyUI 没有任何模型——启动会提示"未找到 checkpoint"。去下一个:

下完放到:

ComfyUI/ ├── models/ │ ├── checkpoints/ ← 大模型 .safetensors 放这里 │ ├── vae/ ← 独立 VAE │ ├── loras/ ← LoRA │ ├── embeddings/ ← Textual Inversion │ ├── controlnet/ ← ControlNet 模型 │ └── upscale_models/ ← 超分模型 ├── custom_nodes/ │ └── ComfyUI-Manager/ ├── main.py └── ...
模型目录可以"软链接"复用
如果你同时用 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/)或仅预览不保存。

五、连线操作:三条硬规则

  1. 同色才能连:每种输出/输入都有颜色——紫色 MODEL、黄色 CLIP、粉色 VAE、桃色 LATENT、蓝色 IMAGE、橙色 CONDITIONING。强行拖不同色根本连不上。
  2. 每个输入槽只能接一条线,输出槽可以分叉多条。
  3. 断开连线:在输入槽那端拖拽到空白处释放。

六、点 Queue Prompt,看图出现

右侧面板点 Queue Prompt(或快捷键 Ctrl+Enter)——

这叫"节点缓存"
——ComfyUI 的核心性能优势。WebUI 每次 generate 都从头走,ComfyUI 只算变了的部分。你修 prompt 时,前面的 Load Checkpoint / VAE 整个节点跳过,直接从 CLIP Text Encode 开始——体感快几倍。

七、第一张图的"甜点配方"(SDXL)

参数推荐值说明
分辨率1024×1024 / 832×1216 / 1216×832SDXL 训练就是这几个比例,其他值质量骤降
steps25-3030 以上收益递减
cfg5-7大于 8 画面容易过饱和、手部扭曲
sampler_namedpmpp_2m / dpmpp_sdedpmpp_2m 是通用默认王
schedulerkarras几乎永远选它
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

几个经验:

九、保存/加载工作流

ComfyUI 的工作流本质是 JSON:

工作流 JSON 有两种格式
workflow.json——原生工作流,含所有 UI 节点,ComfyUI 内部用
workflow_api.json——API 格式,给后端 HTTP 调用用(见第 11 章)
开发时先保存一份 workflow(可视化调),再 File → "Save (API Format)" 导出 API 版,两者是一对。

十、常见报错与解决

报错原因解法
CUDA out of memoryVRAM 不够启动加 --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 的核心之一。