RTX 4090D対応HunyuanVideo-FoleyのDockerコンテナ構築ガイド

システム要件と環境構築

本ツールを実行するための最低限のハードウェア要件:

  • GPU:RTX 4090/4090D(24GB VRAM)
  • メモリ:120GB以上
  • CPU:10コア以上
  • ストレージ:OSディスク50GB + データディスク40GB

Docker環境のセットアップ

NVIDIAドライバとDockerの準備を確認:

# NVIDIAドライババージョン確認
nvidia-smi --query-gpu=driver_version --format=csv

# Dockerインストール確認
docker info | grep "Server Version"

未インストールの場合は以下の手順で設定:

# Docker Engineインストール
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io

# NVIDIA Container Toolkit設定
curl -s https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://nvidia.github.io/libnvidia-container/stable/deb/$(lsb_release -cs)/multilib main" | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

コンテナの構築と実行

最適化済みDockerイメージの取得:

docker pull registry.example.com/video-foley-engine:rtx4090d-v2

自動起動スクリプトの作成(foley-launcher.sh):

#!/bin/bash
APP_IMAGE="registry.example.com/video-foley-engine:rtx4090d-v2"
APP_CONTAINER="foley-engine"
WEBUI_HOST_PORT=8880
API_HOST_PORT=9000
WORKSPACE="$HOME/foley_workspace"

mkdir -p "$WORKSPACE/generated"
docker run -d \
  --name "$APP_CONTAINER" \
  --gpus all \
  --shm-size=16g \
  -p "$WEBUI_HOST_PORT:7860" \
  -p "$API_HOST_PORT:8000" \
  -v "$WORKSPACE:/app/output" \
  -e NVIDIA_DRIVER_CAPABILITIES="compute,utility" \
  "$APP_IMAGE"

echo "WebUI: http://localhost:$WEBUI_HOST_PORT | API Docs: http://localhost:$API_HOST_PORT/docs"

スクリプトの実行:

chmod +x foley-launcher.sh
./foley-launcher.sh

サービスの検証方法

コンテナの動作状態を確認:

# リアルタイムログの監視
docker logs -f foley-engine

# エンドポイントの接続テスト
curl -s http://localhost:8880/healthcheck
curl -s http://localhost:9000/docs | grep "FastAPI"

API操作例

音響生成リクエストの実装例(Python):

import httpx

with httpx.Client(timeout=120.0) as client:
    response = client.post(
        "http://localhost:9000/generate",
        json={
            "scene_description": "雨音と雷鳴が混ざる深夜の公園",
            "length_sec": 15,
            "output_quality": "1080p"
        }
    )
    
if response.status_code == 201:
    print(f"生成完了: {response.json()['result_path']}")
else:
    print(f"エラー({response.status_code}): {response.text}")

運用管理コマンド

# コンテナの再起動
docker restart foley-engine

# リソース使用量の監視
nvidia-smi --query-gpu=memory.used,utilization.gpu --format=csv -l 2

# カスタム設定の適用
docker exec -it foley-engine \
  sed -i 's/DEFAULT_DURATION = 10/DEFAULT_DURATION = 20/' /app/config.py

タグ: Dockerコンテナ NVIDIA GPU 音響生成 RTX 4090D fastapi

10月10日 12:57 投稿