166 lines
6.3 KiB
Bash
Executable File
166 lines
6.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
|
|
cd "$SCRIPT_DIR"
|
|
source "$SCRIPT_DIR/benchmarks/sample_env.sh"
|
|
|
|
# ========================= Inference Parameters =========================
|
|
NUM_GPUS=${NUM_GPUS:-1}
|
|
|
|
TASK_NAME=${TASK_NAME:-x2t_image} # t2i | image_edit | t2v | i2v | video_edit | x2t_image | x2t_video
|
|
|
|
VALIDATION_NUM_TIMESTEPS=${VALIDATION_NUM_TIMESTEPS:-30}
|
|
VALIDATION_TIMESTEP_SHIFT=${VALIDATION_TIMESTEP_SHIFT:-3.5}
|
|
VALIDATION_DATA_SEED=${VALIDATION_DATA_SEED:-42}
|
|
CFG_TEXT_SCALE=${CFG_TEXT_SCALE:-4.0}
|
|
USE_KVCACHE=${USE_KVCACHE:-true}
|
|
ENHANCE_PROMPT=${ENHANCE_PROMPT:-false}
|
|
|
|
NUM_FRAMES=${NUM_FRAMES:-50} # max: 121 frames, unused for image tasks
|
|
VIDEO_HEIGHT=${VIDEO_HEIGHT:-768} # unused for editing
|
|
VIDEO_WIDTH=${VIDEO_WIDTH:-768} # unused for editing
|
|
RESOLUTION=${RESOLUTION:-"video_480p"} # image_768res | video_480p
|
|
TEXT_TEMPLATE=${TEXT_TEMPLATE:-true}
|
|
|
|
MODEL_PATH=${MODEL_PATH:-"downloads/Lance_3B_Video"}
|
|
CONFIG_PATH=${CONFIG_PATH:-""}
|
|
|
|
# ========================= Command-line Arguments =========================
|
|
while [[ $# -gt 0 ]]; do
|
|
case "$1" in
|
|
--NUM_GPUS) NUM_GPUS="$2"; shift 2 ;;
|
|
--TASK_NAME) TASK_NAME="$2"; shift 2 ;;
|
|
--MODEL_PATH) MODEL_PATH="$2"; shift 2 ;;
|
|
--CONFIG_PATH) CONFIG_PATH="$2"; shift 2 ;;
|
|
|
|
--VALIDATION_NUM_TIMESTEPS) VALIDATION_NUM_TIMESTEPS="$2"; shift 2 ;;
|
|
--VALIDATION_TIMESTEP_SHIFT) VALIDATION_TIMESTEP_SHIFT="$2"; shift 2 ;;
|
|
--VALIDATION_DATA_SEED) VALIDATION_DATA_SEED="$2"; shift 2 ;;
|
|
--CFG_TEXT_SCALE) CFG_TEXT_SCALE="$2"; shift 2 ;;
|
|
--USE_KVCACHE) USE_KVCACHE="$2"; shift 2 ;;
|
|
--ENHANCE_PROMPT) ENHANCE_PROMPT="$2"; shift 2 ;;
|
|
|
|
--NUM_FRAMES) NUM_FRAMES="$2"; shift 2 ;;
|
|
--VIDEO_HEIGHT) VIDEO_HEIGHT="$2"; shift 2 ;;
|
|
--VIDEO_WIDTH) VIDEO_WIDTH="$2"; shift 2 ;;
|
|
--RESOLUTION) RESOLUTION="$2"; shift 2 ;;
|
|
--TEXT_TEMPLATE) TEXT_TEMPLATE="$2"; shift 2 ;;
|
|
--SAVE_PATH_GEN) SAVE_PATH_GEN="$2"; shift 2 ;;
|
|
|
|
-h|--help)
|
|
echo "Usage: bash inference_lance_my.sh [OPTIONS]"
|
|
echo ""
|
|
echo "Example:"
|
|
echo " bash inference_lance_my.sh --TASK_NAME t2i --MODEL_PATH downloads/Lance_3B --RESOLUTION image_768res"
|
|
echo " bash inference_lance_my.sh --TASK_NAME image_edit --CONFIG_PATH config.json"
|
|
echo " bash inference_lance_my.sh --TASK_NAME t2v --ENHANCE_PROMPT true"
|
|
echo " bash inference_lance_my.sh --TASK_NAME i2v --ENHANCE_PROMPT true"
|
|
exit 0
|
|
;;
|
|
|
|
*)
|
|
echo "Unknown option: $1"
|
|
echo "Use -h or --help for usage."
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
# ========================= Auto-generated Paths =========================
|
|
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
|
|
KVCACHE_TAG=""
|
|
if [ "$USE_KVCACHE" = "true" ]; then
|
|
KVCACHE_TAG="_kvcache"
|
|
fi
|
|
|
|
DEFAULT_SAVE_PATH_GEN="results/${TASK_NAME}_sample_ts${VALIDATION_NUM_TIMESTEPS}_tts${VALIDATION_TIMESTEP_SHIFT}_seed${VALIDATION_DATA_SEED}_cfg${CFG_TEXT_SCALE}${KVCACHE_TAG}_${TIMESTAMP}"
|
|
SAVE_PATH_GEN=${SAVE_PATH_GEN:-"$DEFAULT_SAVE_PATH_GEN"}
|
|
|
|
|
|
if [ -z "$MODEL_PATH" ]; then
|
|
echo "Error: please set MODEL_PATH manually in the configuration section at the top of this script."
|
|
exit 1
|
|
fi
|
|
|
|
# ============================== Environment and Distributed Setup ==============================
|
|
lance_setup_common_env
|
|
lance_setup_distributed_env "$NUM_GPUS"
|
|
lance_setup_shard_env 1
|
|
|
|
# ========================= Show Task Configuration =========================
|
|
echo "================================================"
|
|
echo "Lance Inference"
|
|
echo "================================================"
|
|
echo "Task: ${TASK_NAME}"
|
|
echo "Number of GPUs: ${NUM_GPUS}"
|
|
echo "Save path: ${SAVE_PATH_GEN}"
|
|
echo "Resolution: ${VIDEO_HEIGHT}x${VIDEO_WIDTH}"
|
|
echo "Output frames: ${NUM_FRAMES}"
|
|
echo "Model path: ${MODEL_PATH}"
|
|
if [ -n "$CONFIG_PATH" ]; then
|
|
echo "Config path: ${CONFIG_PATH}"
|
|
else
|
|
echo "Config path: task default"
|
|
fi
|
|
echo ""
|
|
echo "Key parameters:"
|
|
echo " - validation_num_timesteps: ${VALIDATION_NUM_TIMESTEPS}"
|
|
echo " - validation_timestep_shift: ${VALIDATION_TIMESTEP_SHIFT}"
|
|
echo " - validation_data_seed: ${VALIDATION_DATA_SEED}"
|
|
echo " - cfg_text_scale: ${CFG_TEXT_SCALE}"
|
|
echo " - num_frames: ${NUM_FRAMES}"
|
|
echo " - use_KVcache: ${USE_KVCACHE}"
|
|
echo " - enhance_prompt: ${ENHANCE_PROMPT}"
|
|
echo "================================================"
|
|
echo ""
|
|
|
|
# ============================== Run Inference ==============================
|
|
CONFIG_ARGS=()
|
|
if [ -n "$CONFIG_PATH" ]; then
|
|
CONFIG_ARGS=(--val_dataset_config_file "$CONFIG_PATH")
|
|
fi
|
|
|
|
accelerate launch \
|
|
--num_machines $NUM_MACHINES \
|
|
--num_processes $TOTAL_RANK \
|
|
--machine_rank $MACHINE_RANK \
|
|
--main_process_ip $MAIN_PROCESS_IP \
|
|
--main_process_port $MAIN_PROCESS_PORT \
|
|
--mixed_precision bf16 \
|
|
inference_lance.py \
|
|
--model_path "$MODEL_PATH" \
|
|
--vit_type qwen_2_5_vl_original \
|
|
--llm_qk_norm true \
|
|
--llm_qk_norm_und true \
|
|
--llm_qk_norm_gen true \
|
|
--tie_word_embeddings false \
|
|
--validation_num_timesteps $VALIDATION_NUM_TIMESTEPS \
|
|
--validation_timestep_shift $VALIDATION_TIMESTEP_SHIFT \
|
|
--copy_init_moe true \
|
|
--max_num_frames 121 \
|
|
--max_latent_size 64 \
|
|
--latent_patch_size 1 1 1 \
|
|
--visual_und true \
|
|
--visual_gen true \
|
|
--vae_model_type wan \
|
|
--apply_qwen_2_5_vl_pos_emb true \
|
|
--apply_chat_template false \
|
|
--cfg_type 0 \
|
|
--validation_data_seed $VALIDATION_DATA_SEED \
|
|
--video_height $VIDEO_HEIGHT \
|
|
--video_width $VIDEO_WIDTH \
|
|
--num_frames $NUM_FRAMES \
|
|
--task $TASK_NAME \
|
|
--save_path_gen "$SAVE_PATH_GEN" \
|
|
--resolution "$RESOLUTION" \
|
|
--text_template "$TEXT_TEMPLATE" \
|
|
--cfg_text_scale $CFG_TEXT_SCALE \
|
|
--use_KVcache "$USE_KVCACHE" \
|
|
--enhance_prompt "$ENHANCE_PROMPT" \
|
|
"${CONFIG_ARGS[@]}"
|
|
|
|
echo ""
|
|
echo "================================================"
|
|
echo "Done! Results: ${SAVE_PATH_GEN}"
|
|
echo "================================================"
|