Files
Qwen3-tts/docker/entrypoint_clone.sh

46 lines
1.3 KiB
Bash
Raw Normal View History

2026-06-18 17:27:42 +02:00
#!/bin/bash
set -e
MODEL="${QWEN3_TTS_CLONE_MODEL:-}"
2026-06-19 15:52:58 +02:00
PORT="${QWEN3_TTS_CLONE_PORT:-8091}"
2026-06-18 17:27:42 +02:00
if [ -z "$MODEL" ]; then
echo "[clone] QWEN3_TTS_CLONE_MODEL ist nicht gesetzt." >&2
exit 2
fi
echo "[clone] starte Clone-Modell: ${MODEL} auf Port ${PORT}"
2026-06-19 15:52:58 +02:00
if [ -f /patch_qwen3_tts_runtime.py ]; then
python3 /patch_qwen3_tts_runtime.py
fi
vllm-omni serve "$MODEL" \
--omni \
--host 0.0.0.0 \
--port "$PORT" \
2026-06-19 17:22:28 +02:00
--deploy-config /deploy/qwen3_tts_clone.yaml \
2026-06-19 15:52:58 +02:00
--trust-remote-code &
SERVER_PID=$!
(
for _ in $(seq 1 150); do
if curl -sf "http://localhost:${PORT}/health" >/dev/null 2>&1; then
echo "[warmup] Clone gesund — sende Warmup-Request (kompiliert CUDA-Graphen)..."
t0=$SECONDS
curl -sf -X POST "http://localhost:${PORT}/v1/audio/speech" \
-H 'Content-Type: application/json' \
--max-time 180 \
-d "{\"model\":\"${MODEL}\",\"input\":\"System wird aufgewärmt.\",\"language\":\"German\",\"response_format\":\"wav\",\"task_type\":\"VoiceDesign\",\"instructions\":\"Eine ruhige Stimme.\"}" \
-o /dev/null \
&& echo "[warmup] Clone fertig nach $(( SECONDS - t0 ))s — jetzt heiß." \
|| echo "[warmup] fehlgeschlagen (Clone läuft trotzdem)."
break
fi
sleep 2
done
) &
trap 'kill "$SERVER_PID" 2>/dev/null || true' TERM INT
wait "$SERVER_PID"