システム要件と環境構築
本ツールを実行するための最低限のハードウェア要件:
- 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