Spaces:
Running on Zero
Running on Zero
File size: 2,072 Bytes
08c5e28 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | #!/bin/bash
# Run evaluation set
# Usage: bash scripts/eval.sh --lora path/to/lora.safetensors --eval expressive --output eval_output/
SCRIPT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
LORA=""
EVAL_TYPE="short"
OUTPUT_DIR="eval_output"
GPUS=8
while [[ $# -gt 0 ]]; do
case $1 in
--lora) LORA="$2"; shift 2;;
--eval) EVAL_TYPE="$2"; shift 2;;
--output) OUTPUT_DIR="$2"; shift 2;;
--gpus) GPUS="$2"; shift 2;;
*) echo "Unknown arg: $1"; exit 1;;
esac
done
case $EVAL_TYPE in
short) CONFIG="$SCRIPT_DIR/evals/eval_short.txt";;
long) CONFIG="$SCRIPT_DIR/evals/eval_long.txt";;
stress) CONFIG="$SCRIPT_DIR/evals/eval_stress.txt";;
expressive) CONFIG="$SCRIPT_DIR/evals/eval_expressive.txt";;
multilang) CONFIG="$SCRIPT_DIR/evals/eval_multilang.txt";;
*) echo "Unknown eval type: $EVAL_TYPE (use: short, long, stress, expressive, multilang)"; exit 1;;
esac
mkdir -p "$OUTPUT_DIR"/{generated,refs}
gpu=0
mapfile -t LINES < <(grep -v '^#' "$CONFIG" | grep '|')
for line in "${LINES[@]}"; do
name=$(echo "$line" | cut -d'|' -f1 | xargs)
ref=$(echo "$line" | cut -d'|' -f2 | xargs)
prompt=$(echo "$line" | cut -d'|' -f3-)
prompt="${prompt## }"
[ -z "$name" ] && continue
[[ "$ref" == *.mp3 ]] || [[ "$ref" == *.flac ]] && \
ffmpeg -y -i "$ref" "$OUTPUT_DIR/refs/${name}.wav" -loglevel quiet 2>/dev/null || \
cp "$ref" "$OUTPUT_DIR/refs/${name}.wav" 2>/dev/null
LORA_FLAG=""
[ -n "$LORA" ] && LORA_FLAG="--lora $LORA"
CUDA_VISIBLE_DEVICES=$gpu python "$SCRIPT_DIR/src/inference.py" \
--checkpoint ltx-2.3-22b-dev-audio-only.safetensors \
--full-checkpoint ltx-2.3-22b-dev.safetensors \
$LORA_FLAG --voice-sample "$ref" --prompt "$prompt" \
--output "$OUTPUT_DIR/generated/${name}.wav" \
--cfg-scale 2.5 --stg-scale 1.5 --rescale-scale 0 --modality-scale 1 \
--duration-multiplier 1.1 --seed 42 2>&1 | grep "Output" &
gpu=$(( (gpu + 1) % GPUS ))
if [ $gpu -eq 0 ]; then wait; fi
done
wait
echo "Eval done: $(ls "$OUTPUT_DIR/generated/"*.wav 2>/dev/null | wc -l) samples in $OUTPUT_DIR/"
|