用Docker!自建 ComfyUI 容器,这笔记也是修修改改无数遍,windows系统comfyui首选用docker!
docker 必须支持 GPU
bash
docker run --rm --gpus all nvidia/cuda:12.6.0-base-ubuntu22.04 nvidia-smi
成功才继续
一、在 E:\ComfyUI_Projects\lipsync\ 目录下新建两个文件
- 文件 1:Dockerfile(完整企业级版本)
新建文件 Dockerfile,内容全部复制下面代码(最终内容:gpt+grok+deepseek):
bash
# ==================== 企业级 ComfyUI 自建镜像(RTX 5060 Ti 专用) ====================
FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive
ENV COMFYUI_PATH=/comfy
ENV PATH="${COMFYUI_PATH}/venv/bin:$PATH"
# 1. 使用阿里云 apt 源 + 安装基础依赖
RUN sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list && \
apt-get update && apt-get install -y \
software-properties-common \
&& add-apt-repository ppa:deadsnakes/ppa -y \
&& apt-get update \
&& apt-get install -y \
git python3.10 python3.10-venv python3.10-dev \
libgl1 libglib2.0-0 libsm6 libxext6 libxrender-dev libgomp1 \
wget curl ffmpeg \
&& rm -rf /var/lib/apt/lists/*
# 2. 创建工作目录
WORKDIR ${COMFYUI_PATH}
# 3. 先克隆 ComfyUI 主程序(直接官方地址,稳定)
RUN git clone https://github.com/comfyanonymous/ComfyUI.git .
# 4. 创建虚拟环境
RUN python3.10 -m venv venv
# 5. 安装 PyTorch Nightly cu128(支持 RTX 5060 Ti Blackwell)
RUN . venv/bin/activate && \
pip install --no-cache-dir --pre torch torchvision torchaudio \
--index-url https://download.pytorch.org/whl/nightly/cu128
# 6. 安装 ComfyUI 主程序依赖
RUN . venv/bin/activate && \
pip install --no-cache-dir -r requirements.txt
# 7. 预装 Wav2Lip 核心依赖
RUN . venv/bin/activate && \
pip install --no-cache-dir \
opencv-python-headless librosa imageio ffmpeg-python
# 8. 安装 ComfyUI-Manager + 三大核心节点
RUN . venv/bin/activate && \
mkdir -p custom_nodes && \
cd custom_nodes && \
git clone https://github.com/ltdrdata/ComfyUI-Manager.git && \
git clone https://github.com/ShmuelRonen/ComfyUI_wav2lip.git && \
git clone https://github.com/Gourieff/ComfyUI-ReActor.git && \
git clone https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite.git
# 9. 分别安装三个节点的依赖
RUN . venv/bin/activate && \
cd custom_nodes/ComfyUI_wav2lip && pip install --no-cache-dir -r requirements.txt && \
cd ../ComfyUI-ReActor && pip install --no-cache-dir -r requirements.txt && \
cd ../ComfyUI-VideoHelperSuite && pip install --no-cache-dir -r requirements.txt
# 10. 启动命令
EXPOSE 8188
CMD ["/comfy/venv/bin/python", "main.py", "--listen", "0.0.0.0", "--force-fp16", "--preview-method", "auto"]
- 文件 2:compose.yaml(已适配自建路径),把现有的 compose.yaml 全部替换为下面内容:
yaml
services:
comfy-lipsync:
build: .
container_name: comfy-lipsync
restart: unless-stopped
ports:
- "8189:8188"
volumes:
- E:/ComfyUI_Models:/comfy/models
- E:/ComfyUI_Workflows:/comfy/user/default/workflows
- ./input:/comfy/input
- ./output:/comfy/output
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
environment:
- CLI_ARGS=--listen 0.0.0.0 --force-fp16 --preview-method auto
二、构建并启动(真实可运行命令)
在 E:\ComfyUI_Projects\lipsync 目录下执行:
powershell
# 1. 构建镜像(第一次会花 10~20 分钟,之后极快)
cd /d E:\ComfyUI_Projects\lipsync
docker-compose build --no-cache
# 2. 启动容器
podman-compose up -d
验证命令(构建完成后立即执行):
powershell
podman-compose ps
podman logs comfy-lipsync --tail 50
成功标志:看到 "ComfyUI started" 或 "To see the GUI go to" 字样。
浏览器打开 http://127.0.0.1:8189 测试。
模型放置提醒(必须放对)
- wav2lip_gan.pth → E:\ComfyUI_Models\facerestore_models\wav2lip_gan.pth
- GFPGANv1.4.pth → E:\ComfyUI_Models\facerestore_models\GFPGANv1.4.pth
!(不再用podman), Podman 环境已不可修复,必须重建(不是修,是重装级别)
c
E:\ComfyUI_Projects\lipsync>podman system prune -a -f
Cannot connect to Podman. Please verify your connection to the Linux system using `podman system connection list`, or try `podman machine init` and `podman machine start` to manage a new Linux VM
Error: unable to connect to Podman socket: failed to read identity "C:\\Users\\65193\\.local\\share\\containers\\podman\\machine\\machine": open C:\Users\65193\.local\share\containers\podman\machine\machine: The system cannot find the file specified.
E:\ComfyUI_Projects\lipsync>podman machine start
Starting machine "podman-machine-default"
Error: command C:\WINDOWS\system32\wsl.exe [-u root -d podman-machine-default sh] failed: exit status 0xffffffff (wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理。
<3>WSL (9785 - Relay) ERROR: CreateProcessParseCommon:986: getpwnam(root) failed 5)
E:\ComfyUI_Projects\lipsync>
一、彻底清理 Podman + WSL 残留
- 关闭 WSL
c
wsl --shutdown
- 删除 Podman Machine(强制)
c
podman machine rm -f
如果报错(大概率)👇👉 手动删:
c
C:\Users\65193\.local\share\containers\podman
- 删除 WSL 虚拟机(关键)
c
wsl -l -v
你会看到:
c
podman-machine-default
删除它:
c
wsl --unregister podman-machine-default
二、重新初始化 Podman(干净重建)
bash
podman machine init --disk-size 100
👉 注意:- 给 100GB(你做AI视频必须),然后:
bash
podman machine start
三、修改存储到 D盘(避免再炸),也可以/mnt/e/podman-storage,改到E盘
执行:
bash
podman machine ssh
进入 Linux 后:
bash
sudo mkdir -p /mnt/e/podman-storage
然后编辑:
bash
sudo vi /etc/containers/storage.conf
写入:
bash
[storage]
driver = "overlay"
graphroot = "/mnt/e/podman-storage"
重启:
bash
exit
podman machine stop
podman machine start
安装 podman-compose
- 在 Windows 命令提示符(管理员身份) 执行下面命令:
c
:: 1. 安装 podman-compose(只需执行一次)
pip install podman-compose
:: 2. 验证安装成功
podman-compose --version
- 启动容器(最终命令)
c
:: 切换到项目目录
cd /d E:\ComfyUI_Projects\lipsync
:: 使用 podman-compose 启动(企业级推荐命令)
podman-compose up -d
- 永久加入 PATH(企业级推荐,之后所有命令都可直接用 podman-compose)
- 右键 此电脑 → 属性 → 高级系统设置 → 环境变量
- 在"用户变量"中找到 Path,点击"编辑"
- 点击"新建",添加下面这一行:
bash
C:\Users\65193\AppData\Roaming\Python\Python313\Scripts
四、在Windows上配置Podman GPU支持,确保已启用 WSL2 作为Podman的后端
- 重置并重新初始化 Podman 机器(推荐)
这是最直接有效的方法,可以清除潜在的状态异常。
bash
# 停止当前虚拟机
podman machine stop
# 删除现有虚拟机(放心,这不会影响你的 Windows 文件)
podman machine rm podman-machine-default
# 重新创建一个新虚拟机,并分配更多资源
podman machine init --cpus 6 --memory 8192 --disk-size 120
# 启动新虚拟机
podman machine start
- 说明:--cpus 根据你的 CPU 核心数调整,--memory 单位是 MB,--disk-size 单位是 GB。RTX 5060 建议至少分配 8GB 内存。
- 验证连接是否恢复
重置完成后,运行一个简单命令测试:
bash
podman version
如果输出了客户端和服务端的版本信息,说明连接已成功恢复。
- 进入虚拟机并安装 NVIDIA Container Toolkit
bash
# 通过 SSH 进入 Podman 虚拟机
podman machine ssh
此时您将进入一个 Linux 终端(通常显示 [user@fedora ~]$),然后执行以下命令:
bash
# 添加 NVIDIA 官方仓库并安装工具包
curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo | sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
sudo yum install -y nvidia-container-toolkit
# 生成 CDI 配置文件
sudo nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml
# 验证配置
sudo nvidia-ctk cdi list
完成后输入 exit 退出虚拟机。
- 测试 GPU 访问
在 Windows 命令行中执行:
bash
podman run --rm --device nvidia.com/gpu=all nvidia/cuda:12.8.0-base-ubuntu22.04 nvidia-smi
如果看到您的 RTX 5060 显卡信息,就大功告成了!
- 切换默认连接命令是:podman system connection default podman-machine-default