跳转至

MuseTalk OmniRT 部署

OmniRT 模式让外部 MuseTalk 服务负责权重加载、官方 runtime 和 GPU 调度,OpenTalking 只连接统一的 /v1/audio2video/musetalk 接口。

适用场景

  • MuseTalk 依赖较重,希望与 OpenTalking 主进程隔离。
  • Web/API 和推理 GPU 分开部署。
  • 需要与 Wav2Lip、QuickTalk 等模型共用 OmniRT 服务入口。

权重准备

终端
export DIGITAL_HUMAN_HOME="$HOME/digital-human"
export OMNIRT_MODEL_ROOT="$DIGITAL_HUMAN_HOME/models"
mkdir -p "$OMNIRT_MODEL_ROOT" "$DIGITAL_HUMAN_HOME/model-repos"

uv pip install -U "huggingface_hub[cli]"
export HF_ENDPOINT="${HF_ENDPOINT:-https://hf-mirror.com}"

hf download TMElyralab/MuseTalk \
  --local-dir "$OMNIRT_MODEL_ROOT"

git clone https://github.com/TMElyralab/MuseTalk.git \
  "$DIGITAL_HUMAN_HOME/model-repos/MuseTalk"

确认 musetalk/sd-vae-ft-mse/whisper/dwpose/face-parse-bisenet/ 均在 $OMNIRT_MODEL_ROOT 下。

启动命令

使用 quickstart 脚本准备并启动 MuseTalk runtime:

终端
cd "$OMNIRT_HOME"
export OMNIRT_MODEL_ROOT="$DIGITAL_HUMAN_HOME/models"
export OMNIRT_MUSETALK_REPO="$DIGITAL_HUMAN_HOME/model-repos/MuseTalk"
export OMNIRT_MUSETALK_DEVICE=cuda
export OMNIRT_MUSETALK_PORT=8766

bash scripts/quickstart/start_omnirt_musetalk.sh

然后启动 OpenTalking:

终端
cd "$DIGITAL_HUMAN_HOME/opentalking"
bash scripts/start_unified.sh \
  --backend omnirt \
  --model musetalk \
  --omnirt http://127.0.0.1:9000 \
  --api-port 8310 \
  --web-port 5380

验证命令

终端
curl -fsS http://127.0.0.1:9000/v1/audio2video/models | jq
curl -s http://127.0.0.1:8310/models | jq '.statuses[] | select(.id=="musetalk")'

常见错误

现象 处理
OmniRT 未列出 musetalk 检查 OMNIRT_MUSETALK_REPO、模型目录和启动脚本日志。
reason=omnirt_unavailable 检查 OpenTalking --omnirt 地址和 OmniRT 端口。
MuseTalk 子服务端口冲突 调整 OMNIRT_MUSETALK_PORT
首次加载慢 MuseTalk 预加载和 avatar 预处理耗时较长,生产环境建议预热。