Перейти к содержанию

Обзор развертывания HunyuanVideo на сервере

Предпосылки и предварительные требования

Для успешного развертывания приложения HunyuanVideo на сервере необходимо выполнить следующие условия:

  • Операционная система: Ubuntu 22.04 (или совместимая версия).
  • Наличие прав суперпользователя (root) или возможность использования sudo.
  • Сервер должен быть оснащен видеокартой NVIDIA с поддержкой CUDA.
  • Доступ к интернету для загрузки пакетов, репозиториев и моделей.
  • Установленный Docker с поддержкой NVIDIA Container Toolkit.
  • Свободные порты для работы веб-сервера (порт 8080 для внутреннего проксирования, порты 80 и 443 для внешнего доступа через Nginx).

Структура файлов и каталогов

Приложение и его компоненты размещаются в следующих директориях:

  • /opt/HunyuanVideo — основной каталог с исходным кодом приложения HunyuanVideo.
  • /opt/HunyuanVideo/venv — виртуальное окружение Python для зависимостей приложения.
  • /opt/HunyuanVideo/models — каталог для хранения загруженных чекпоинтов и моделей.
  • /root/nginx — каталог для конфигурации Docker Compose веб-сервера.
  • /data/nginx/user_conf.d — каталог с пользовательскими конфигурационными файлами Nginx.
  • /data/nginx/nginx-certbot.env — файл переменных окружения для сертификатов.
  • /etc/docker/daemon.json — файл конфигурации демон-процесса Docker для настройки NVIDIA runtime.

Процесс установки приложения

Установка приложения HunyuanVideo выполняется вручную с использованием следующих шагов:

  1. Обновление системы и установка необходимых пакетов:

    sudo apt update
    sudo apt upgrade -y
    sudo apt install -y git python3 python3-venv python3-dev python3-pip curl wget
    

  2. Клонирование репозитория HunyuanVideo:

    git clone https://github.com/Tencent/HunyuanVideo.git /opt/HunyuanVideo
    

  3. Создание и активация виртуального окружения Python:

    cd /opt/HunyuanVideo
    python3 -m venv venv
    source venv/bin/activate
    

  4. Установка зависимостей Python:

    pip install -r requirements.txt
    pip install "huggingface-hub[cli]"
    

  5. Загрузка чекпоинтов модели через huggingface-cli:

    mkdir -p /opt/HunyuanVideo/models
    huggingface-cli download tencent/HunyuanVideo \
      --local-dir /opt/HunyuanVideo/models \
      --local-dir-use-symlinks False \
      --include "hunyuan-video-t2v-720p/**"
    

  6. Настройка NVIDIA Docker runtime:

    sudo cp /etc/docker/daemon.json /etc/docker/daemon.json.bak
    sudo tee /etc/docker/daemon.json <<EOF
    {
      "default-runtime": "nvidia",
      "runtimes": {
        "nvidia": {
          "path": "nvidia-container-runtime",
          "runtimeArgs": []
        }
      }
    }
    EOF
    sudo systemctl restart docker
    

Контейнеры Docker и их запуск

Для обеспечения работы веб-интерфейса и получения SSL-сертификатов используется контейнер Nginx с Certbot.

Конфигурация контейнера описана в файле /root/nginx/compose.yml:

volumes:
  nginx_secrets:
    external: true
services:
  nginx:
    image: jonasal/nginx-certbot:latest
    restart: unless-stopped
    environment:
      - CERTBOT_EMAIL=hkadm@hostkey.com
    env_file:
      - /data/nginx/nginx-certbot.env
    network_mode: host
    volumes:
      - nginx_secrets:/etc/letsencrypt
      - /data/nginx/user_conf.d:/etc/nginx/user_conf.d

Запуск контейнера выполняется командой:

cd /root/nginx
docker compose up -d

Прокси серверы

Веб-сервер Nginx работает в режиме прокси и перенаправляет запросы на локальный порт 8080, где запущено приложение HunyuanVideo.

Конфигурация проксирования добавляется в файл /data/nginx/user_conf.d/<prefix><server_id>.hostkey.in.conf:

  • Удаляется существующая строка proxy_pass в блоке location /.
  • Добавляется новая строка:
    proxy_pass http://127.0.0.1:8080;
    

Сертификаты SSL управляются автоматически через Certbot внутри контейнера Nginx.

Настройки прав

Права доступа к файлам и директориям устанавливаются следующим образом:

  • Каталог /root/nginx имеет права 0755, владелец root:root.
  • Файл /root/nginx/compose.yml имеет права 0644, владелец root:root.
  • Каталог /opt/HunyuanVideo и его содержимое доступны пользователю, выполняющему запуск приложения.
  • Файл /etc/docker/daemon.json имеет права 0644, владелец root:root.

Запуск, остановка и обновление

Запуск приложения HunyuanVideo выполняется из виртуального окружения:

cd /opt/HunyuanVideo
source venv/bin/activate
python sample_video.py --prompt "A cyberpunk city at night"

Для управления контейнером Nginx используются команды Docker Compose:

  • Запуск:
    cd /root/nginx
    docker compose up -d
    
  • Остановка:
    cd /root/nginx
    docker compose down
    
  • Перезапуск:
    cd /root/nginx
    docker compose restart
    

Обновление приложения HunyuanVideo требует повторного клонирования репозитория и установки зависимостей:

cd /opt/HunyuanVideo
git pull
source venv/bin/activate
pip install -r requirements.txt

Обновление контейнера Nginx выполняется через обновление образа и перезапуск:

cd /root/nginx
docker compose pull
docker compose up -d
question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×