如果你在 VPS 上跑过 Stable Diffusion 的 WebUI,应该已经感受到模型管理和工作流复用的痛点。ComfyUI 用节点图的方式把 AI 图片生成拆成可组合的模块,但部署和素材管理踩坑的人不少。这篇直接讲怎么在 VPS 上装好 ComfyUI,把节点、模型和素材理清楚,避免跑着跑着缺文件或爆磁盘。

在 VPS 上部署 ComfyUI 的基础环境
ComfyUI 官方推荐 Python 3.8+,实测 3.10 最稳。先装好 Git、Python 和虚拟环境工具。
sudo apt update && sudo apt upgrade -y
sudo apt install -y git python3-venv python3-pip
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
python3 -m venv venv
source venv/bin/activate
pip install torch torchvision torchaudio –index-url https://download.pytorch.org/whl/cu118
pip install -r requirements.txt
启动前检查端口:默认 8188。VPS 防火墙记得放行。
sudo ufw allow 8188/tcp
运行 ComfyUI:
python main.py –listen 0.0.0.0
浏览器访问 `http://你的VPSIP:8188` 即可看到节点画布。注意:第一次启动没有模型,界面是空白的。
节点管理:安装自定义节点和更新
ComfyUI 的核心优势是社区节点。官方管理器(ComfyUI-Manager)能省大量时间。
安装 ComfyUI-Manager
cd ComfyUI/custom_nodes
git clone https://github.com/ltdrdata/ComfyUI-Manager.git
cd ComfyUI-Manager
pip install -r requirements.txt
重启 ComfyUI 后,界面右上角会出现“Manager”按钮。点进去可以搜索、安装、更新节点。
老鸟叮嘱:节点版本变化快,安装后如果报错,先看 Manager 里的“Update All”按钮。有些节点依赖特定 Python 包,缺什么 pip 装什么,别直接重装整个 ComfyUI。
常见节点分类
•控制类:ControlNet、T2I-Adapter、IP-Adapter
•放大类:Ultimate SD Upscale、Tile
•工具类:WAS Node Suite(图像处理)、Efficiency Nodes(简化工作流)
•视频类:AnimateDiff、SVD
安装时注意节点之间的依赖关系,比如 AnimateDiff 需要安装 Motion Module 模型。Manager 里通常有详细说明。
模型管理:存放路径与组织方式
模型文件占空间最大,管理不好 VPS 硬盘很快爆满。ComfyUI 的模型目录结构如下:
ComfyUI/models/
├── checkpoints/ # 主模型(.safetensors)
├── clip/ # CLIP 模型
├── clip_vision/ # CLIP Vision
├── controlnet/ # ControlNet 模型
├── diffusers/ # Diffusers 格式
├── embeddings/ # Textual Inversion
├── gligen/ # GLIGEN
├── hypernetworks/ # Hypernetwork
├── ipadapter/ # IP-Adapter
├── loras/ # LoRA 模型
├── style_models/ # Style Models
├── upscale_models/ # 放大模型
├── vae/ # VAE
实战建议:
1. 用软链接把模型目录挂到独立数据盘,避免系统盘写满。
2. 只下载需要的模型,别贪多。一个 Stable Diffusion XL 模型就 7GB,LoRA 通常几十 MB。
3. 模型下载推荐用 Hugging Face CLI 或 wget,不要直接用浏览器下载到 VPS(速度慢且中断)。
cd ComfyUI/models/checkpoints
wget https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors
老鸟叮嘱:模型文件名决定了 ComfyUI 加载时的显示名称。建议保留原名或加前缀如 `[SDXL]` 方便识别。另外,模型格式优先选 `.safetensors`,比 `.ckpt` 更安全。
素材管理:图片输入输出与工作流文件
ComfyUI 默认的输入输出目录:
ComfyUI/
├── input/ # 放参考图、蒙版等
├── output/ # 生成结果
├── workflows/ # 保存的工作流(.json)
输入图片管理
• 上传图片直接拖入节点画布,ComfyUI 会自动保存到 `input` 目录。
• 批量图片建议用 FTP 或 scp 传到 `input` 目录,避免网页上传卡顿。
• 图片格式兼容 PNG、JPG、WebP。透明图用 PNG。
输出图片管理
• 默认生成图片按日期分文件夹,如 `2025-03-21`。
• 长期运行建议定期清理或挂载到对象存储。可以写个 cron 任务压缩旧图。
0 3 * * 1 cd /path/to/ComfyUI/output && tar -czf backup_$(date +\%Y\%m\%d).tar.gz $(find . -mtime +7 -type d)
工作流文件
• 工作流以 JSON 格式保存,可分享、可复用。
• 建议用 Git 管理工作流文件,方便版本回溯。
cd ComfyUI/workflows
git init
git add *.json
git commit -m "初始工作流"
老鸟叮嘱:工作流里如果包含节点路径或模型文件名,换机器后可能加载失败。发布工作流前用 Manager 里的“Workflow Validator”检查一下。
常见踩坑与排障
内存不足导致崩溃
ComfyUI 加载大模型(如 SDXL)时,8GB 内存的 VPS 很容易 OOM。解决方案:
• 使用 `–lowvram` 参数启动:`python main.py –lowvram`
• 或设置 `–normalvram`(默认是平衡模式)
• 减少同时运行的节点数量,尤其是 ControlNet 和放大节点
节点报错“No module named xxx”
通常是缺少依赖。进入对应节点的目录,看 `requirements.txt` 或手动装。
cd ComfyUI/custom_nodes/节点名
pip install -r requirements.txt
模型加载失败“Error loading model”
• 检查模型文件是否完整(用 a256sum` 对比官方哈希)
• 检查模型是否放在正确的目录(比如 LoRA 放 loras,不是 checkpoints)
• 检查 CUDA 版本是否兼容。如果 VPS 没有 GPU,用 CPU 模式会很慢,但能跑。
老鸟叮嘱
1.不要用 root 跑 ComfyUI。创建专用用户,避免权限问题。
2.定期备份工作流。节点更新可能导致旧工作流不兼容,备份能回滚。
3.磁盘空间监控。模型和输出文件增长快,设置磁盘告警(如 `df -h` 配合 cron)。
4.安全第一。ComfyUI 默认没有认证,如果暴露公网,务必加 Nginx 反向代理+密码或 IP 白名单。
FAQ
Q: ComfyUI 和 Stable Diffusion WebUI 哪个更适合 VPS 部署?
A: ComfyUI 更轻量,资源占用低,适合 VPS;WebUI 功能全但吃内存。如果只是图片生成,ComfyUI 更优。
Q: VPS 没有 GPU 能跑 ComfyUI 吗?
A: 可以,但只能用 CPU 推理,速度极慢(一张 512×512 图片可能需要几分钟)。建议至少有一张 4GB 以上显存的 GPU。
Q: 如何批量生成图片?
A: 用“Save Image”节点配合“Queue Prompt”的批量模式。也可以写脚本调用 ComfyUI API。
Q: 模型下载到哪里找?
A: Hugging Face、Civitai 是主要来源。注意模型协议,有些禁止商用。
Q: 工作流在不同机器间迁移需要注意什么?
A: 确保模型文件名和路径一致。推荐用相对路径,或在工作流里使用节点默认路径。
Q: ComfyUI 更新后节点不兼容怎么办?
A: 先备份 workflows 和 custom_nodes,然后更新 ComfyUI 本体,再用 Manager 逐个更新节点。如果还报错,回滚到旧版本。
ComfyUI 的节点化设计让 AI 图片生成工作流变得灵活可控,但模型和素材管理才是长期稳定运行的关键。把目录结构理清、做好备份和监控,VPS 上跑 ComfyUI 就能成为生产力工具而非折腾源头。
转载请注明出处:https://www.zhujixuan.com/jishujiaocheng/9920.html 商家投稿邮箱:zhujixuanblog@qq.com
