ComfyUI 本地部署完全指南:SDXL 出图环境与显存占用实测

ComfyUI 本地部署完全指南:SDXL 出图环境与显存占用实测

内容标识:本文为 AI 辅助生成内容。依据 《人工智能生成合成内容标识办法》2025-09-01,已添加显式标识(本声明)与隐式标识(文件元数据 / 图片 ComfyUI 元信息)。文中技术细节与结论均由作者复核确认。

上一篇我们聊过在 PVE 虚拟机里跑本地大模型,解决了"文本模型本地跑"的问题。但光有文本还不够——很多工作流(自媒体配图、AI 漫剧、产品示意)都需要稳定的本地出图能力。云 API 按张计费、排队还受限流,而自己显卡上的 ComfyUI 一次部署、随用随出,边际成本几乎为零。这篇记录我们实际的 ComfyUI 部署流程,并在真实机器上实测了 SDXL 出图的显存占用——数据不是网上抄的,是部署当天轮询 API 记下来的。

环境准备:Python 版本与依赖隔离

ComfyUI 对 Python 版本比较敏感,官方推荐 Python 3.10–3.12,建议用独立虚拟环境隔离,不要污染系统 Python:

git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
python -m venv venv
source venv/bin/activate  # Windows 下用 venv\Scripts\activate
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
pip install -r requirements.txt

先交代本文的实测环境(取自部署机 /system_stats 接口返回):

  • 显卡:NVIDIA GeForce RTX 4070 Ti SUPER,16 GB 显存
  • ComfyUI 0.38.0,Python 3.12.3,PyTorch 2.14.0+cu130,Linux
  • 底模:Juggernaut-XL v9(SDXL 系)

国内网络环境下,GitHub 克隆和 PyPI 下载都可能很慢,pip 可以加 -i https://pypi.tuna.tsinghua.edu.cn/simple 换清华源。

模型目录规范:一处存储,多处复用

ComfyUI 默认在 ComfyUI/models/ 下按类型分目录:checkpoints(底模)、loras、vae、controlnet、upscale_models 等。SDXL 底模普遍 6–7 GB,如果机器上还跑其他出图工具或训练脚本,强烈建议用 extra_model_paths.yaml 统一指向一个公共模型仓库,避免每套工具各存一份:

a111:
  base_path: /data/ai-models/
  checkpoints: models/Stable-diffusion
  loras: models/Lora
  vae: models/VAE
  controlnet: models/ControlNet

启动命令很朴素:

python main.py --listen 0.0.0.0 --port 8188

加 --listen 后局域网内其他机器也能访问 Web UI,适合"显卡在服务器、操作在笔记本"的场景;只本机用就去掉,安全一些。我们的部署正是这种模式:ComfyUI 跑在机房工作站上,日常操作从办公机浏览器访问。

ComfyUI 主界面:右侧任务队列可见本次实测的 bench 出图任务

上图是我们部署机的实际界面,右侧任务队列里能看到本次实测留下的 bench_* 出图记录(单张 6.6 秒、批量 4 张 25 秒那一组)。

SDXL 显存实测:批大小远比想象中便宜

测试方法:用同一个标准 SDXL 工作流(Empty Latent → KSampler → VAE Decode,euler 采样器、30 步、CFG 7),通过 ComfyUI 的 /prompt API 提交任务,同时以 0.3 秒间隔轮询 /system_stats 接口的显存占用,记录整个出图过程中的峰值。三组规格的结果:

出图规格 批大小 显存峰值 总耗时 摊到单张
1024×1024 1 7.22 GB 7.2 s 7.2 s
1024×1024 4 8.05 GB 27.4 s 6.9 s
1536×640(宽屏) 1 7.18 GB 7.0 s 7.0 s

SDXL 1024x1024 单张实测出图(Juggernaut-XL v9,梯田晨光)

上面这张就是 1024×1024 单张组的实际产出(提示词:清晨的山间梯田)。三组数据里有几个值得注意的点:

  • 批大小对显存的影响出奇地小:batch 从 1 加到 4,显存峰值只多了 0.83 GB,总耗时 27.4 秒、单张摊薄到 6.9 秒反而更快。需要批量出图(比如一次给文章配 4 张候选)时,放心开 batch。

SDXL 1024x1024 批量 4 张实测出图之一

上面这张来自批量 4 张组,与单张组同为 1024×1024、同样提示词风格,画质没有因为批量而打折。

  • 显存看的是像素总量,不是宽高比:1536×640(98 万像素)和 1024×1024(105 万像素)峰值几乎一样,都是 7.2 GB 左右。想超这个分辨率档位,显存才会明显跳涨。
  • 8 GB 显卡是 SDXL 的入门线:单张 7.22 GB 的峰值意味着 8 GB 卡刚好压线,建议加 --lowvram 或启用 VAE tiling 防解码阶段爆显存;16 GB 卡则有充分余量挂 LoRA、ControlNet。
  • 显存实在紧张时,启动参数 --cpu-vae 可以把 VAE 解码挪到内存执行,牺牲几秒速度换稳定性。

工作流管理:把"一次出图"变成"可复用流水线"

ComfyUI 的核心价值不是"又一个出图界面",而是节点化工作流可以保存为 JSON 反复复用。我们的实际做法:

  • 工作流 JSON 按用途归档(如 sdxl-basic.json、图生视频首帧工作流),纳入 git 管理;
  • 出图 PNG 默认嵌入完整工作流元数据,日后拖回界面即可复现全部参数;
  • 工作流成熟后,把 ComfyUI 的 /prompt API 当"出图后端",由上层脚本统一调度——本站题图就是用这条流水线自动产出并挂载的,本次实测脚本也是直接调 API 完成的。

总结

ComfyUI 本地部署的关键就三件事:Python 环境隔离、模型目录统一、显存量力而行。从我们的实测看,SDXL 标准分辨率的显存峰值约 7.2 GB,8 GB 卡压线可玩、16 GB 卡从容;批量出图几乎不加显存还摊薄耗时,是被低估的性价比手段。最后建议部署完立刻跑一次标准工作流并记录自己机器的峰值作为基准线——后续每加一类节点,对照这条线就能快速判断显存是否超配。

类似文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注