#!/usr/bin/env bash set -euo pipefail echo "🚀 Iniciando o script de setup e lançamento do LTX-Video..." echo "Usuário atual: $(whoami)" # Define as variáveis de ambiente que o LTXServer irá consumir export LTX_REPO_DIR="${LTX_REPO_DIR:-/data/LTX-Video}" export HF_HOME="${HF_HOME:-/data/.cache/huggingface}" export OUTPUT_ROOT="${OUTPUT_ROOT:-/app/outputs/ltx}" # --- Garante que Diretórios Existam --- mkdir -p "$OUTPUT_ROOT" python3 - <<'PY' import os from services.ltx_server import ltx_server_singleton as server try: server.setup_dependencies() except Exception as e: print("Erro no setup") PY # --- Aplica o Monkey Patch para o VAE --- INFERENCE_SCRIPT_PATH="$LTX_REPO_DIR/inference.py" # Linha original a ser substituída ORIGINAL_LINE="from ltx_video.models.autoencoders.causal_video_autoencoder import CausalVideoAutoencoder" # Nova linha para usar o VAE padrão da diffusers REPLACEMENT_LINE="from diffusers import AutoencoderKL as CausalVideoAutoencoder" # Verifica se o script existe e se o patch ainda não foi aplicado if [ -f "$INFERENCE_SCRIPT_PATH" ]; then if ! grep -q "from diffusers import AutoencoderKL as CausalVideoAutoencoder" "$INFERENCE_SCRIPT_PATH"; then echo "🩹 Aplicando monkey patch do VAE ao script de inferência..." # Usa sed para substituir a linha de importação sed -i "s|${ORIGINAL_LINE}|${REPLACEMENT_LINE}|g" "$INFERENCE_SCRIPT_PATH" echo "✅ Patch do VAE aplicado." else echo "✅ Patch do VAE já existe." fi else echo "⚠️ Aviso: Script de inferência não encontrado em $INFERENCE_SCRIPT_PATH. O patch não foi aplicado." fi export OUTPUT_ROOT="${OUTPUT_ROOT:-/app/outputs}" export INPUT_ROOT="${INPUT_ROOT:-/app/inputs}" mkdir -p "$OUTPUT_ROOT" "$INPUT_ROOT" echo "[ltx][start] Verificando ambiente como usuário: $(whoami)" # Env da UI export GRADIO_SERVER_NAME="0.0.0.0" export GRADIO_SERVER_PORT="${PORT:-7860}" export GRADIO_ENABLE_QUEUE="True" tree -L 4 /app tree -L 4 /data echo "[ltx][start] Lançando app_ltx.py..." # Executa diretamente o python. exec python /app/app_ltx.py