自从 ComfyUI 火起来之后,网上铺天盖地都是教程,但大多数教程的终点都是同一个动作:去某位大佬网盘里下整合包。整合包确实很香,解压就能跑,可一旦你换了显卡、加了新插件、想要升级到新版,问题就来了。自己手动做一次 ComfyUI 本地部署,不是装X,而是把“能不能跑、为什么跑不动、坏了怎么修”这几个能力彻底交回自己手里。这篇不是让你背命令,而是把我自己从入门到折腾一路踩过的坑拆开给你看,照着做一遍,后面再遇到报错,你大概率能自己解决。
1. 为什么本地部署 ComfyUI 值得自己动手
1.1 本地部署解决什么痛点
先说个很现实的事:很多人一开始用的是在线绘图平台或云端 ComfyUI,这种模式的好处是零配置,打开网页就能出图。但用久了你会发现,免费额度很快就没了,传工作流时如果节点涉及自定义插件,平台不一定支持,而且你的图片、提示词、训练素材全都在别人服务器上,敏感项目根本不敢放上去。
本地部署就是把整个 ComfyUI 环境搬到你自己电脑里,模型文件、工作流、插件全部躺在本地硬盘上。没有额度限制,没有排队,断电断网也能继续折腾。更重要的是,你能随时改代码、调参数、装新插件,自由度比任何在线版本都高。
还有一个经常被忽略的点:本地部署是学习 AI 绘图底层逻辑的最好入口。当你亲手配置了 Python 环境、装好 PyTorch、启动服务、加载模型,你就会明白所谓“AI 绘画”并不是一个黑盒,而是一套有输入输出、有依赖关系的本地程序。这种理解,是花钱买在线会员买不到的。
1.2 整合包 vs 手动部署:我为什么不无脑推荐整合包
国内最流行的是秋叶整合包,这个确实做得很用心,自带空环境、常用插件、模型下载工具,小白拿到手解压就能跑。但整合包有三个天生短板:
| 对比维度 | 整合包 | 手动部署 |
|---|---|---|
| 上手门槛 | 极低,解压即用 | 需要一点命令行基础 |
| 更新灵活性 | 依赖作者更新,升级容易冲突 | 随时 git pull 更新 |
| 问题排查 | 报错后很难定位原因 | 自己搭的环境,心里有数 |
| 插件兼容 | 内置版本可能过旧 | 按需安装,版本可控 |
| 磁盘占用 | 往往塞了很多你用不到的东西 | 只装自己需要的 |
| 学习价值 | 几乎为零 | 一次学会,终身受用 |
我见过不少用整合包的人,遇到一个报错就去群里发截图“求大佬看看”,等的过程中什么都干不了。而手动部署的人,看到报错会先去看 log,查路径,activate 虚拟环境,用 pip list 对比缺什么包。这不是说整合包不好,而是整合包的“省事”只在第一次安装时有效,之后每一次折腾都是在替你承担不确定性。
所以我的建议是:如果你只是想随便玩玩,整合包可以。但如果你打算认真用 ComfyUI 做项目、批量出图、研究工作流,我强烈建议你至少手动部署一次。哪怕最后你还是用回整合包,这次手动部署也会让你知道整合包帮你在背后做了什么。
1.3 “不求人”的真正含义
这个教程标题叫“不求人”,不是因为我会把所有答案都写出来,而是想帮你建立一套自己解决问题的能力。ComfyUI 的变化非常快,几乎每个月都有新插件、新模型、新参数,没有任何一篇教程能永远包办未来所有问题。
当你掌握了手动部署这套流程,以后遇到任何新工具,比如本地部署其他大模型、部署 Whisper 服务、跑本地视频生成,你都能举一反三:先看官方文档,检查硬件是否达标,配置环境,拉代码,装依赖,找模型,跑通 hello world。这条路走通了,你就不再需要到处找人帮你“远程看一下”了。
2. 动手前的硬件评估与环境准备
2.1 显卡与显存才是核心
ComfyUI 的绘图计算主要在 GPU 上完成,CPU 也能跑,但速度会慢到怀疑人生。所以第一件事就是确认你的显卡型号和显存大小。
显存决定了你能跑多复杂的模型、多大的图片尺寸。常见的误区是拿电脑内存来替代显存,这两个是完全不同的东西。内存是 CPU 用的临时存储,显存是 GPU 专用的高速存储,AI 模型运行时权重、中间特征图都放在显存里,内存再大也没法直接弥补显存缺口,顶多靠 CPU offload 硬撑,速度会断崖式下降。
| 显存容量 | 适合的场景 |
|---|---|
| 4GB | 跑 SD 1.5 小尺寸图,勉强跑 SDXL 低分辨率,需要开启低显存模式 |
| 6GB | SD 1.5 基本流畅,SDXL 需要裁剪分辨率或开启优化 |
| 8GB | SDXL 可以在 512x768 左右流畅跑,搭配放大节点可出高分辨图 |
| 12GB | SDXL 主流分辨率基本无压力,可跑常见 ControlNet |
| 16GB | 可以跑 SDXL 较高分辨率,尝试部分视频模型,训练 LoRA 轻松一些 |
| 24GB | 能跑更多大模型、微调、视频生成,几乎不用操心显存 |
我实际操作中的体会是:8GB 显存是一个舒适起点。如果你只有 4GB 也不是不能玩,但建议从 SD 1.5 模型起步,把图片设置成 512x512 或者 512x768,不要一上来就挑战 1024 以上的图。
2.2 系统、驱动与 CUDA 环境
ComfyUI 官方支持 Windows、Linux 和 macOS。大部分新手用 Windows,我教程也以 Windows 为例,但 Linux 思路完全一致,只是命令稍微不同。
显卡驱动是很多人忽略的关键点。你装完显卡后,如果从来没有更新过驱动,PyTorch 可能认不出你的 GPU。建议去显卡官网或设备管理器更新到较新的正式版驱动。NVIDIA 用户可以在驱动面板里看 CUDA 版本信息,驱动足够新的话,PyTorch 的 CUDA 运行库可以自动适配,不用单独全局安装 CUDA Toolkit。
一个实用的检测方法:在命令行里运行nvidia-smi,如果能看到显卡信息和右上角的 CUDA Version,说明驱动正常。然后再在你的 Python 虚拟环境里运行python -c "import torch; print(torch.cuda.is_available())",如果输出 True,说明 PyTorch 和 GPU 已经成功对接。
不要盲目去装最新 CUDA,PyTorch 对 CUDA 版本有要求,但通常只要驱动版本高于最小要求就行。反而是驱动过旧更容易出现问题。
2.3 必要的软件基础准备
手动部署 ComfyUI,最简配置需要这三样:
- Python 3.10 或 3.11:ComfyUI 官方建议 3.10 以上,3.12 兼容性有波动。我建议无脑 Python 3.10.11,稳定、省心。
- Git:用来拉取 ComfyUI 源码和安装自定义节点。
- 现代浏览器:ComfyUI 是个 Web 界面服务,Chrome 或 Edge 都行。
另外建议准备一个顺手的终端工具,Windows 用户用 PowerShell 就够,不推荐用 CMD 因为复制粘贴编码容易出问题。如果你经常要下载国内源的大模型,可以额外准备一个支持断点续传的下载器,这个后面会专门讲。
这些都是基础软件,装的时候注意一点:Python 安装时一定要勾选Add Python to PATH,否则后面运行 python 命令会提示“不是内部或外部命令”。同理,Git 安装时有一步让你选择编辑器,保持默认的 Vim 就行,不需要换。
3. ComfyUI 完整手动部署流程
3.1 获取 ComfyUI 源码与目录结构
打开终端,进入你打算放项目的地方,然后执行:
git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI如果你在 GitHub 拉取速度很慢,可以用国内的加速镜像地址,把github.com换成镜像站域名,效果和官方仓库完全一致。整个 ComfyUI 项目不大,几 MB 而已,等几秒就能下载完。
拉取完之后,建议先看一眼目录结构,这对后面的排查至关重要:
main.py:启动入口,服务端主程序。models/:模型统一存放目录,里面又细分 checkpoints、loras、vae、controlnet、upscale_models 等子目录。custom_nodes/:自定义节点和插件放在这里,每个插件是一个子文件夹。input/:默认的图片输入目录,工作流里加载图片会用到。output/:生成的图片默认保存到这里。web/:前端界面文件,正常情况下不用动。requirements.txt:Python 依赖列表。
理解目录结构之后,你后面遇到“为什么找不到模型”这类问题,第一反应就是去检查models/checkpoints里有没有 .safetensors 文件,而不用等别人告诉你。
3.2 创建 Python 虚拟环境与安装依赖
直接在全局环境里pip install -r requirements.txt是新手最容易踩的坑。这样做很可能和你电脑上其他 Python 项目的依赖产生冲突,尤其是 torch 这种体积大、版本敏感的库。正确做法是创建独立虚拟环境。
Windows PowerShell 下执行:
python -m venv venv .\venv\Scripts\Activate.ps1激活后命令行前面会出现(venv)标记,后面的安装都装在这个隔离环境里,不污染系统 Python。Linux / macOS 下激活命令是source venv/bin/activate。
然后安装依赖。ComfyUI 的 requirements.txt 包含常规依赖,但 torch 通常建议单独安装,因为默认源里的 torch 不一定带 CUDA 支持。我建议先装 torch:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121然后安装剩余依赖:
pip install -r requirements.txt如果网络状况不好,可以把 pip 源切换到清华镜像,但注意 torch 的 cu121 轮子文件比较大,清华镜像不一定全,所以 torch 那一步最好保留官方源。装完之后验证 GPU 可用:
python -c "import torch; print(torch.cuda.is_available()); print(torch.__version__)"这一步我至少遇到三次“明明驱动装了但输出 False”的情况,最后排查下来都是 torch 装成了 CPU 版本。大家装完务必看一眼 torch.version,如果是 +cpu 结尾,说明没装上 CUDA 版,重新用 cu121 源装一遍。
3.3 下载基础模型与放置路径
ComfyUI 本身没有模型,它只是一个绘图引擎,真正出图靠的是模型文件。最常用的是 Stable Diffusion 系列模型,文件名通常是.safetensors,体积在 2GB 到 7GB 之间。
下载模型有几个来源:一是国外模型站(Hugging Face 上有官方仓库),二是国内各种模型社区,三是一些模型聚合站。如果你在国外模型站下载速度很慢,建议配置国内镜像环境变量,比如在终端里运行:
$env:HF_ENDPOINT = "https://hf-mirror.com"之后再执行任意 huggingface 下载命令,都会自动走国内镜像。这是合规且普通的国内镜像加速方案,我实测下载速度能快很多,强烈建议用。
模型文件放哪里很关键。基础模型放在models/checkpoints目录下,一个文件对应一个模型。比如你下载了sd_xl_base_1.0.safetensors,就把它放到:
ComfyUI/models/checkpoints/sd_xl_base_1.0.safetensors其他类别模型也都有固定位置:
- LoRA 模型:
models/loras - VAE 模型:
models/vae - ControlNet 模型:
models/controlnet - 放大模型:
models/upscale_models - CLIP 模型:
models/clip - T2I-Adapter 模型:
models/adapters
如果你分不清某类文件放哪,可以启动 ComfyUI 后看界面的 Load 节点,它的下拉列表就是扫描这些目录得到的。我之前直接把 ControlNet 文件放到 checkpoints,结果加载节点里怎么都找不到,最后才发现路径错了。
3.4 首次启动 ComfyUI 与界面初识
模型放好之后,启动就很简单了:
python main.py首次启动会加载一堆模块,看到类似To see the GUI go to: http://127.0.0.1:8188的提示,就说明服务跑起来了。浏览器打开这个地址,就是 ComfyUI 的图形界面。
如果想省去每次敲命令的麻烦,可以在 ComfyUI 根目录建一个启动.bat,内容写:
@echo off call venv\Scripts\activate.bat python main.py pause以后双击就能启动。注意确定.bat文件编码是 ANSI,否则中文注释可能变乱码。
第一次进界面,你会看到一张由各种方块和连线组成的默认工作流。这个界面看起来复杂,理解起来其实很简单:左边是控制区,中间是节点画布,每个节点负责一个任务,连线表示数据流向,从“加载模型”开始,经过“正向提示词”、“KL采样器”、“VAE解码”,最后到“保存图片”。鼠标右键可以呼出节点菜单,双击空白处会出现节点搜索框。
我的建议是第一次先别急着修改节点,直接点击默认工作流中的Queue Prompt按钮生成一张测试图。如果能看到第一张图顺利跑出来,说明你的部署已经成功了一大半。
3.5 安装常用自定义节点与插件
ComfyUI 的原生节点能完成基础文生图、图生图,但很多高级功能需要自定义节点支持,比如 ControlNet 控制、视频生成、放大细化、翻译提示词等等。安装自定义节点最优雅的方式是使用 ComfyUI Manager。
在custom_nodes目录下执行:
git clone https://github.com/ltdrdata/ComfyUI-Manager.git重启 ComfyUI 后,界面右侧会出现一个“Manager”菜单。点进去可以浏览所有插件,点击 Install 就能在线安装。以后启动时如果有插件更新,Manager 也会提示。
常用插件我列几个,按需装,别一次装太多:
- ComfyUI Manager:插件管理器,必装。
- ComfyUI ControlNet Aux:ControlNet 相关预处理器。
- Ultimate SD Upscale:图片放大插件。
- ComfyUI Impact Pack:局部重绘和检测类节点。
- AIGODLIKE-ComfyUI-Translation:中文翻译插件,适合英文不好的朋友。
注意一个原则:插件装得越多,出问题的概率越大。每安装一个新插件,都要重启一次 ComfyUI,确认能正常加载,再继续装下一个。否则一上来装十来个插件,报错你都不知道是哪一个引起的。
4. 排错手册与性能优化实战
4.1 启动报错最常踩的坑
手动部署后第一个报错十有八九是:ModuleNotFoundError: No module named 'torch'。这个报错说明你当前运行 Python 的虚拟环境没有装 torch。原因通常是终端里没激活 venv,或者激活失败。眼尖的朋友可以在命令行前面看有没有(venv)标记,没有就重新执行激活命令。
第二个高发报错是:Could not find model或者低阶列表空白。这种情况几乎都是模型文件路径不对,去对应的 models 子目录检查一下文件名和后缀,ComfyUI 不认中文名和空格,建议统一改成字母和下划线命名。
第三个常见问题是端口被占用,启动时提示Address already in use。要么把其他占 8188 端口的程序关掉,要么启动时换一个端口:
python main.py --port 8189如果你是从整合包转手动部署,还有一个容易忽略的问题:旧的整合包 python 环境和手动部署的环境可能共用显卡驱动缓存,出现奇怪的情形。我遇到过一次启动就崩溃,最后重启电脑、清空__pycache__目录才正常。
4.2 显存不足与 OOM 处理
生成图片时最常见的是爆显存,报错一串CUDA out of memory。这个报错不要慌,它只是告诉你显存不够,不一定是配置有问题。处理方法按优先级排序:
第一,降低图片分辨率。SD 1.5 默认 512x512,你如果强行拉到 1024x1024,8GB 显存直接爆。先把分辨率降到显存能承受的范围,跑通之后再想办法放大。
第二,减小 Batch size。Batch size 是同时处理的图片数量,默认 1 就行,有的人为了“效率”调成 4,显存立刻翻四倍,不爆才怪。
第三,启用 ComfyUI 的低显存模式。启动时加上参数:
python main.py --lowvram这个模式会把部分模型层暂时放到内存,换取显存空间,但速度会变慢。还有--novram是禁用显存卸载,不推荐。
第四,拆解流程。不要在一个工作流里同时加载多个大模型或大量 ControlNet 模型,比如先用大模型出图,再单独交给放大工作流处理。写工作流的时候尽量精简节点,减少中间张量占用的显存。
4.3 模型下载失败或加载后效果异常
模型下载失败在网络不稳定的地区很常见。解决办法其实很简单:不要用浏览器直接下载,大文件推荐带断点续传的下载器,或者先用网盘离线下载再转到本地。下载完成后检查文件大小是否和源站一致,很多“加载失败”其实是文件不完整。
另外有一种情况:模型加载成功,但生成出来的图全是黑图或噪点。这种八成是 VAE 出了问题。很多基础模型自带的 VAE 不一定好,你需要额外下载一个修复过的 VAE 文件放到models/vae,然后工作流里在“VAE 解码”节点前强制加载。如果你用的是 SDXL 模型,还可能是正负提示词格式不对,SDXL 一般推荐使用prompt加negative_prompt的写法,具体要看工作流模板。
还要注意模型版本匹配。比如你下载一个 ControlNet 模型,必须和基础模型版本一致,SDXL 的 ControlNet 不能用于 SD 1.5,否则不报错,但结果完全没有控制效果,让人误以为插件坏了。
4.4 性能调优:实测有效的几个方向
很多人觉得出图慢就跑不动了,其实 ComfyUI 的可调参数很多,我实测下来这几个方向最有效:
优先更新显卡驱动。一次驱动升级能让性能提升 10% 到 20%,这是最容易忽略的免费优化,别整天折腾代码。
然后是模型加载方式。ComfyUI 默认把模型完整加载到显存,如果你同时开了浏览器、录屏软件,显存被抢占会导致性能下降。关闭不必要的程序,给 ComfyUI 留出干净的显存空间。
还有采样器选择。不同的采样器速度和画质差异很大,同等步数下,DPM++ 系列速度适中,Euler 系列更快,适合初步测试。实际项目出图时不要盲目追求高步数,20 到 30 步通常是甜点区间,30 步以上画质提升递减,时间却线性增加。
最后,升级 PyTorch 版本。每次 PyTorch 大版本更新,对运算图的优化都很明显。定期在虚拟环境里更新一下:
pip install --upgrade torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu1214.5 备份与升级习惯
手动部署之后,更新 ComfyUI 只需要在根目录执行:
git pull然后重启服务。但这一步有个前提:你要先备份自己的东西。models目录里的模型文件少则几 GB,多则几十 GB,不需要备份到网盘,但至少要做好清单,记录文件名和用途。custom_nodes目录里可能有你手动改过的代码,更新主程序前先确认插件兼容性。
我个人的习惯是每次升级前先复制一份custom_nodes和input目录,保存到另一个文件夹,再把models/checkpoints的目录结构截图存下来。升级后如果出问题,我直接恢复旧目录,两分钟就回去了。别嫌麻烦,我在升级后遇到过插件和核心不兼容,整个环境废掉的情况,没有备份就得重新配半天。
5. 工作流与进阶玩法:部署完只是开始
5.1 导入别人的工作流
本地部署成功之后,最爽的事就是可以到处导入别人分享的工作流文件。工作流通常是.json文件,在 ComfyUI 界面中直接把 JSON 文件拖入浏览器空白处,就能自动生成节点结构。
但导入之后大概率会遇到两种情况:一是提示缺失某个自定义节点,二是提示缺少某个模型。缺失自定义节点时,打开 Manager 搜索对应插件安装;缺失模型时,看提示的模型文件名,去相应目录补上。
有个小技巧:导入工作流之前,先把 JSON 文件用文本编辑器打开,搜索ckpt_name、lora_name等字段,可以提前看到需要哪些模型文件,免得导入后一个一个查。用久了你就会发现,很多人分享工作流时并不附上所有模型链接,模型管理能力才是真正拉开差距的地方。
5.2 模型管理技巧
模型一多,管理就成了大问题。我现在的models/checkpoints里有二十多个模型,全靠命名规范硬记是不现实的。我总结了一套自己的方法:
- 文件名统一格式:
类别_风格_版本.safetensors,比如realistic_photography_v10.safetensors。 - 在模型目录里放一个
说明.md,记录每个模型的来源、用途、推荐参数。 - 定时清理长期不用的模型,硬盘空间被几十个几 GB 的模型占满是很常见的悲剧。
- 如果两个目录需要共用模型,可以用符号链接(Windows 下
mklink),不用复制两份,省空间省时间。
LoRA 模型管理同理。很多 LoRA 文件的触发词写在文件名里,建议文件名保留原始触发词和版本信息,不要为了好看改成“头像风格1”这种名字,否则你会在关键时刻完全想不起来它该怎么用。
5.3 生成视频与动画的扩展玩法
当你把传统文生图、图生图流程跑顺之后,ComfyUI 更广阔的玩法是视频生成和动画。比如一些基于扩散模型的视频生成节点、AnimateDiff 系列插件,本质上也是在本地跑大模型,只是输入输出从单帧变成了多帧。
视频生成对显存的要求比单图又上了一个台阶。我的建议是先从低分辨率、短视频帧数开始,比如 512x512、8 到 16 帧,跑通流程后再逐步提升。视频模型的模型文件体积更大,加载更慢,建议单独给视频工作流配置一个低显存优化版本,别和文生图工作流混在一起。
5.4 把 ComfyUI 作为本地服务给团队用
如果你跑熟了,想让局域网内其他电脑访问你的 ComfyUI,可以在启动时加参数:
python main.py --listen 0.0.0.0 --port 8188这样同一局域网下的其他设备,就能通过你的电脑 IP 访问这个服务。适合团队共用一台高性能机器做测试。不过要注意两点:一是别让写死的本地路径或模型路径暴露给不受信任的人,二是局域网多人同时出图会抢占显存,最好按人头分时间段错峰使用。
6. 我踩过坑之后总结的三条经验
这篇内容快写完了,最后分享几条我在实际使用中沉淀下来的经验,句句是换来的教训。
第一,不要追求一步到位。第一次手动部署时,我雄心勃勃地想一次性装好所有插件,结果整整两天都在处理节点冲突。你不需要一上来就装 ControlNet、视频生成、LoRA 训练一大堆,先用原生节点把基础流程跑熟,再按项目需求逐步加装。稳定跑通默认工作流,比什么都强。
第二,日志是你最好的老师。ComfyUI 终端里的日志不是摆设,每一个节点运行都会打印相关信息,报错时先看最后几行,找红色或 error 字样。我排查过的绝大多数问题,最后都能在日志里找到原因。不要一遇到报错就急着截图求人,先自己花两分钟看日志,你常常能自己解决。
第三,模型文件是你最贵重的资产。环境可以重新配,代码可以重新下,但几十 GB 的模型下载成本可能比安装运行环境还高。我每次动 models 目录前都会确认备份状态,转移文件夹时优先用支持校验的工具,防止文件损坏。
ComfyUI 本地部署这条路,不算平坦,但走通之后你会发现在这个 AI 工具疯狂迭代的时代,你终于有了一套可以不依赖别人的本地创作环境。以后不管换显卡、懂 Python、玩新模型,你都能自己搞。这才是真正的“不求人”。
祝你的第一次Queue Prompt顺利跑出一张好图。