File size: 2,776 Bytes
b34c6c3 | 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 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | #!/bin/bash
export TMPDIR="/tmp"
# ==================== Environment variable setup ====================
export PAD_HQ=1
export PAD_DURATION=1
export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True
export OFFLOAD_T5_CACHE=true
export OFFLOAD_VAE_CACHE=true
export TORCH_CUDA_ARCH_LIST="8.9;9.0"
# ==================== Centralized configuration ====================
# ---------- Hardware and environment config ----------
DEVICES="0,1,2,3"
CONFIG_FILE="config/sample/vbench.json"
MOTIONCACHE_CONFIG="addconfig/config.yaml"
# ---------- Basic inference config ----------
BENCHMARK="vbench"
REUSE_STRATEGY="chunkwise"
# ---------- Path configuration ----------
PROMPT_FILE_PATH="/path/to/VBench/prompts/prompts_per_dimension"
BASE_SAVE_PATH="/path/to/output/motioncache_vbench"
# ---------- Test dimension configuration ----------
DIMENSIONS=(
"subject_consistency" "object_class" "multiple_objects" "color" "spatial_relationship" "scene" "temporal_style" "overall_consistency" "human_action" "temporal_flickering" "appearance_style"
)
# ==================== End of configuration ====================
# ==================== Initialization ====================
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
MAGI_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)"
cd "$MAGI_ROOT"
export PYTHONPATH="$MAGI_ROOT:$PYTHONPATH"
export MAGI_ROOT="$MAGI_ROOT"
mkdir -p "$BASE_SAVE_PATH"
LOG_DIR_PATH="$BASE_SAVE_PATH/log"
mkdir -p "$LOG_DIR_PATH"
LOG_FILE="$LOG_DIR_PATH/motioncache_$(date +%Y%m%d_%H%M%S).log"
exec > >(tee -a "$LOG_FILE") 2>&1
# =====================================
echo "Starting MotionCache VBench sampling"
echo "GPUs: $DEVICES"
echo "Config: $CONFIG_FILE"
echo "MotionCache config: $MOTIONCACHE_CONFIG"
echo "Prompt dir: $PROMPT_FILE_PATH"
echo "Total dimensions: ${#DIMENSIONS[@]}"
echo "Dimensions: ${DIMENSIONS[*]}"
# ==================== Loop through dimensions ====================
for DIMENSION in "${DIMENSIONS[@]}"; do
VIDEO_SAVE_PATH="$BASE_SAVE_PATH/videos/${DIMENSION}"
mkdir -p "$VIDEO_SAVE_PATH"
echo "Processing dimension: $DIMENSION"
echo "Output path: $VIDEO_SAVE_PATH"
ARGS=(
--benchmark "$BENCHMARK"
--dimension "$DIMENSION"
--vbench_prompt_dir "$PROMPT_FILE_PATH"
--save_path "$VIDEO_SAVE_PATH"
--config_file "$CONFIG_FILE"
--additional_config "$MOTIONCACHE_CONFIG"
--gpus "$DEVICES"
--reuse_strategy "$REUSE_STRATEGY"
)
python sample_video.py "${ARGS[@]}"
if [ $? -eq 0 ]; then
echo "Completed: $DIMENSION"
else
echo "Failed: $DIMENSION"
echo "Script paused due to error. Fix the issue and rerun."
exit 1
fi
echo "---"
done
echo "All MotionCache VBench sampling tasks completed."
|