绿联 NAS + 1Panel 部署 ComfyUI 完整教程

绿联 NAS × ComfyUI 部署教程封面

折腾 NAS 的人大概都懂:东西装上了,但它不干活,比装不上还难受。我这台绿联 NAS(DXP 系列)上的 ComfyUI 就闹了这么一出——装完容器疯狂重启,日志刷屏报错。排查了一整晚,总算搞明白:不是显卡穿透的问题,而是「容器里的 PyTorch 太新,驱动太旧」。这篇文章把完整的排查过程和修复方案记录下来,希望能帮到同样踩坑的朋友。

一、环境与故障现象

先交代一下环境,方便你对号入座:

  • 绿联 NAS(DXP 系列);
  • 1Panel 应用商店版 ComfyUI;
  • NVIDIA 驱动 570.181;
  • 显卡:RTX 4070 Ti SUPER。

故障现象:ComfyUI 装好后,容器反复异常重启,日志里一直在报:

RuntimeError: The NVIDIA driver on your system is too old (found version 12080).

二、问题定位:12080 到底是什么

先说结论:12080 就是 CUDA 12.8。NVIDIA 驱动 570.181 对应的正好是 CUDA 12.8,而 1Panel 商店镜像里内置的新版 PyTorch 是 CUDA 13.x 编译的,要求驱动至少 580。两边对不上,CUDA 初始化失败,后面就全崩了。

整个链条是这样的:CUDA 初始化失败 → comfy_kitchen 的 cuda 后端不可用 → model_management.py 调用 torch.cuda.current_device() 抛异常 → 进程崩溃 → 容器进入重启循环。

💡 关键结论:显卡穿透没有问题——日志能报出 12080,恰恰说明 GPU 已经透传进去了。问题纯粹是「容器里的 PyTorch 太新、驱动太旧」的版本不匹配。

附一张驱动和 CUDA 的对应关系表,方便对照:

NVIDIA 驱动对应 CUDA 版本说明
570.18112.8(12080)570 系列最高支持 CUDA 12.8
580.x+13.x支持 CUDA 13.0 及更新运行时

三、修复思路:为什么必须用「派生镜像」

1Panel 商店应用是预构建镜像,容器内的文件系统不持久。直接 docker exec 进去 pip install,一旦重建就全还原,等于白干。

正确的做法:基于官方镜像做一个「把 PyTorch 换成 cu128 构建」的派生镜像,再让 1Panel 使用它。改一次永久生效,想回退也简单。

四、操作步骤

4.1 准备

先在绿联控制台开启 SSH;再到 1Panel 里停掉 ComfyUI,免得崩溃循环一直刷日志;登录后 sudo -i 提权。

4.2 找到应用目录和镜像

find /opt/1panel -maxdepth 4 -name docker-compose.yml 2>/dev/null | grep -i comfy

预期输出(实际名字以你的为准):

/opt/1panel/apps/comfyui/comfyui-zxgJ/docker-compose.yml
grep -nE "image:|gpus|runtime:|devices" /opt/1panel/apps/comfyui/comfyui-zxgJ/docker-compose.yml

记下 image 那一行的值(比如 1panel/comfyui:v0.33.1),以及 GPU 的配置方式(runtime: nvidia 或 gpus/devices),后面用得到。

4.3 确认镜像里的 torch 版本

docker run --rm --entrypoint python 1panel/comfyui:v0.33.1 -c "import torch; print (torch.__version__)"

预期输出类似 2.13.0+cu130——没错,这就是报错根源。

4.4 编写 Dockerfile

先建目录:

mkdir -p /opt/comfyui-cu128

在里面创建 Dockerfile,内容如下:

FROM 1panel/comfyui:v0.33.1
RUN pip install --break-system-packages --root-user-action=ignore \
    torch==2.7.1+cu128 \
    torchvision==0.22.1+cu128 \
    torchaudio==2.7.1+cu128 \
    --index-url https://mirrors.nju.edu.cn/pytorch/whl/cu128 \
    --extra-index-url https://pypi.tuna.tsinghua.edu.cn/simple

版本怎么选?以 4.3 查到的镜像内 torch 主版本为准,对照下表:

镜像内 torch替换为(cu128 组合)
2.11.xtorch==2.11.0+cu128 torchvision==0.26.0+cu128 torchaudio==2.11.0+cu128
2.10.xtorch==2.10.0+cu128 torchvision==0.25.0+cu128 torchaudio==2.10.0+cu128
2.9.xtorch==2.9.0+cu128 torchvision==0.24.0+cu128 torchaudio==2.9.0+cu128
2.7.x(本文实测)torch==2.7.1+cu128 torchvision==0.22.1+cu128 torchaudio==2.7.1+cu128
⚠️ 注意:cu128 的 wheel 最高只发布到 2.11.0,2.12/2.13 都没有 +cu128 构建,千万别照抄镜像里的版本号。

镜像源方面,有三个坑提前给你说:

说明正确做法
版本号torch==2.13.0+cu128 不存在,报 No matching distribution按对照表选实际存在的 cu128 版本
--no-depscu128 wheel 不内置 CUDA 运行库,依赖 nvidia-*-cu12 pip 包,跳过会报 libcudart.so.12 找不到千万不要加 --no-deps
阿里云源pytorch-wheels/cu128 只是文件浏览目录,不是 pip 标准索引,报 from versions: none用南大源 + 清华源

4.5 构建派生镜像

cd /opt/comfyui-cu128
docker build -t comfyui-cu128:v0.33.1 .

构建会下载 2~3 GB 的 wheel,先确认磁盘空间够用。

4.6 验证 GPU

docker run --rm --gpus all --entrypoint python comfyui-cu128:v0.33.1 -c "import torch; print (torch.__version__); print (torch.cuda.is_available()); print (torch.cuda.get_device_name(0))"

期望输出:torch 2.7.1+cu128 / CUDA available: True / NVIDIA GeForce RTX 4070 Ti SUPER。如果 --gpus all 不生效,就按 4.2 看到的配置改用 --runtime nvidia,或补上设备映射。

4.7 让 1Panel 使用新镜像

编辑 compose,只改 image 一行:

image: 1panel/comfyui:v0.33.1    # 改为
image: comfyui-cu128:v0.33.1
⚠️ 重要:只动 image 一行,gpus / runtime / devices / volumes / ports 保持原样——那些是 1Panel 注入的 GPU 配置,别手痒去改。

然后在 1Panel 界面点「重建」,或者直接在命令行操作:

cd /opt/1panel/apps/comfyui/comfyui-zxgJ
docker compose up -d --force-recreate

4.8 验收

看日志,不再出现 found version 12080,出现 Starting server / http://0.0.0.0:8188;浏览器打开 http://<NAS IP>:8188 就能进界面了。再顺手复核一下:

docker exec 1Panel-comfyui-zxgJ python -c "import torch; print (torch.__version__, torch.cuda.is_available())"

五、常见问题与避坑

问题原因解决
日志报 xformers 错误原镜像 xformers 是 cu130 版,与 cu128 torch 不兼容卸载 xformers(ComfyUI 自动回退到内置 SDPA),或在 Dockerfile 加 RUN pip uninstall -y xformers 重建
1Panel 升级后旧问题复现升级会重新生成 compose 并指回官方镜像按 4.4~4.7 重做一遍
import torch 报 libcudart.so.12 找不到构建时加了 --no-deps去掉 --no-deps,保留清华源,重新 build
构建报 No matching distribution版本号写错(比如 2.13.0+cu128)按对照表使用实际存在的 cu128 版本
阿里云源报 from versions: none该目录不是 pip 标准索引使用南大源 + 清华源
镜像内残留 cu13 包旧 torch 的 nvidia-*-cu13 未卸载无害可忽略;介意的话在 Dockerfile 追加清理命令

六、回退与后续维护

想回退很简单:把 compose 的 image 改回官方值,重建即可;要清理镜像就 docker rmi comfyui-cu128:v0.33.1。

以后 1Panel 升级应用,会把 compose 指回官方镜像,按本文再重做一遍就行。想一劳永逸,可以把派生镜像推到自己的私有仓库,下次直接拉。

七、参考资料

  • ComfyUI 官方仓库:https://github.com/Comfy-Org/ComfyUI
  • PyTorch 官方 cu128 wheel 索引:https://download.pytorch.org/whl/cu128
  • 南京大学 PyTorch 镜像:https://mirrors.nju.edu.cn/pytorch/whl/cu128
消息盒子

# 暂无消息 #

只显示最新10条未读和已读信息