Instructions to use marcosremar2/MuseTalk1.5 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Diffusers
How to use marcosremar2/MuseTalk1.5 with Diffusers:
pip install -U diffusers transformers accelerate
import torch from diffusers import DiffusionPipeline # switch to "mps" for apple devices pipe = DiffusionPipeline.from_pretrained("marcosremar2/MuseTalk1.5", dtype=torch.bfloat16, device_map="cuda") prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k" image = pipe(prompt).images[0] - Notebooks
- Google Colab
- Kaggle
| # | |
| # MuseTalk Server - Complete Installation Script | |
| # Installs: vLLM (Gemma 3 1B), Whisper, models, and all dependencies | |
| # | |
| set -e | |
| echo "" | |
| echo "ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ" | |
| echo "β MUSETALK SERVER - INSTALLATION β" | |
| echo "ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ" | |
| echo "" | |
| SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" | |
| BASE_DIR="$(dirname "$SCRIPT_DIR")" | |
| cd "$BASE_DIR" | |
| # Colors for output | |
| RED='\033[0;31m' | |
| GREEN='\033[0;32m' | |
| YELLOW='\033[1;33m' | |
| NC='\033[0m' # No Color | |
| success() { echo -e "${GREEN}β${NC} $1"; } | |
| warn() { echo -e "${YELLOW}β ${NC} $1"; } | |
| error() { echo -e "${RED}β${NC} $1"; } | |
| info() { echo -e " $1"; } | |
| # ============================================================ | |
| # 1. SYSTEM DEPENDENCIES | |
| # ============================================================ | |
| echo "" | |
| echo "ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ" | |
| echo "[1/6] Checking system dependencies..." | |
| echo "ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ" | |
| # Check for required commands | |
| MISSING_DEPS="" | |
| if ! command -v ffmpeg &> /dev/null; then | |
| MISSING_DEPS="$MISSING_DEPS ffmpeg" | |
| fi | |
| if ! command -v espeak-ng &> /dev/null; then | |
| MISSING_DEPS="$MISSING_DEPS espeak-ng" | |
| fi | |
| if ! command -v cmake &> /dev/null; then | |
| MISSING_DEPS="$MISSING_DEPS cmake" | |
| fi | |
| if [ -n "$MISSING_DEPS" ]; then | |
| warn "Missing dependencies:$MISSING_DEPS" | |
| info "Installing with apt..." | |
| sudo apt-get update -qq | |
| sudo apt-get install -y -qq ffmpeg espeak-ng cmake build-essential | |
| success "System dependencies installed" | |
| else | |
| success "System dependencies already installed" | |
| fi | |
| # ============================================================ | |
| # 2. VLLM INSTALLATION (Gemma 3 1B) | |
| # ============================================================ | |
| echo "" | |
| echo "ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ" | |
| echo "[2/6] Installing vLLM (Gemma 3 1B - fast inference)..." | |
| echo "ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ" | |
| if python3 -c "import vllm" 2>/dev/null; then | |
| VLLM_VERSION=$(python3 -c "import vllm; print(vllm.__version__)" 2>/dev/null) | |
| success "vLLM already installed: v$VLLM_VERSION" | |
| else | |
| info "Installing vLLM (this may take a few minutes)..." | |
| pip install vllm --quiet | |
| success "vLLM installed" | |
| fi | |
| # Pre-download Gemma 3 1B model | |
| info "Pre-downloading Gemma 3 1B model..." | |
| export HF_HOME=/tmp/hf_vllm | |
| # HF_TOKEN should be set in environment or .env file | |
| export HF_TOKEN="${HF_TOKEN:-}" | |
| export HUGGING_FACE_HUB_TOKEN="${HF_TOKEN:-}" | |
| mkdir -p /tmp/hf_vllm | |
| python3 -c " | |
| from huggingface_hub import snapshot_download | |
| snapshot_download('google/gemma-3-1b-it', local_files_only=False) | |
| print('Model downloaded') | |
| " 2>/dev/null || warn "Model will be downloaded on first start" | |
| success "Gemma 3 1B model ready" | |
| # ============================================================ | |
| # 3. DISTIL-WHISPER PT-BR INSTALLATION (STT) | |
| # ============================================================ | |
| echo "" | |
| echo "ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ" | |
| echo "[3/6] Installing Distil-Whisper PT-BR (STT)..." | |
| echo "ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ" | |
| # Install Python dependencies for Distil-Whisper | |
| info "Installing transformers and dependencies..." | |
| pip install transformers accelerate librosa --quiet | |
| # Pre-download Distil-Whisper PT-BR model | |
| info "Pre-downloading Distil-Whisper PT-BR model..." | |
| export HF_HOME=/tmp/hf_whisper | |
| mkdir -p /tmp/hf_whisper | |
| python3 -c " | |
| from huggingface_hub import snapshot_download | |
| snapshot_download('freds0/distil-whisper-large-v3-ptbr', local_files_only=False) | |
| print('Model downloaded') | |
| " 2>/dev/null || warn "Model will be downloaded on first start" | |
| success "Distil-Whisper PT-BR ready (~47ms latency)" | |
| cd "$BASE_DIR" | |
| # ============================================================ | |
| # 4. PYTHON DEPENDENCIES | |
| # ============================================================ | |
| echo "" | |
| echo "ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ" | |
| echo "[4/6] Installing Python dependencies..." | |
| echo "ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ" | |
| # Check if key packages are installed | |
| MISSING_PY="" | |
| python3 -c "import fastapi" 2>/dev/null || MISSING_PY="$MISSING_PY fastapi" | |
| python3 -c "import uvicorn" 2>/dev/null || MISSING_PY="$MISSING_PY uvicorn" | |
| python3 -c "import httpx" 2>/dev/null || MISSING_PY="$MISSING_PY httpx" | |
| python3 -c "import aiortc" 2>/dev/null || MISSING_PY="$MISSING_PY aiortc" | |
| python3 -c "import av" 2>/dev/null || MISSING_PY="$MISSING_PY av" | |
| if [ -n "$MISSING_PY" ]; then | |
| info "Installing:$MISSING_PY" | |
| pip install fastapi uvicorn httpx aiortc av aiofiles python-multipart --quiet | |
| success "Python dependencies installed" | |
| else | |
| success "Python dependencies already installed" | |
| fi | |
| # ============================================================ | |
| # 5. MUSETALK MODELS | |
| # ============================================================ | |
| echo "" | |
| echo "ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ" | |
| echo "[5/6] Downloading MuseTalk models..." | |
| echo "ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ" | |
| mkdir -p "$BASE_DIR/models" | |
| cd "$BASE_DIR" | |
| # Download MuseTalk models from HuggingFace | |
| info "Downloading MuseTalk models (this may take a while)..." | |
| export HF_HOME=/tmp/hf_musetalk | |
| python3 -c " | |
| from huggingface_hub import snapshot_download | |
| import os | |
| models_dir = '$BASE_DIR/models' | |
| # MuseTalk main model | |
| print('Downloading MuseTalk model...') | |
| snapshot_download('TMElyralab/MuseTalk', local_dir=f'{models_dir}/musetalk', local_dir_use_symlinks=False) | |
| # SD VAE | |
| print('Downloading SD VAE...') | |
| snapshot_download('stabilityai/sd-vae-ft-mse', local_dir=f'{models_dir}/sd-vae-ft-mse', local_dir_use_symlinks=False) | |
| # DWPose | |
| print('Downloading DWPose...') | |
| snapshot_download('yzd-v/DWPose', local_dir=f'{models_dir}/dwpose', local_dir_use_symlinks=False) | |
| # Face parsing | |
| print('Downloading face-parse-bisent...') | |
| snapshot_download('jonathandinu/face-parsing', local_dir=f'{models_dir}/face-parse-bisent', local_dir_use_symlinks=False) | |
| print('All models downloaded!') | |
| " 2>&1 || warn "Some models may need to be downloaded on first run" | |
| success "MuseTalk models ready" | |
| # ============================================================ | |
| # 6. CREATE DIRECTORIES | |
| # ============================================================ | |
| echo "" | |
| echo "ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ" | |
| echo "[6/6] Setting up directories..." | |
| echo "ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ" | |
| mkdir -p "$BASE_DIR/server/avatar_videos" | |
| mkdir -p "$BASE_DIR/server/avatar_cache" | |
| mkdir -p "$BASE_DIR/results/server" | |
| mkdir -p "$BASE_DIR/cache" | |
| success "Directories created" | |
| # ============================================================ | |
| # INSTALLATION COMPLETE | |
| # ============================================================ | |
| echo "" | |
| echo "ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ" | |
| echo "β INSTALLATION COMPLETE! β" | |
| echo "ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ" | |
| echo "" | |
| echo "Installed components:" | |
| echo " β vLLM + Gemma 3 1B (LLM, ~100ms)" | |
| echo " β Distil-Whisper PT-BR (STT, ~47ms)" | |
| echo " β MuseTalk models (lip-sync generation)" | |
| echo " β Python dependencies" | |
| echo "" | |
| echo "To start the server, run:" | |
| echo "" | |
| echo " bash server/start.sh" | |
| echo "" | |
| echo "This will:" | |
| echo " 1. Start vLLM with Gemma 3 1B + 5 warmup inferences" | |
| echo " 2. Start Distil-Whisper PT-BR + 5 warmup inferences" | |
| echo " 3. Start MuseTalk server + 5 warmup inferences" | |
| echo " 4. Keep all models in GPU memory for fast inference" | |
| echo "" | |