73 lines
2.3 KiB
Bash
Executable File
73 lines
2.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Copyright 2026 Umbra Tools (umbratools.com)
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
# Install the UmbraAudio Qwen3-TTS server on a Linux/CUDA GPU machine.
|
|
#
|
|
# Usage:
|
|
# ./install_server.sh
|
|
#
|
|
# Assumes: python3.12 available, CUDA GPU present, ~15GB free disk for models.
|
|
#
|
|
# After install, run: ./run_server.sh
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
cd "$SCRIPT_DIR"
|
|
|
|
PY=python3.12
|
|
if ! command -v "$PY" >/dev/null 2>&1; then
|
|
PY=python3
|
|
fi
|
|
echo "Using Python: $($PY --version)"
|
|
|
|
if [ ! -d .venv ]; then
|
|
echo ">> Creating virtualenv (.venv)"
|
|
"$PY" -m venv .venv
|
|
fi
|
|
source .venv/bin/activate
|
|
|
|
echo ">> Upgrading pip"
|
|
pip install -U pip wheel setuptools
|
|
|
|
echo ">> Detecting CUDA"
|
|
CUDA_VER=""
|
|
if nvidia-smi >/dev/null 2>&1; then
|
|
# Prefer cu12x wheels depending on available toolkit
|
|
nvcc --version 2>/dev/null | grep release || true
|
|
CUDA_VER="cu124"
|
|
fi
|
|
|
|
echo ">> Installing PyTorch (GPU)"
|
|
if [ -n "$CUDA_VER" ]; then
|
|
pip install torch torchaudio --index-url "https://download.pytorch.org/whl/$CUDA_VER"
|
|
else
|
|
echo "!! No CUDA detected. Installing CPU torch (will be slow)."
|
|
pip install torch torchaudio
|
|
fi
|
|
|
|
echo ">> Installing qwen-tts server dependencies"
|
|
pip install -r requirements.txt
|
|
|
|
echo ">> (Recommended) Installing flash-attn for faster inference + lower VRAM"
|
|
pip install -U flash-attn --no-build-isolation || \
|
|
echo "!! flash-attn build failed (ok to continue, just slower)."
|
|
|
|
MODELS_DIR="${QWEN_MODELS_DIR:-$SCRIPT_DIR/models}"
|
|
TOKENIZER_DIR="${QWEN_TOKENIZER_DIR:-$MODELS_DIR/Qwen3-TTS-Tokenizer-12Hz}"
|
|
mkdir -p "$MODELS_DIR"
|
|
|
|
echo ">> Model directories (set QWEN_MODELS_DIR to override)"
|
|
echo " Models will be stored in: $MODELS_DIR"
|
|
echo " If the 1.7B models are already on this machine, set QWEN_MODELS_DIR"
|
|
echo " to point at them; otherwise download them with:"
|
|
echo ""
|
|
echo " huggingface-cli download Qwen/Qwen3-TTS-12Hz-1.7B-Base --local-dir $MODELS_DIR/Qwen3-TTS-12Hz-1.7B-Base"
|
|
echo " huggingface-cli download Qwen/Qwen3-TTS-12Hz-1.7B-VoiceDesign --local-dir $MODELS_DIR/Qwen3-TTS-12Hz-1.7B-VoiceDesign"
|
|
echo " huggingface-cli download Qwen/Qwen3-TTS-Tokenizer-12Hz --local-dir $TOKENIZER_DIR"
|
|
echo ""
|
|
|
|
echo ">> Install complete."
|
|
echo " Next: run ./run_server.sh"
|
|
echo " Health: curl http://localhost:8881/health"
|