#!/usr/bin/env bash set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" source "$SCRIPT_DIR/deploy/env.sh" mkdir -p "$LOG_DIR" "$RUNTIME_DIR" RUN_NAME="${RUN_NAME:-poetry_full_10s_$(date +%Y%m%d_%H%M%S)}" LOG_FILE="$LOG_DIR/${RUN_NAME}.log" POEM="${POEM:-赤壁 杜牧 折戟沉沙铁未销,自将磨洗认前朝。 东风不与周郎便,铜雀春深锁二乔。}" if ! curl -fsS \ -H "Authorization: Bearer ${QWEN35_API_KEY:-qwen3.5-27b-local}" \ "${QWEN35_API_BASE:-http://127.0.0.1:8002/v1}/models" \ >/dev/null; then echo "Qwen3.5 service is not ready: ${QWEN35_API_BASE:-http://127.0.0.1:8002/v1}" >&2 echo "Please start it first: bash $VGEN_ROOT/scripts/deploy/start_qwen35_27b.sh" >&2 exit 1 fi echo "Run name: $RUN_NAME" echo "Log file: $LOG_FILE" echo "Output dir: $VGEN_ROOT/outputs/poetry_teaching/$RUN_NAME" nohup bash "$SCRIPT_DIR/run_poetry_teaching_pipeline.sh" \ --poem "$POEM" \ --run-name "$RUN_NAME" \ --segments "${SEGMENTS:-6}" \ --clip-seconds "${CLIP_SECONDS:-10}" \ --fps "${FPS:-15}" \ --image-device "${IMAGE_DEVICE:-cuda:0}" \ --video-usp-devices "${VIDEO_USP_DEVICES:-1,2,3,4,5}" \ --image-workers "${IMAGE_WORKERS:-1}" \ --video-workers "${VIDEO_WORKERS:-1}" \ --audio-workers "${AUDIO_WORKERS:-1}" \ --qwen35-api-base "${QWEN35_API_BASE:-http://127.0.0.1:8002/v1}" \ --qwen35-model "${QWEN35_MODEL:-qwen3.5-27b-local}" \ --qwen35-api-key "${QWEN35_API_KEY:-qwen3.5-27b-local}" \ --overwrite \ "$@" \ >"$LOG_FILE" 2>&1 & echo $! > "$RUNTIME_DIR/${RUN_NAME}.pid" echo "Started PID: $(cat "$RUNTIME_DIR/${RUN_NAME}.pid")" echo "Follow log: tail -f $LOG_FILE" echo "Final video: $VGEN_ROOT/outputs/poetry_teaching/$RUN_NAME/final_poetry_teaching.mp4"