Self-Forcing-part-2 / scripts /run_inference_dmd.sh
Cccccz's picture
Add files using upload-large-folder tool
2847d0b verified
Raw
History Blame Contribute Delete
2.18 kB
#!/usr/bin/env bash
set -euo pipefail
# Self-Forcing DMD 单卡文本生成视频推理脚本。
# 可通过同名环境变量覆盖下面的默认值,例如:
# GPU=1 PROMPT="A cat running on the grass." \
# OUTPUT_FOLDER=videos/cat bash scripts/run_inference_dmd.sh
# 也可以直接使用已有的 prompt 文件:
# DATA_PATH=prompts/MovieGenVideoBench_extended.txt \
# bash scripts/run_inference_dmd.sh
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$ROOT_DIR"
GPU="${GPU:-0}"
PYTHON_BIN="${PYTHON_BIN:-python}"
CONFIG_PATH="${CONFIG_PATH:-configs/self_forcing_dmd.yaml}"
CHECKPOINT_PATH="${CHECKPOINT_PATH:-checkpoints/self_forcing_dmd.pt}"
OUTPUT_FOLDER="${OUTPUT_FOLDER:-videos/self_forcing_dmd}"
NUM_OUTPUT_FRAMES="${NUM_OUTPUT_FRAMES:-21}"
NUM_SAMPLES="${NUM_SAMPLES:-1}"
SEED="${SEED:-0}"
PROMPT="${PROMPT:-A cinematic shot of a stylish woman walking down a neon-lit Tokyo street at night, reflections shimmering on the wet pavement, natural body motion, detailed background, smooth camera movement.}"
DATA_PATH="${DATA_PATH:-}"
if [[ -z "$DATA_PATH" ]]; then
DATA_PATH="$OUTPUT_FOLDER/prompts.txt"
mkdir -p "$OUTPUT_FOLDER"
printf '%s\n' "$PROMPT" > "$DATA_PATH"
fi
for required_path in "$CONFIG_PATH" "$CHECKPOINT_PATH" "$DATA_PATH"; do
if [[ ! -f "$required_path" ]]; then
echo "错误:找不到所需文件:$required_path" >&2
exit 1
fi
done
if ! command -v "$PYTHON_BIN" >/dev/null 2>&1; then
echo "错误:找不到 Python 命令:$PYTHON_BIN" >&2
echo "请先激活 Self-Forcing 环境,或通过 PYTHON_BIN 指定 Python。" >&2
exit 1
fi
mkdir -p "$OUTPUT_FOLDER"
echo "DMD 推理配置:"
echo " GPU: $GPU"
echo " Config: $CONFIG_PATH"
echo " Checkpoint: $CHECKPOINT_PATH"
echo " Prompts: $DATA_PATH"
echo " Output: $OUTPUT_FOLDER"
CUDA_VISIBLE_DEVICES="$GPU" "$PYTHON_BIN" inference.py \
--config_path "$CONFIG_PATH" \
--checkpoint_path "$CHECKPOINT_PATH" \
--data_path "$DATA_PATH" \
--output_folder "$OUTPUT_FOLDER" \
--num_output_frames "$NUM_OUTPUT_FRAMES" \
--num_samples "$NUM_SAMPLES" \
--seed "$SEED" \
--use_ema \
--save_with_index