1. 先搞清楚 ComfyUI 到底解决什么问题,再看它适不适合你
如果你之前用过 Stable Diffusion WebUI(秋叶包那种一键启动器),那 ComfyUI 最直接的区别就是:它把 AI 生图、生视频的过程拆成了一个个可拖拽、可连接的“节点”。每个节点负责一个明确任务——加载模型、输入提示词、设置采样步数、调整分辨率、输出图片。这种工作流的方式,最大的好处是让你能看清数据是怎么一步步流动的,也更容易复现别人的效果、调整中间参数。
但很多人第一次打开 ComfyUI 界面会懵——没有熟悉的文生图、图生图标签页,只有一堆可拖动的框和连线。所以这个系列教程最核心的价值,就是帮你跨过“看不懂界面”这个坎,把本地部署、插件安装、节点搭建、实际出图出视频的完整路径跑通。
我一般会建议两类人重点看这个教程:一是已经在用 WebUI 但想更精细控制生成过程的人;二是需要批量稳定出图、希望工作流可保存可复用的创作者。如果你只是偶尔随便玩一下,WebUI 的秋叶整合包可能更直接;但如果你打算长期用、或者想深入理解 AI 生图背后的参数逻辑,ComfyUI 的工作流思维会更有后劲。
2. 本地环境部署:从零到能启动界面,关键看这三步
ComfyUI 的本地部署,其实比很多人想象中简单。你不用自己配 Python 环境、不用手动装 PyTorch,因为现在有秋叶做的整合包,已经把依赖都打包好了。但整合包下载下来不代表一定能跑起来,我习惯先确认三件事:显卡驱动、磁盘空间、路径权限。
2.1 显卡驱动和显存底线
ComfyUI 支持 NVIDIA 显卡(CUDA)、AMD 显卡(通过 ROCm)和纯 CPU 运行。但如果你希望生成速度能接受,最好还是有张显存不低于 4GB 的显卡。我实测过,GTX 1060 6GB 这种老卡跑基础模型(比如 SD 1.5)还能勉强用,但要是上 SDXL 模型或者视频生成节点,显存很容易爆。
在启动前,先打开命令行输入nvidia-smi(N 卡)或rocm-smi(A 卡),确认驱动能正常识别显卡。如果这里报错,后面 ComfyUI 大概率会卡在加载模型那一步。
2.2 磁盘空间和模型存放位置
ComfyUI 本身不大,但模型文件很占地方。基础模型(.safetensors)通常 2-7GB,加上 Lora、ControlNet、VAE 等扩展,预留 50GB 空间比较稳妥。很多人第一次启动后看不到模型列表,就是因为没把模型文件放到正确目录。
整合包一般会自带一个models文件夹,里面按checkpoints、loras、controlnet等子目录分类。你要做的就是把之前用 WebUI 下载的模型,按类型拷贝到对应文件夹。如果是从零开始,可以去 Civitai 或 Hugging Face 下载基础模型,比如 “sd_xl_base_1.0.safetensors”,放进models/checkpoints。
2.3 启动方式的选择:直接运行还是带参数
秋叶整合包通常会提供一个run_nvidia_gpu.bat(Windows)或run.sh(Linux/macOS)来启动。双击运行是最简单的方式,但如果你需要自定义端口、开启 API 或挂载插件管理,就得改启动参数。
比如,默认端口是 8188,如果这个端口被占用,可以右键编辑 bat 文件,在最后加--port 7890换一个端口。如果想安装插件,可以加--enable-manager参数(但注意这个功能需要网络,离线环境用不了)。
注意:第一次启动时,命令行窗口会下载一些依赖库,时间长短取决于网络。如果卡住,可以尝试挂国内镜像源,或者手动把整合包自带的
python_embeded目录加入系统 PATH。
3. 插件安装:不是越多越好,先装这几种必用的
ComfyUI 的核心功能靠插件扩展。但插件装太多会拖慢启动速度,甚至节点冲突。我建议先装下面四类,能覆盖绝大多数生图、生视频需求。
3.1 管理器插件:ComfyUI Manager
这是装其他插件的基础。有了它,你可以在界面里一键安装、更新节点库,不用手动敲 git 命令。安装方法有两种:
- 在线安装:如果你的环境能访问 GitHub,直接下载
ComfyUI-Manager项目,把文件夹放到ComfyUI/web/extensions目录下,重启界面。 - 离线安装:如果网络不稳定,可以先在能上网的机器下载插件 zip 包,拷贝到
extensions目录解压,再重启。
安装成功后,界面右上角会多一个齿轮图标,点开就能搜索插件。但要注意,管理器本身只是帮你下载插件,有些节点还依赖额外 Python 包,这时候需要看插件页面的说明,手动 pip 安装。
3.2 图像视频增强类:Impact Pack 和 Video Helper Suite
Impact Pack 是最常用的功能扩展之一,集成了人脸修复、背景分离、批量处理等节点。尤其是它的 “SEGS 节点”,能结合 SAM 模型做精细抠图,适合角色换装、场景合成。
Video Helper Suite 则是处理视频帧序列的核心。ComfyUI 本身不直接生成视频,而是把视频拆成帧图、逐帧处理、再合成视频。这个插件提供了 Load Video(加载视频)、Save Video(保存视频)、VHS_VideoCombine(帧合成)等节点,支持调整帧率、裁剪区间。
安装后,你会在节点菜单的 “impact” 和 “VHS” 分类下找到它们。第一次使用时会自动下载依赖模型(比如 SAM 的权重文件),记得留好磁盘空间。
3.3 工作流导入导出工具:效率提升关键
ComfyUI 的工作流可以保存为 JSON 文件。但默认功能只能手动拖节点还原,而像 “ComfyUI-Custom-Scripts” 这类插件支持一键导入别人分享的工作流图片(带元数据的那种),自动生成节点图。
用法很简单:安装插件后,直接把别人发的 PNG 工作流图片拖进 ComfyUI 界面,它会自动解析出节点和连接。这个功能特别适合学习别人的参数搭配,比如怎样连接 ControlNet 才能保持角色姿势、怎样调采样器让画面更细腻。
3.4 疑难排查:当插件安装失败或节点报错时
插件装不上最常见的原因是网络超时或路径权限问题。我一般按这个顺序排查:
- 看命令行窗口的报错信息:如果是下载失败,可以尝试换源或手动下载插件包。
- 检查插件目录权限:特别是 Windows 系统,如果 ComfyUI 装在 Program Files 下,可能因为权限不足导致插件写入失败。建议放在用户目录(比如
D:\ComfyUI)而不是系统盘。 - 确认 Python 版本兼容:整合包通常固定了 Python 版本(如 3.10),如果你自己装过其他版本的 Python,可能冲突。最好用整合包自带的嵌入式 Python。
注意:不要同时安装功能相似的插件(比如两个不同的面部修复节点),容易导致参数传递混乱。先用好一个,再按需扩展。
4. 节点搭建:从单张图到视频的工作流实战
ComfyUI 的节点虽然多,但通用工作流有固定模式。下面我按“文生图→图生图→视频处理”的顺序,拆解每个环节的关键节点怎么连。
4.1 文生图基础链:Load Checkpoint → KSampler → VAEDecode → Save Image
最简流程只有四个节点:
- Load Checkpoint:选择基础模型,输出 model、clip、vae 三个参数。
- CLIP Text Encode(Prompt):连接 clip 输入,正面提示词写这里。
- CLIP Text Encode(Negative Prompt):同样连 clip,写负面词。
- KSampler:连接 model、正面词、负面词,设置 steps(采样步数,20-30)、cfg(引导系数,7-8)、sampler(采样器,Euler a 或 DPM++ 2M)、scheduler(调度器,Karras 或 Normal)。
- VAEDecode:连接 KSampler 的 LATENT 输出和 Load Checkpoint 的 VAE 输出。
- Save Image:连接 VAEDecode,设置输出路径。
连好后,点击 “Queue Prompt” 生成第一张图。如果报错,先看 KSampler 的 resolution(分辨率)是否超过显存上限——从 512x512 开始试。
4.2 图生图与 ControlNet:如何控制画面结构
文生图稳定后,可以加入 ControlNet 节点精细控制姿势、线条、景深。常用的是 “Apply ControlNet” 节点,需要先加载 ControlNet 模型(如 openpose、canny、depth),然后:
- 在 Load Checkpoint 后接一个 “ControlNetLoader”,选择对应的 .pth 或 .safetensors 模型。
- 用 “Load Image” 节点加载参考图(比如一张骨架图或线稿)。
- 添加 “Apply ControlNet” 节点,连接正负面词、ControlNet 模型、参考图。
- 把 Apply ControlNet 的输出代替原来的正负面词,连给 KSampler。
这样生成的照片就会遵循参考图的结构。如果效果不明显,可以调整 ControlNet 的 weight(权重,0.5-1.2)和 guidance(引导强度)。
4.3 视频处理:拆帧→逐帧处理→合成
ComfyUI 生成视频的本质是处理图片序列。以给视频加风格化滤镜为例:
- 拆帧:用 Video Helper Suite 的 “Load Video” 节点,选择视频文件,设置 start_frame(起始帧)、frame_rate(帧率,一般原视频 24-30)。输出是一个图像序列(IMAGE)和总帧数(帧数信息后面合成要用)。
- 逐帧处理:把 Load Video 的 IMAGE 输出连给 KSampler 的 image 输入(这时候 KSampler 要切换为图生图模式),调整 denoise(去噪强度,0.5-0.8 保持原画面结构)。
- 合成:把处理后的图像序列连给 “VHS_VideoCombine” 节点,设置输出路径和帧率(和原视频一致),生成最终视频。
这个过程比较耗显存,如果视频太长,可以先用几帧测试参数,再用 “Batch Count” 分批处理。记得开启 “Save Image” 节点的 “保存中间帧” 选项,方便排查哪一帧出问题。
5. 参数调优:采样器、步数、提示词权重的实战影响
节点连通只是第一步,出图质量很大程度上取决于参数搭配。下面是我实测后的一些经验值,你可以作为起点微调。
5.1 采样器选择:速度与质量的权衡
- Euler a:速度快,细节丰富,适合插画、二次元风格。但步数低于 20 时容易画面破碎。
- DPM++ 2M Karras:平衡型,人物、风景都适用,色彩饱和度较高。步数 25-30 效果稳定。
- DDIM:老牌采样器,生成结果更可控,适合需要严格对齐线稿的场景。但速度偏慢。
- UniPC:较新的采样器,20 步左右就能出不错效果,适合快速迭代。
新手可以先用 DPM++ 2M Karras,步数 25,cfg 7.5。如果画面太模糊,提高 cfg 到 8.5;如果画面过饱和,降到 6.5。
5.2 提示词权重语法:让主体更突出
ComfyUI 默认支持 WebUI 的权重语法,比如:
(keyword:1.2)表示权重 1.2 倍[keyword1:keyword2:0.8]表示从第 8 步开始淡化 keyword1,过渡到 keyword2
但要注意,节点里的 CLIP Text Encode 对括号解析可能和 WebUI 不同。如果发现权重没生效,可以尝试改用 “CLIPTextEncode (Advanced)” 节点(需安装 WAS Node Suite 插件),它支持更精细的步数控制。
5.3 分辨率与显存的关系:高分辨率生成的技巧
直接开 1024x1024 很容易爆显存。更稳妥的做法是:
- 先用 512x512 或 768x768 生成草图。
- 添加 “Latent Upscale” 节点(在 “latent” 分类下),选择 upscale_method(如 nearest-exact 或 lanczos),把分辨率放大 1.5-2 倍。
- 连一个额外的 KSampler(步数可以减到 10-15),对放大后的潜空间做轻微重绘,补充细节。
这样分两步走,比直接高分辨率生成更省显存,画面也更清晰。
6. 工作流保存与分享:如何管理你的节点组合
ComfyUI 的工作流可以保存为 JSON 文件,但直接分享 JSON 别人可能看不懂节点布局。更好的方式是导出带元数据的 PNG。
6.1 保存为可复用的模板
点击界面右下角的 “Save” 按钮,会给当前工作流生成一个 .json 文件。我建议按用途分类命名,比如 “人物写真_基础.json”、“线稿上色_ControlNet.json”。下次使用时,点 “Load” 加载,所有节点和参数都会还原。
但要注意:如果节点涉及自定义插件,别人加载时必须有相同插件,否则会缺失节点。分享前最好用 ComfyUI Manager 的 “导出依赖列表” 功能,把插件清单一并提供。
6.2 分享为 PNG 图片的工作流
这是 ComfyUI 的特色功能——在 Save Image 节点生成的图片里,嵌入工作流数据。操作很简单:
- 在 “Save Image” 节点的 “filename_prefix” 里设置图片名前缀。
- 生成图片后,把这张 PNG 拖回 ComfyUI 界面,会自动重建节点。
这个方式适合在社区分享效果图和参数,但注意图片体积会变大(因为含了 JSON 数据)。如果上传平台压缩了图片,元数据可能丢失,所以重要工作流还是建议 JSON 和 PNG 双备份。
7. 常见报错与排查顺序:从节点红框到生成失败
ComfyUI 的报错信息有时不直观,我习惯按这个顺序排查。
7.1 节点连线的红色框线
如果节点连接线变红,说明数据类型不匹配。比如把图像输出连到了潜空间输入。检查连接点的颜色提示:绿色通常是图像或潜空间,蓝色是模型或条件,橙色是参数。重新拖拽正确端口即可。
7.2 生成时卡住或报 CUDA out of memory
这是显存不足的典型表现。先尝试:
- 降低分辨率(如从 1024x1024 降到 768x768)。
- 关闭其他占用显存的程序。
- 在启动参数加
--lowvram或--novram(纯 CPU 模式,极慢)。
如果还不行,可能是模型本身太大。比如 SDXL 模型需要 8GB+ 显存才能流畅运行,显卡配置低的话换 SD 1.5 模型。
7.3 生成结果全黑或全灰
通常是 VAE 没正确加载。检查 Load Checkpoint 节点是否选了自带 VAE 的模型(如 sd_xl_base_1.0.safetensors),或者单独接一个 “VAELoader” 节点,选择正确的 vae.pt 文件。
7.4 插件节点找不到或报错 “ModuleNotFoundError”
这说明插件依赖的 Python 包没装上。打开命令行,进入 ComfyUI 根目录,用整合包自带的 python 运行pip install 包名。比如 Impact Pack 需要pip install segment_anything。
如果包安装失败,可能是网络问题,可以换国内镜像源:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名。
8. 生产化建议:如何把实验流变成稳定工作流
最后,如果你打算长期用 ComfyUI 做创作或批量任务,下面几点能少踩坑。
8.1 目录结构规范化
不要把所有模型、图片、工作流混在一起。建议按这样分类:
ComfyUI/ ├── models/ │ ├── checkpoints/ # 基础模型 │ ├── loras/ # Lora 模型 │ ├── controlnet/ # ControlNet 模型 │ └── vae/ # VAE 模型 ├── output/ # 生成结果 │ ├── images/ # 图片输出 │ └── videos/ # 视频输出 ├── workflows/ # 工作流 JSON 文件 └── custom_nodes/ # 插件目录(如果手动安装)每次生成前,在 Save Image 节点设置好输出子目录(比如output/images/人物写真/),方便后续整理。
8.2 批量任务的处理思路
ComfyUI 界面不适合手动点几百次队列。可以通过两种方式批量:
- 使用 API:写一个 Python 脚本,调用 ComfyUI 的 HTTP API 接口,循环发送不同提示词。
- 利用节点批处理:在 KSampler 前接 “Primitive→String” 节点,把提示词按行写入,开启 KSampler 的 “batch_size” 参数。
但批量任务最怕中间失败导致重头再来。最好在脚本里加入错误重试、进度保存逻辑,或者用 ComfyUI Manager 的 “工作流队列” 插件管理任务列表。
8.3 资源监控与性能调优
长时间运行 ComfyUI 时,可以开系统资源监视器,观察显存、内存占用。如果发现显存缓慢增长(内存泄漏),可以定期重启 ComfyUI。生成视频或高分辨率图时,适当设置 “Save Image” 的压缩质量(如 95%),避免输出文件过大。
我个人习惯是先搭一个最小可行工作流,确保单任务能稳定跑通,再逐步添加复杂节点。每次改参数只动一个变量,方便对比效果。ComfyUI 的最大优势是流程可视化,但前提是你能理清节点之间的数据依赖。