>
← 返回投肯智能知识库首页
首页 / 技术教程 / ComfyUI 完全指南

ComfyUI 完全指南:从安装到第一个AI绘图工作流

📖 40分钟更新:2026-05-24

导读

ComfyUI 是目前最强大的 AI 绘图工作流工具。与 Midjourney 或 Stable Diffusion WebUI 不同,ComfyUI 采用节点式工作流,你可以像搭积木一样自由组合模型加载、提示词编码、采样器、VAE解码等模块,实现完全可控的图像生成管道。

本文解决以下问题:


1. ComfyUI vs WebUI vs Midjourney:选哪个?

| 特性 | ComfyUI | Automatic1111 WebUI | Midjourney | |------|---------|---------------------|------------| | 控制粒度 | 节点级,想搭什么搭什么 | 滑块级 | 提示词级 | | 工作流可复用 | ✅ 保存/加载JSON | ❌ | ❌ | | 批量生成 | ✅ 强大,支持并行 | 一般 | 需付费 | | 上手难度 | 高(但更强大) | 低 | 低 | | 硬件要求 | 中等(4GB显存可用) | 中等 | 云端,无本地要求 | | 自定义空间 | 无限 | 受限 | 无法自定义 |

结论: 如果你只是偶尔出图,WebUI 够用;如果你要做批量生产、自定义流程、批量海报,ComfyUI 是唯一选择。


2. 安装ComfyUI(Windows NVIDIA GPU)

2.1 前置条件

2.2 安装步骤

步骤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


3. 界面介绍

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 控制生成 | 控制图+预处理 |


4. 第一个工作流:文生图(详细步骤)

4.1 加载基础节点

在空白画布上,右键 → Add Node → Loader → Checkpoint Loader Simple

点击 ckpt_name 右侧的下拉框,选择你放入的模型(如 v1-5-pruned-emaonly.safetensors)。

4.2 添加提示词编码器

右键 → 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 `

4.3 添加采样器

右键 → Add Node → Sampling → KSampler

这是最核心的参数区:

| 参数 | 含义 | 推荐值(新手) | |------|------|----------------| | seed | 随机种子,固定seed可以复现图 | 随机或固定 | | steps | 采样步数,越多越精细但越慢 | 20~30 | | cfg | 提示词引导强度,7左右最均衡 | 7 | | sampler_name | 采样算法,影响生成风格 | euler_a(快速多样)| | scheduler | 调度器,影响步间衰减 | normal |

4.4 添加解码和保存

右键 → Add Node → Image → VAE Decode

KSampler 输出的是"潜空间数据",VAE Decode 将其解码成真实像素图片。

再添加一个保存节点:

右键 → Add Node → Image → Save Image

4.5 连接节点

用鼠标拖拽,依次连接:

` CheckpointLoader → CLIP Text Encode (Positive) ──┐ ├── KSampler → VAEDecode → SaveImage CheckpointLoader → CLIP Text Encode (Negative) ──┘ `

> 提示: CLIP Text Encode 的 conditioning 输出(不是 clip 输出)连接到 KSampler。

4.6 生成

点击右上角 Queue Prompt 按钮,右侧会显示进度。

生成完成后,图片自动显示在画布上,同时保存在: ` D:\AI\ComfyUI\ComfyUI\output\ `


5. 工作流进阶:图生图(img2img)

图生图让AI在已有图片的基础上重新创作。

5.1 添加 LoadImage 节点

右键 → Add Node → Image → LoadImage

点击图片区域,上传一张本地图片。

5.2 添加 VAE Encode(使用已有图片的潜空间)

右键 → Add Node → Conditioning → VAE Encode

连接:LoadImage → VAE Encode → KSampler

这样 KSampler 就会在你提供的图片基础上"降噪",而不是从纯噪声开始。

5.3 调整降噪强度(Denoise)

在 KSampler 上找到 denoise 参数(有些版本是 strength):

| 值 | 效果 | |----|------| | 0.0 | 不改变原图(等于白做了) | | 0.3 | 小幅度修改,保持原图结构 | | 0.5~0.7 | 中等改动,风格变化明显 | | 0.8~1.0 | 几乎重画,保留构图 |

建议从 0.5 开始试,根据效果调整。


6. 加载别人的工作流

ComfyUI 最大的优势是工作流可分享。别人分享一个 JSON 文件,你导入后一键复现。

6.1 导入方法

6.2 自动下载缺失模型

如果工作流用了你没下载的模型,ComfyUI 会提示: ` models/checkpoints/xxx.safetensors not found. Download from: [链接] `

点击提示中的链接下载,放入 models/checkpoints/ 目录后重试。

6.3 热门工作流分享网站

| 网站 | 特点 | |------|------| | [ComfyWorkflows.com](https://comfhyworkflows.com) | 最大工作流社区,免费 | | [Civitai](https://civitai.com) | 模型+工作流,有评分 | | [OpenArt.ai](https://openart.ai) | Prompt逆向工程工具 |


7. 常见报错与解决

报错1:CUDA out of memory

原因: 显存不够,通常是模型太大或 batch 太大。

解决: 1. 减小图片分辨率(建议从 512×512 开始) 2. 使用更小的模型(如 SD1.5 而非 SDXL) 3. 关闭其他占用GPU的程序 4. 在 Settings 里开启 VRAM mode: moderate

`python

手动清显存(在Python节点中)

import torch torch.cuda.empty_cache() `

报错2:模型文件下载慢/失败

解决: 使用 Hugging Face 镜像站下载: `bash

替换镜像

export HF_ENDPOINT=https://hf-mirror.com

然后重新下载

`

报错3:节点灰色无法连接

原因: 类型不匹配。conditioning 和 latent 不能混连。

解决: 检查两个节点的输出/输入类型是否一致。鼠标悬停在连接点上会显示类型提示。

报错4:SaveImage 保存了但看不见

原因: output 目录路径包含中文/空格。

解决: 把 ComfyUI 移到不含中文的路径(如 D:\AI\ComfyUI 而非 D:\AI工具\ComfyUI)。


8. 性能优化建议

8.1 批量生成配置

在 KSampler 上设置 batch_size(如果有这个选项),或使用 Queue 队列:

`

在comfyui命令行中设置队列大小

python main.py --queue-size 10 `

8.2 模型管理技巧

别把所有模型都塞进 checkpoints 目录,使用模型路径映射:

在 ComfyUI\extra_model_paths.yaml 中配置: `yaml

共享其他WebUI的模型目录,避免重复下载

base_path: D:\AI\SD_WebUI forks: SD WebUI: checkpoints: models/Stable-diffusion vae: models/VAE `

8.3 使用 SDXL 的最低配置

SDXL 官方推荐配置:

如果你是 4GB 显存老显卡,用 SD1.5 是更务实的选择。


总结

1. ComfyUI 核心逻辑: 节点 → 连线 → 生成,任何模块都可以替换 2. 安装关键: 下载正确版本的 portable 包 + 放入至少一个 .safetensors` 模型 3. 上手路径: 先跑通文生图 → 再试图生图 → 最后导入别人工作流学习 4. 显存不够先别上 SDXL,SD1.5 够用且快 5. 工作流 JSON 很重要,养成每次调试成功后保存的习惯

> 下一篇预告:《用 ComfyUI + ControlNet 精准控制AI绘图的构图》