如果你最近在技术社区里找 AI 生图资料,基本绕不开三个词:ComfyUI、本地部署、模型下载。很多新人第一次接触“本地部署”,理解得非常简单——下载一个整合包、点一下启动器,然后在网页界面里填提示词,模型就开始画图。真正等显卡风扇转起来之后才发现,卡住你的往往不是某个安装包,而是这些非常具体的问题:模型文件放错目录、显存放不下、节点执行到一半报错、下载的工作流导入失败。这些问题单看都不难,难的是它们总是连续出现,而且网上教程往往只讲“怎么点”,不讲“为什么错”。
这篇文章围绕“在 ComfyUI 上跑本地部署的 AI 生图模型”这条主线,重点回答三件事:第一,本地部署到底解决了什么问题,电脑硬件够不够用;第二,从零开始把 ComfyUI 装好,把一个可用的文生图模型放进正确目录,并真正跑出第一张图;第三,遇到“节点在执行过程中发生错误”“CUDA out of memory”这类高频问题时,如何不看玄学、只看日志地排查。这里所有操作都以“先跑通、再优化”为原则,避免一上来就堆几十个自定义节点。
先给一个核心判断:ComfyUI 不是 Stable Diffusion WebUI 的简单换肤,而是一套面向“可控生成流程”的节点式工具链。它的节点思维在初期比 WebUI 的“填表单”更反直觉,但换来的是可保存、可复用、可逐节点排查的工作流。本地部署 AI 生图模型,最直接的价值是数据不出本机、生成不按张数计费、模型权重和工作流都握在自己手里;代价则是从环境安装、显卡驱动到模型文件管理,每一个环节都需要你亲自兜底。
所以,并不是所有人都适合本地部署。如果只是偶发地生成几张头像,云端 API 反而更省事。但如果你要做批量素材、复现同一套画风、把生成流程沉淀给团队,或者要处理不便上传到第三方服务的图片,本地部署是更值得投入的方向。下面我按真实踩坑的顺序来展开,从“要不要本地化”一路讲到“报错之后怎么处理”。
1. 为什么要在本地部署 AI 生图模型
先解决一个容易被人忽略的问题:本地部署不是为了追求某种技术上的仪式感,而是因为你的使用场景发生了变化。当生成图片从“偶尔玩一下”变成“每天要出几十张、甚至要接入到业务系统”时,云端按次计费和文件上传带来的约束会越来越明显。
从使用成本看,本地部署是一次性硬件投入,之后每张图的边际成本主要是电费和显卡损耗;云端 API 则是按量计费,用多少付多少。从数据隐私看,本地部署的提示词、参考图、生成结果都留在本机,而云端方案意味着这些内容需要通过网络上传到服务商。从可控性看,本地部署可以自由切换 checkpoint、LoRA、采样器和自定义节点,云端则通常只能使用平台已经开放的能力。
| 对比维度 | 本地部署 | 云端 API |
|---|---|---|
| 使用成本 | 硬件一次性投入,之后电费和维护成本 | 按次数或按量计费,低频使用更划算 |
| 数据隐私 | 图片与提示词都留在本机 | 需要上传到厂商服务器处理 |
| 可控性 | 模型、参数、工作流全部可替换 | 受平台接口与模型版本限制 |
| 上手门槛 | 需要装环境、管理权重、理解显存 | 注册账号、拿 API Key、调接口即可 |
| 适合场景 | 高频调试、批量出图、离线环境、业务集成 | 低频偶发、快速验证、不想维护硬件 |
这里很容易出现一个误区,以为“本地部署”就等于“免费部署”。实际上,显卡成本、硬盘空间、模型文件下载时间和调试时间都是成本。如果你的需求只是每天稳定出几张不复杂的图,云 API 可能才是综合成本更低的方案;如果你已经把生图当成一条“生产流水线”,那么本地部署才能真正释放价值。
从模型本身看,ComfyUI 能跑的 AI 生图模型大多属于 Stable Diffusion 这一技术路线,包括常见的 SD 1.5、SDXL,以及基于这些底座训练出的社区模型。底座模型决定生成能力,社区模型决定画风,节点工作流则决定生成过程的可控程度。搞清楚这三层关系之后,你再看网上各种“本地部署 AI 生图”的教程,就不会被单个炫酷案例带偏。
2. ComfyUI 与文生图工作流的底层概念
要理解 ComfyUI,不要把它看作“另一个 WebUI”,而要把它理解成一个“把生成过程画成流程图”的工具。WebUI 的做法是把参数全部塞进一个表单,用户填完点“生成”就行;ComfyUI 的做法是把文生图拆成多个节点,每个节点只做一件事,节点与节点之间用连线传递数据。
这条流程本质上是一个有向无环图,从加载模型开始,到保存图片结束,中间经过文本编码、采样、解码等步骤。因为每一步都被独立出来,所以你可以随时替换其中任意一环:换模型、换采样器、固定随机种子、改一下 denoise 值,而不需要把整个表单重新填一遍。更大的价值在于, ComfyUI 的工作流可以保存成 JSON 文件。一个 JSON 文件就是一条完整的“生成配方”,别人拿到这个文件,只要环境合理,就能复现相同结构的工作流。
2.1 ComfyUI 中最重要的几个节点
第一次打开 ComfyUI,看到画布上密密麻麻的连线,很多人会本能地退缩。其实一个最基础的文生图流程只有七个左右关键节点,理解它们的输入输出即可:
| 节点名称 | 职责 | 关键输入 | 输出 |
|---|---|---|---|
| CheckpointLoaderSimple | 加载主模型权重 | checkpoint 名称 | MODEL、CLIP、VAE |
| CLIPTextEncode | 把提示词编码成条件向量 | clip、text | CONDITIONING |
| EmptyLatentImage | 创建一张空白潜空间图 | width、height、batch_size | LATENT |
| KSampler | 核心采样去噪,生成图像数据 | model、positive、negative、latent_image、seed、steps、cfg | LATENT |
| VAEDecode | 把潜空间数据还原成像素图 | samples、vae | IMAGE |
| SaveImage | 把图像保存到 output 目录 | images、filename_prefix | 无 |
这里需要注意的是,CheckpointLoaderSimple 一个节点会同时输出三条线:MODEL 是真正负责去噪的模型,CLIP 负责把文字编码成条件,VAE 负责潜空间和像素图之间的转换。新手最容易犯的错误是只连接 MODEL,忽略了 CLIP 和 VAE,最终要么提示词完全不起作用,要么生成出来的图是灰蒙蒙的。
2.2 模型权重里到底有什么
如果要给本地部署选模型,必须先搞清 checkpoint 文件里的结构。以 Stable Diffusion 系模型为例,一个 checkpoint 文件通常同时包含 UNet、CLIP 文本编码器和 VAE 三部分,所以一个模型文件就能把整条生成链路的“底座”配齐。这也是为什么放进 models/checkpoints 目录后,CheckpointLoaderSimple 能一次性输出 MODEL、CLIP、VAE 三条数据线。
与 checkpoints 相关的还有 LoRA。LoRA 是一个体积很小的附加权重文件,它不单独生成图像,而是叠加在 checkpoint 之上改变画风或人物特征。很多 ComfyUI 新手把 LoRA 和 checkpoint 混为一谈,以为下载一个 LoRA 就等于换了一个主模型,结果加载之后发现画风毫无变化。正确的理解是:checkpoint 决定基础画质和底子,LoRA 决定风格的偏置,两者配合使用才能发挥作用。
如果只看表面,很容易把 ComfyUI 理解成一个“给程序员用的高级画图工具”。实际上,节点式工作流更大的价值在工程化:它允许你把 prompt、seed、采样参数、模型选择全部落成 JSON 文件,从而让同一套生成流程在团队成员之间复制和迁移。理解到这一层,后面的安装、选模型、排错才会有明确方向。
3. 环境准备:判断你的电脑跑得动什么
本地部署 AI 生图模型,第一道门槛并不是安装软件,而是硬件评估。很多用户下载了整合包,装到一台没有独立显卡的办公电脑上,结果出图速度慢到无法接受,然后误以为是软件配置有问题。这种情况并不少见,所以我建议在安装前先做一次环境盘点。
3.1 显卡与显存评估
在本地生图这条路上,NVIDIA 显卡目前依然是综合踩坑成本最低的选择。原因在于 PyTorch 的 CUDA 生态最成熟,大多数模型、节点和加速方案都会优先支持 NVIDIA。AMD 显卡虽然可以通过 DirectML 或 Vulkan 方案运行,但适配度和社区排错资料明显少;Apple Silicon 芯片则通过 PyTorch 的 MPS 后端支持,性能不错,但部分第三方节点仍会遇到兼容问题。
| 显存大小 | 可稳定进行的常见任务 | 现实限制 |
|---|---|---|
| 4-6 GB | SD 1.5 系列、512 或 768 尺度文生图 | 上 SDXL 很容易显存不足,大批量出图吃力 |
| 8-12 GB | SDXL、较大分辨率、基础 ControlNet | 同时挂多个 LoRA 或做视频类任务仍可能爆显存 |
| 16 GB 以上 | 高分辨率、多模型切换、LoRA 训练、复杂节点链 | 建议优先使用 NVIDIA,训练时更稳妥 |
如果你的显存在 6 GB 以下,并不是完全不能玩,而是策略要保守:先用 SD 1.5 系模型跑 512 像素尺寸,把流程跑通,再去追求高画质和高分辨率。反过来,如果你的显存有 12 GB 以上,也不要急着把分辨率拉到 1024 以上,因为生成耗时和显存占用会快速增长。
3.2 软件与磁盘准备
安装 ComfyUI 之前,建议先确认以下条件:操作系统推荐 Windows 10/11 的 64 位版本,Linux 也可以,但 Windows 用户社区资料最多;NVIDIA 驱动更新到较新稳定版本,驱动太老时 PyTorch 可能无法正确识别显卡;如果走官方源码路线,需要准备 Python 3.10 或 3.11 以及 Git。除此之外,磁盘空间至少要预留 30 GB 以上,因为一个完整 checkpoint 文件动辄 4-6 GB,再加上后续下载 LoRA、VAE、ControlNet 等模型,空间消耗会比想象中更快。
这里要特别提醒:PyTorch 安装包通常自带 CUDA 运行库,只要显卡驱动足够新,并不需要你单独再去安装一个完整的 CUDA Toolkit。很多新人在这里被误导,以为必须手动安装 CUDA 才能跑 AI 生图,结果装了一堆和 PyTorch 版本不匹配的组件,反而把环境搞得一团糟。
关于 CPU 生成,我的建议是:除非你想用最极端的方式验证“能不能跑”,否则不要指望 CPU 能带来好的出图体验。CPU 推理一张 512 像素的图可能需要几分钟甚至更久,而在同样的电脑上换一张普通 NVIDIA 显卡,速度可能提升几十倍。本地部署 AI 生图的前提是“先有合适硬件”,而不是“先装好软件再说”。
4. 安装 ComfyUI:两种主流方式的对比
ComfyUI 的安装方式大体分成两类。普通 Windows 用户通常会先接触到“整合包”这种形态,比如社区常说的秋叶一键整合包;而有一定开发基础的用户则更倾向于用 Git 拉取官方源码,自己维护虚拟环境和依赖。两种方式没有绝对优劣,取决于你后续的准备做多久。
4.1 整合包模式:适合 Windows 新手
整合包的核心价值是把 Python 解释器、PyTorch、ComfyUI 本体和常用启动器提前打包好,用户不需要自己处理环境依赖。这种方式对第一次接触 AI 生图的人非常友好,尤其适合只想快速跑通流程、先把精力放在提示词和模型上的用户。
使用整合包的注意事项主要是三个。第一,解压路径不要放在带中文、空格或过长路径的目录中,否则某些国产插件或 Python 脚本可能会因为编码问题报错。第二,启动时先看启动器是否能正确识别显卡,如果页面里显示的是 CPU 推理,说明 GPU 没有生效,需要先更新驱动或调整启动参数。第三,整合包只管引擎部分,模型依然需要你自己下载并放到正确目录,它不能帮你解决“模型放哪”的问题。
整合包有一个隐藏风险:它往往捆绑了特定版本的 ComfyUI,而社区的很多新节点、新模型要求内核版本保持更新。如果后续大量使用自定义节点,建议关注整合包作者是否持续同步更新,而不是长期停留在同一个旧版本上。
4.2 官方源码模式:开发和维护更顺手
如果你想长期使用 ComfyUI,甚至希望把工作流沉淀成工程资产,我更推荐直接使用官方源码。源码方式的好处是升级路径清晰,一条git pull就能同步新版,而且虚拟环境由你掌控,不容易被其他 Python 项目干扰。
# 1. 克隆官方仓库 git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI # 2. 创建虚拟环境 python -m venv venv # Windows 激活方式 venv\Scripts\activate # Linux / macOS 激活方式 # source venv/bin/activate # 3. 升级 pip,并安装带 CUDA 的 PyTorch pip install --upgrade pip pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 # 4. 安装 ComfyUI 依赖 pip install -r requirements.txt # 5. 启动 python main.py执行完之后,浏览器访问 http://127.0.0.1:8188 就能看到 ComfyUI 界面。需要说明的是,PyTorch 的具体 CUDA 版本号可能随官方文档更新而变化,安装前最好去 PyTorch 官网的 Get Started 页面复制当前推荐的命令。如果机器没有 NVIDIA 显卡,则不要使用上面这个 index-url。
为了避免每次启动都敲一长串 Python 命令,可以创建一个启动脚本。下面是一个 Windows 批处理文件的例子,功能是切换到 ComfyUI 所在目录并启用虚拟环境:
@echo off cd /d %~dp0 venv\Scripts\activate python main.py --listen 127.0.0.1 --port 8188 pause把它保存为start_comfyui.bat,放在 ComfyUI 项目根目录下,之后双击即可启动。--listen 127.0.0.1表示只允许本机访问,--port 8188是默认端口,如果 8188 被占用,可以改成其他端口。
4.3 如何选择
如果你只想在本机快速测试,并且对 Python 环境没有概念,整合包模式可以让你少走很多弯路。如果你需要长期维护、想保持最新内核、要把工作流文件提交到 Git 仓库或与团队协作,官方源码模式更可控。两种方式的底层引擎相同,节点和工作流文件基本通用,区别主要在于环境管理方式。
| 对比维度 | 整合包模式 | 官方源码模式 |
|---|---|---|
| 安装速度 | 很快,解压即用 | 需要自己配 PyTorch,网络依赖环境 |
| 升级能力 | 依赖整合包作者更新 | git pull 即可同步版本 |
| 自定义参数 | 通常有启动器界面,但部分参数受限 | 可直接修改 Python 启动命令 |
| 排错难度 | 傻瓜化,但出问题时更难定位 | 环境透明,问题可复现、可追溯 |
| 适合人群 | Windows 新手、快速验证 | 开发者、长期使用者、团队协作 |
5. 模型下载与目录管理:90% 新人在这里卡住
ComfyUI 启动成功只能说明引擎转起来了,真正决定出图质量的是模型文件。新手最常见的错误,是把下载的模型一股脑放到某处,然后在节点下拉框里找不到它。ComfyUI 扫描模型的逻辑非常简单:它只看固定目录下的文件,不看系统其他位置。所以第一步不是学参数,而是学会“把模型放在它该在的地方”。
5.1 模型目录规划
ComfyUI 项目根目录下有一个models文件夹,里面按模型类型分子目录。下面是最常用的几个:
| 子目录 | 存放内容 | 对应节点 |
|---|---|---|
| models/checkpoints | 主模型,即完整 checkpoint 或 diffusers 格式 | CheckpointLoaderSimple |
| models/loras | LoRA 附加权重 | LoraLoader / LoraLoaderModelOnly |
| models/vae | 单独下载的 VAE 文件 | VAELoader |
| models/controlnet | ControlNet 模型 | ControlNetLoader |
| models/embeddings | 负面词或特殊风格 embedding | 直接通过提示词文件名引用 |
如果你是从 Stable Diffusion WebUI 迁移过来的用户,可能已经有一套自己的模型库,没必要重复复制。ComfyUI 支持通过 `