1. 为什么我劝你趁早把 ComfyUI 搬到本地
如果你最近在折腾 AI 绘画,大概率已经听过 ComfyUI 这个名字。它不像那些一键出图的网页工具,点一下按钮就完事;它更像是一块乐高底板,节点、连线、模型、采样器全部摊在你面前,你想怎么拼就怎么拼。问题也随之而来:在线版排队、限流、模型不能随便换、出图尺寸被卡死、生成的内容还要过审,稍微敏感一点的创意直接给你拦下来。折腾到半夜,图没出几张,火气倒是攒了一肚子。
所以我把 ComfyUI 直接搬到了自己的机器上。本地部署这件事,说难也难,说简单也简单。难的是第一次面对一堆 Python 环境、CUDA 版本、模型路径、依赖冲突,很容易卡在某个报错上怀疑人生;简单的是,一旦跑通一次,后面就是复制粘贴的活。这篇内容就是把我自己踩过的坑、验证过的步骤、以及那些教程里不会写的细节,完整地摊开讲一遍。不管你是刚接触 AI 绘画的新手,还是已经用过其他工具想转过来的老玩家,只要跟着走,基本都能在自己的电脑上把 ComfyUI 跑起来,而且不依赖任何外部服务,完全自己说了算。
我先把结论放前面:本地部署 ComfyUI 的核心就三件事——环境对不对、模型放没放对地方、显存够不够用。剩下的都是围绕这三件事做文章。下面我会从整体思路开始拆,再一步步带你落地,最后把常见报错和排查方法整理成速查表。内容比较长,建议先收藏,操作的时候对着看。
2. 整体部署思路与方案选型
2.1 本地部署到底解决了什么问题
先想清楚为什么要本地部署。在线工具最大的优势是省事,打开浏览器就能用,但它有三个绕不过去的坎。第一是模型自由度,你只能用平台提供的那些基础模型,想换一个社区里刚出的风格模型,对不起,不支持。第二是生成限制,分辨率、批量数量、生成次数都有天花板,想跑一张 4K 大图或者一次出二十张挑一张,要么加钱要么等。第三是隐私与内容控制,你的提示词、参考图、生成结果都要经过别人的服务器,创意还没落地就先被别人看了一遍。
本地部署之后,这三个问题全部消失。模型想换就换,从基础模型到各种微调版本,下载下来丢进文件夹就能用。分辨率想拉多高拉多高,只要你的显卡扛得住。提示词和图片全在本地硬盘上,不经过任何外部网络。代价就是你需要一台配置还过得去的电脑,以及愿意花一两个小时把环境搭起来。这一两个小时的一次性投入,换来的是后面无数次的自由出图,怎么算都划算。
2.2 硬件门槛到底在哪
很多人卡在第一步就是不确定自己的电脑能不能跑。我直接给一个经验判断,你可以对照自己的配置看。
| 硬件项 | 最低能跑 | 比较舒服 | 非常流畅 |
|---|---|---|---|
| 显卡显存 | 6GB | 8GB-12GB | 16GB 以上 |
| 内存 | 16GB | 32GB | 64GB |
| 硬盘 | 256GB 固态 | 512GB 固态 | 1TB 以上固态 |
| 操作系统 | Windows 10 / Linux | Windows 11 / Linux | 同左 |
显存是最关键的指标。6GB 能跑基础的 512x512 出图,但稍微大一点的分辨率或者复杂的节点流程就会爆显存。8GB 是目前比较主流的入门线,能应付大部分日常出图。12GB 以上就可以比较从容地跑高分辨率和视频生成类的节点。内存方面,16GB 是底线,因为模型加载和图片处理都会吃内存,32GB 会明显更稳。硬盘一定要用固态,机械硬盘加载模型的速度会让你等到失去耐心,一个几 GB 的模型从机械盘读进来可能要一两分钟。
注意:这里说的显存是显卡的物理显存,不是共享内存。有些轻薄本会拿内存当显存用,跑起来会非常慢,不建议用这类机器做本地部署。
2.3 三种部署方式怎么选
目前本地跑 ComfyUI 主要有三条路,我分别说一下适用场景。
第一种是官方整合包。官方会不定期发布打包好的版本,解压之后双击启动脚本就能用,省去了装 Python、配环境的步骤。适合完全不想碰命令行的人。缺点是更新稍微麻烦一点,而且整合包里的依赖版本是固定的,想自己加一些特殊节点可能会冲突。
第二种是手动安装。自己装 Python、装 PyTorch、克隆代码仓库、装依赖。步骤多,但每一步都清楚,出了问题知道去哪查。适合愿意折腾、想完全掌控环境的人。我自己的主力机器就是手动装的,因为后面要加各种自定义节点,手动环境更灵活。
第三种是容器化部署。把整个环境打包进容器里,隔离性好,换机器迁移方便。适合有一定运维基础的人,或者需要在多台机器上保持一致环境的场景。对纯新手来说门槛偏高,不建议作为第一次尝试的方案。
我下面主要按手动安装的流程来讲,因为搞懂了手动流程,整合包和容器化你都能自己推导出来。而且手动装一遍之后,后面遇到任何环境问题你都有能力自己排查。
3. 环境准备与核心依赖安装
3.1 Python 版本的选择与安装
ComfyUI 是基于 Python 的,所以第一步是把 Python 装对。这里有个坑:不要装最新版的 Python。很多 AI 相关的库对 Python 版本有要求,太新的版本反而会出现依赖找不到的情况。目前比较稳的是 Python 3.10 和 3.11,我实测 3.11 兼容性最好,推荐用这个。
安装的时候有一个关键选项必须勾上:Add Python to PATH。这个选项的作用是把 Python 加到系统环境变量里,这样你在命令行里直接输入 python 就能调用。如果不勾,后面每一步都要手动指定 Python 的完整路径,非常麻烦。安装完成后打开命令行,输入python --version,如果显示 3.11.x 就说明装好了。
python --version # 期望输出:Python 3.11.x如果提示找不到命令,说明 PATH 没配好,重新运行安装程序,选择修改,把 Add to PATH 勾上再装一遍。
3.2 显卡驱动与 CUDA 的关系
这是新手最容易懵的地方。简单说,显卡驱动是操作系统和显卡之间的翻译官,CUDA 是让显卡做通用计算的工具包。你要用显卡来跑 AI 模型,这两个都得有。
显卡驱动去显卡厂商的官网下载对应型号的最新版就行,安装过程一路下一步。装完之后在命令行输入nvidia-smi,如果能显示显卡型号、驱动版本、CUDA 版本,就说明驱动没问题。
nvidia-smi # 会显示显卡型号、驱动版本、当前支持的 CUDA 版本这里显示的 CUDA 版本是驱动支持的最高版本,不是你已经装了 CUDA。实际上你不需要单独去装 CUDA 工具包,因为 PyTorch 会自带运行所需的 CUDA 运行时。你只需要确保驱动版本足够新,能支持 PyTorch 要求的 CUDA 版本就行。一般来说,驱动更新到最近半年内的版本都不会有问题。
提示:如果你用的是较老的显卡,比如 10 系,也能跑,但速度会慢一些,而且某些新版本的 PyTorch 可能不再支持。这种情况建议查一下 PyTorch 官方文档里对应显卡的支持情况,选一个还能用的版本。
3.3 PyTorch 安装的版本匹配逻辑
PyTorch 是 ComfyUI 的核心计算框架,装错版本是最常见的翻车点。安装命令要去 PyTorch 官网的安装页面生成,不要凭记忆手敲。你需要选三个东西:PyTorch 版本、操作系统、计算平台。
计算平台这里选 CUDA 版本。选哪个 CUDA 版本取决于你的驱动支持到哪。前面nvidia-smi显示的 CUDA 版本如果是 12.1 以上,就选 CUDA 12.1 对应的 PyTorch。如果显示的是 11.8,就选 CUDA 11.8 的版本。选高了装不上,选低了浪费性能。
生成的命令大概长这样:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121这条命令的意思是,从 PyTorch 官方的 CUDA 12.1 仓库里下载安装 torch、torchvision、torchaudio 三个包。装完之后验证一下显卡能不能被 PyTorch 识别:
import torch print(torch.cuda.is_available()) print(torch.cuda.get_device_name(0))如果第一行输出 True,第二行输出你的显卡型号,就说明 PyTorch 和显卡已经打通了。如果输出 False,说明 CUDA 版本不匹配或者驱动有问题,回到上一步检查。
3.4 获取 ComfyUI 代码与依赖安装
环境准备好之后,把 ComfyUI 的代码拿到本地。用 Git 克隆是最方便的方式,方便后面更新。
git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI进入目录之后安装依赖:
pip install -r requirements.txt这一步会安装一堆 Python 库,包括图像处理、模型加载、节点系统相关的包。安装过程中如果看到红色的报错,先别慌,看清楚是哪个包失败了。常见的是某个包需要编译工具,Windows 上可能需要装 Visual C++ 构建工具。按照报错提示去装对应的工具就行。
依赖装完之后,先别急着启动,还有模型要放。模型是 ComfyUI 的弹药,没有模型它什么都干不了。
4. 模型文件的分类与放置规则
4.1 模型目录结构详解
ComfyUI 对模型的存放位置有严格要求,放错了就识别不到。代码目录下有一个models文件夹,里面按类型分了子文件夹。你必须把对应类型的模型放进对应的子文件夹,这是硬规则。
| 模型类型 | 存放路径 | 作用 |
|---|---|---|
| 基础模型 | models/checkpoints | 决定整体画风和质量 |
| 变分自编码器 | models/vae | 影响色彩和细节还原 |
| 文本编码器 | models/clip | 把提示词转成模型能懂的语言 |
| 控制网模型 | models/controlnet | 控制构图、姿势、边缘 |
| 放大模型 | models/upscale_models | 提升出图分辨率 |
| 低秩适配模型 | models/loras | 微调特定风格或角色 |
基础模型是最重要的,没有它什么都跑不了。一个基础模型通常几个 GB,下载的时候注意看文件格式,一般是 safetensors 或者 ckpt。优先选 safetensors,加载更快也更安全。
4.2 模型下载渠道与选择建议
模型从哪里来?主要是社区分享平台。下载的时候注意几点:第一,看清楚模型的基础版本,不同基础版本之间不通用;第二,看文件大小,太小可能是损坏的或者不是完整模型;第三,看更新时间和下载量,太冷门的模型可能有问题。
下载下来之后,直接丢进对应的文件夹。文件名建议改成英文,避免中文路径导致的编码问题。改完名字之后,ComfyUI 启动时会自动扫描这些文件夹,把模型列出来。
注意:模型文件很大,下载和拷贝的时候确保硬盘空间充足。一个基础模型动辄 2GB 到 7GB,几个模型下来就是几十 GB。建议专门留一个分区或者文件夹放模型。
4.3 模型加载的显存占用逻辑
这里解释一个很多人困惑的问题:为什么我显存明明够,加载模型还是报错?因为显存占用不只是模型本身的大小。一个 2GB 的模型加载到显存里,实际占用可能到 3GB 到 4GB,因为还有中间计算结果、图像缓冲区、节点运行时的开销。
所以选模型的时候要留余量。6GB 显存建议用 2GB 左右的模型,8GB 可以用 4GB 左右的,12GB 以上就比较自由了。如果显存不够,ComfyUI 有一个低显存模式,可以在启动参数里加上--lowvram,它会牺牲一些速度来换取更低的显存占用。
python main.py --lowvram这个参数的作用是把模型分块加载,用的时候才把需要的部分搬进显存,用完就释放。速度会慢一些,但能让小显存的机器也跑起来。
5. 启动流程与首次出图实操
5.1 启动命令与参数调优
一切就绪之后,在 ComfyUI 目录下运行启动命令:
python main.py启动成功后,命令行会显示一个本地地址,通常是http://127.0.0.1:8188。把这个地址复制到浏览器打开,就能看到 ComfyUI 的节点界面了。
启动参数可以根据你的硬件情况调整,常用的有这几个:
python main.py --lowvram # 低显存模式,适合 6GB 以下 python main.py --highvram # 高显存模式,适合 16GB 以上 python main.py --port 8080 # 换一个端口,避免冲突 python main.py --listen 0.0.0.0 # 允许局域网访问--listen这个参数的作用是让同一局域网内的其他设备也能访问你的 ComfyUI,比如用平板或者手机操作。但要注意,开了这个参数之后,同网络下的设备都能连进来,自己家里用没问题,公共网络下要谨慎。
5.2 默认工作流的节点解读
第一次打开界面,会看到一个默认的工作流,几个节点用线连着。别被这些线吓到,其实逻辑很简单。从左到右依次是:加载模型、输入提示词、设置采样参数、解码图像、保存图像。
加载模型节点负责把基础模型读进来。提示词节点分正向和负向,正向写你想要的,负向写你不想要的。采样器节点控制生成过程,里面的步数、采样方法、随机种子都会影响结果。解码节点把模型输出的潜空间数据转成看得见的图像。保存节点把图像写到硬盘上。
你可以先不改任何东西,直接点运行,等几十秒到几分钟,第一张图就出来了。这张图不一定好看,但它的意义是证明你的环境完全跑通了。跑通之后再慢慢研究每个节点的参数。
5.3 关键参数的计算与选择
采样步数是最常调的参数。步数太少,图像没收敛,看起来糊;步数太多,浪费时间,收益递减。一般来说 20 到 30 步是甜点区。我实测 20 步和 30 步的差距肉眼几乎看不出来,但时间差了 50%。所以日常出图用 20 步就够了,追求极致再上 30 步。
分辨率的选择要考虑显存。512x512 是最安全的,8GB 显存可以上到 768x768,12GB 可以尝试 1024x1024。但注意,分辨率不是越高越好,很多基础模型是在 512 或 768 上训练的,直接拉太高会出现画面崩坏,比如人物多出手脚。正确做法是先用基础分辨率出图,再用放大模型提升分辨率。
随机种子决定生成的随机性。固定种子可以复现同一张图,换种子就是完全不同的结果。调试的时候固定种子,方便对比不同参数的效果。找到满意的构图之后再换种子微调。
6. 常见报错与排查技巧实录
6.1 启动阶段的典型问题
启动阶段最常见的报错是模块找不到,提示ModuleNotFoundError。这通常是依赖没装全,或者装到了错误的 Python 环境里。解决办法是先确认当前命令行用的 Python 是不是你装依赖的那个,用where python查看路径。如果路径不对,说明你开了多个 Python 环境,需要激活正确的环境再装一遍依赖。
另一个常见问题是端口被占用,提示Address already in use。这是因为 8188 端口已经被别的程序占了。解决办法是换一个端口启动,加上--port 8189就行。
还有一种情况是启动卡住不动,命令行没有任何输出。这通常是显卡驱动或者 CUDA 的问题。先跑一下前面说的 PyTorch 验证代码,确认显卡能被识别。如果识别不了,重新装驱动和 PyTorch。
6.2 出图阶段的显存与精度问题
出图阶段最烦的是显存不足,提示CUDA out of memory。这个报错的本质是当前操作需要的内存超过了显卡能提供的。解决办法有几个层次:第一,降低分辨率;第二,减少批量数量;第三,加--lowvram启动参数;第四,关掉其他占显存的程序,比如游戏、浏览器的大量标签页。
还有一个隐蔽的问题是精度不匹配,提示expected scalar type Half but found Float。这是因为模型用了半精度,但某个节点传了全精度的数据。解决办法是在启动参数里加--force-fp32,强制用全精度运行。速度会慢一点,但兼容性更好。
| 报错信息 | 可能原因 | 解决办法 |
|---|---|---|
| ModuleNotFoundError | 依赖缺失或环境错误 | 确认 Python 路径,重装依赖 |
| Address already in use | 端口被占用 | 换端口启动 |
| CUDA out of memory | 显存不足 | 降分辨率、减批量、低显存模式 |
| expected scalar type | 精度不匹配 | 加 --force-fp32 参数 |
| 模型加载失败 | 路径错误或文件损坏 | 检查路径,重新下载模型 |
6.3 模型识别不到的排查思路
模型放进文件夹了,但界面上就是找不到,这种情况我遇到过好几次。排查顺序是这样的:第一,确认文件夹层级对不对,是不是多套了一层目录;第二,确认文件扩展名对不对,有些下载下来是压缩包,要解压;第三,重启 ComfyUI,它只在启动时扫描模型;第四,看命令行有没有报错,有时候是模型文件损坏导致扫描中断。
还有一个容易忽略的点是文件名里的特殊字符。有些模型文件名带空格、括号、中文,可能导致扫描失败。统一改成英文加下划线,问题基本就解决了。
实操心得:我习惯在模型文件夹里放一个文本文件记录每个模型的来源和用途,时间长了模型多了,光看文件名根本记不住哪个是哪个。这个习惯帮我省了很多重新下载的时间。
7. 性能优化与长期使用建议
7.1 让出图速度再快一点
环境跑通之后,下一步就是优化速度。最直接的办法是升级硬件,但那是花钱的事。不花钱的优化有几个方向。第一,把模型放在固态硬盘上,加载速度会快很多。第二,关闭不必要的后台程序,释放内存和显存。第三,调整采样步数,找到质量和速度的平衡点。第四,使用更高效的采样方法,不同的采样器速度差异很大,可以多试几个找到最快的。
还有一个技巧是预热。第一次出图因为要加载模型,会特别慢。你可以先跑一张小图把模型加载进显存,后面的图就会快很多。如果长时间不用,模型可能会被系统换出显存,再出图又会变慢,这是正常现象。
7.2 工作流的保存与复用
ComfyUI 的工作流是可以保存的。调好一套满意的节点组合之后,点保存,会生成一个 json 文件。下次要用的时候直接加载这个文件,所有节点和参数都回来了。这个功能非常实用,因为复杂的节点流程重新连一遍很费时间。
我建议按用途分类保存工作流,比如人像、风景、放大、修复各存一套。文件名写清楚用途和关键参数,方便以后查找。工作流文件很小,可以备份到网盘或者移动硬盘,换机器的时候直接拷过去就能用。
7.3 长期使用的维护习惯
本地部署不是一劳永逸的,需要一些维护。定期更新 ComfyUI 代码和依赖,能获得新功能和性能改进。但更新之前建议备份当前能用的环境,因为新版本可能引入不兼容的改动。我的做法是更新前把整个目录复制一份,出问题就回滚。
模型文件也要定期整理。删掉不用的模型释放空间,给常用的模型做好分类。硬盘空间不足是长期使用中最常见的问题,一个模型几个 GB,不知不觉就满了。养成定期清理的习惯,能避免关键时刻没空间。
最后说一个我自己的体会:本地部署 ComfyUI 最大的价值不是省了多少钱,而是那种完全掌控的感觉。你的工作流、你的模型、你的出图记录,全部在你自己手里。想怎么改就怎么改,想什么时候跑就什么时候跑。这种自由度是任何在线服务都给不了的。第一次配置确实要花点时间,但跑通之后你会发现,之前踩的那些坑都值了。