【笔记】Podman Desktop 部署 开源数字人 HeyGem.ai

Podman Desktop 部署 HeyGem.ai ( Docker 替代方案)

准备阶段

  1. 下载并安装Podman Desktop

    Podman
    Podman Desktop:现代轻量容器管理利器(Podman与Docker)

    • Podman官网 下载最新版本
    • 安装时选择合适的安装目录
  2. 配置Podman Desktop

    • 迁移储存目录到非系统盘(如D盘)
    • 启用GPU支持(参考你的博客)
    • 初始化Podman机器

Windows 开发环境部署指南:WSL、Docker Desktop、Podman Desktop 部署顺序与存储路径迁移指南

环境配置阶段

新!在 podman-machine-default 中安装 CUDA、cuDNN、Anaconda、PyTorch 等并验证安装
用Podman Desktop创建自用的WSL-Fedora Linux子系统

  1. 配置Podman机器(非必须)

    复制代码
    # 停止默认机器(如果存在)
    podman machine stop
    podman machine rm podman-machine-default -f
    
    # 创建新机器,指定资源配置
    podman machine init --cpus=8 --memory=16GB --disk-size=100GB
    podman machine start
  2. 安装NVIDIA容器工具包(建议着重关注 GPU 支持部分)

    【笔记】在 Podman Machine(Fedora 42)中安装 NVIDIA Container Toolkit 使镜像能使用GPU
    【笔记】 Podman Desktop 中部署 Stable Diffusion WebUI (GPU 支持)

    复制代码
    # 连接到Podman机器
    podman machine ssh
    
    # 添加NVIDIA CUDA仓库
    sudo dnf config-manager --add-repo=https://developer.download.nvidia.com/compute/cuda/repos/fedora42/x86_64/cuda-fedora42.repo
    sudo rpm --import https://developer.download.nvidia.com/compute/cuda/repos/fedora42/x86_64/3bf863cccb5d8950fff.pub
    
    # 安装NVIDIA驱动和工具包
    sudo dnf install -y nvidia-container-toolkit nvidia-driver-cuda
    
    # 配置容器运行时
    sudo nvidia-ctk runtime configure --runtime=crun
    sudo systemctl restart crun podman

项目部署阶段

  1. 克隆HeyGem.ai仓库

    duixcom/Duix-Avatar: 🚀 Truly open-source AI avatar(digital human) toolkit for offline video generation and digital human cloning.

    复制代码
    # 在Windows中克隆仓库
    git clone https://github.com/duixcom/Duix-Avatar.git F:\PythonProjects\HeyGem.ai
    cd F:\PythonProjects\HeyGem.ai
  2. 创建并激活虚拟环境

    PyCharm 链接 Podman Desktop 的 podman-machine-default Linux 虚拟环境

    复制代码
    # 在Windows中创建虚拟环境
    python -m venv .venv
    .venv\Scripts\activate
    
    # 安装必要的Python工具
    python -m pip install -U pip setuptools wheel
  3. 在项目虚拟环境中安装podman-compose

    复制代码
    # 安装podman-compose
    pip install podman-compose
  4. 创建配置文件(重点)

    复制代码
    # 在Windows的项目目录中创建配置文件
    cd F:\PythonProjects\HeyGem.ai\deploy
    notepad podman-compose_high_ports.yml
  5. podman-compose_high_ports.yml 文件内容(重点)

    以下是经实践并修改过文件的内容

    复制代码
    version: '3.8'
    
    networks:
      ai_network:
        driver: bridge
    
    services:
      heygem-tts:
        image: guiji2025/fish-speech-ziming
        container_name: heygem-tts
        restart: always
        environment:
          - NVIDIA_VISIBLE_DEVICES=all
          - NVIDIA_DRIVER_CAPABILITIES=all
        ports:
          - "28180:8080"  # 使用更高端口:28180 -> 8080
        volumes:
          - type: bind
            source: "d:/heygem_data/voice/data"
            target: "/code/data"
          - /usr/lib/wsl:/usr/lib/wsl:ro
          - /usr/lib64/nvidia:/usr/lib/wsl/drivers/nv_dispsi.inf_amd64_8fb57f19613dba6f:ro
        command: /bin/bash -c "/opt/conda/envs/python310/bin/python3 tools/api_server.py --listen 0.0.0.0:8080"
        networks:
          - ai_network
        privileged: true
    
      heygem-asr:
        image: guiji2025/fun-asr
        container_name: heygem-asr
        restart: always
        privileged: true
        working_dir: /workspace/FunASR/runtime
        ports:
          - "20095:10095"  # 使用更高端口:20095 -> 10095
        command: sh /run.sh
        environment:
          - NVIDIA_VISIBLE_DEVICES=all
          - NVIDIA_DRIVER_CAPABILITIES=all
        volumes:
          - /usr/lib/wsl:/usr/lib/wsl:ro
          - /usr/lib64/nvidia:/usr/lib/wsl/drivers/nv_dispsi.inf_amd64_8fb57f19613dba6f:ro
        networks:
          - ai_network
    
      heygem-gen-video:
        image: guiji2025/heygem.ai
        container_name: heygem-gen-video
        restart: always
        privileged: true
        volumes:
          - type: bind
            source: "d:/heygem_data/face2face"
            target: "/code/data"
          - /usr/lib/wsl:/usr/lib/wsl:ro
          - /usr/lib64/nvidia:/usr/lib/wsl/drivers/nv_dispsi.inf_amd64_8fb57f19613dba6f:ro
          - /code/data/log
        environment:
          - PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:512
          - NVIDIA_VISIBLE_DEVICES=all
          - NVIDIA_DRIVER_CAPABILITIES=all
        shm_size: '8g'
        ports:
          - "28383:8383"  # 使用更高端口:28383 -> 8383
        command: /bin/bash -c "mkdir -p /code/data/log || true && python /code/app_local.py"
        networks:
          - ai_network
  6. 启动服务

    复制代码
    # 进入项目目录(注意:Podman机器中的路径可能不同)
    cd F:\PythonProjects\HeyGem.ai\deploy
    
    # 启动服务
    podman-compose -f podman-compose_high_ports.yml up -d

验证阶段

  1. 检查服务状态

    复制代码
    # 查看容器状态
    podman-compose -f podman-compose_high_ports.yml ps
    
    # 查看日志
    podman logs heygem-gen-video
  2. 测试服务访问

    打开项目组提供的 Duix.Avatar 软件进行生成测试

https://github.com/duixcom/Duix-Avatar/releases/download/v1.0.6/Duix.Avatar-1.0.6-setup.exe

维护阶段

  • 日常管理

    复制代码
    # 停止服务
    podman-compose -f podman-compose_high_ports.yml down
    
    # 更新镜像
    podman-compose -f podman-compose_high_ports.yml pull
    
    # 清理资源
    podman system prune -a

CMD:

复制代码
REM 停止现有服务
podman-compose -f podman-compose_alternate_ports.yml down -v

REM 使用高端口版本启动
podman-compose -f podman-compose_high_ports.yml up -d

REM 检查状态
podman-compose -f podman-compose_high_ports.yml ps

REM 查看日志
podman logs heygem-gen-video

关键注意事项

  1. 路径差异:Windows和Podman机器中的文件路径不同,需要注意映射关系
  2. 权限问题:确保数据目录有正确的权限设置
  3. GPU配置:NVIDIA驱动和CUDA版本需要匹配
  4. 端口冲突:使用高端口号避免与 Docker 原部署冲突
  5. 网络访问:确保防火墙允许服务端口访问
相关推荐
北邮-吴怀玉3 小时前
6.1.3.2 大数据方法论与实践指南-开源大数据实时调度平台(StreamPark)
大数据·开源
CoookeCola4 小时前
开源图像与视频过曝检测工具:HSV色彩空间分析与时序平滑处理技术详解
人工智能·深度学习·算法·目标检测·计算机视觉·开源·音视频
董厂长4 小时前
综述:deepSeek-OCR,paddle-OCR,VLM
人工智能·计算机视觉
gfdgd xi4 小时前
deepin 终端,但是版本是 deepin 15 的
linux·python·架构·ssh·bash·shell·deepin
禁默4 小时前
基于金仓KFS工具,破解多数据并存,浙人医改造实战医疗信创
数据库·人工智能·金仓数据库
云卓SKYDROID4 小时前
无人机动力学模块技术要点与难点
人工智能·无人机·材质·高科技·云卓科技
王六岁4 小时前
🐍 前端开发 0 基础学 Python 入门指南:条件语句篇
前端·python
java1234_小锋4 小时前
PyTorch2 Python深度学习 - 初识PyTorch2,实现一个简单的线性神经网络
开发语言·python·深度学习·pytorch2
胡萝卜3.04 小时前
C++面向对象继承全面解析:不能被继承的类、多继承、菱形虚拟继承与设计模式实践
开发语言·c++·人工智能·stl·继承·菱形继承·组合vs继承