#!/usr/bin/env bash ENV_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" VGEN_ROOT_DEFAULT="$(cd "$ENV_DIR/../.." && pwd)" WORKSPACE_ROOT_DEFAULT="$(cd "$VGEN_ROOT_DEFAULT/.." && pwd)" SHARED_DEV_ROOT_DEFAULT="/apdcephfs_sgxy/share_304169095/hunyuan/juliayxzhu/dev" VGEN_ROOT="${VGEN_ROOT:-$VGEN_ROOT_DEFAULT}" WORKSPACE_ROOT="${WORKSPACE_ROOT:-$WORKSPACE_ROOT_DEFAULT}" DEV_ROOT="${DEV_ROOT:-$WORKSPACE_ROOT}" SHARED_DEV_ROOT="${SHARED_DEV_ROOT:-$SHARED_DEV_ROOT_DEFAULT}" LOCAL_MODELS_ROOT="${LOCAL_MODELS_ROOT:-$WORKSPACE_ROOT/models}" SHARED_MODELS_ROOT="${SHARED_MODELS_ROOT:-$SHARED_DEV_ROOT/Models}" MODELS_ROOT="${MODELS_ROOT:-$LOCAL_MODELS_ROOT}" CONDA_ROOT="${CONDA_ROOT:-$SHARED_DEV_ROOT/miniconda3}" CONDA_SH="${CONDA_SH:-$CONDA_ROOT/etc/profile.d/conda.sh}" DIFFSYNTH_ROOT="${DIFFSYNTH_ROOT:-$VGEN_ROOT/third_party/DiffSynth-Studio}" DIFF_ENV="${DIFF_ENV:-diff}" resolve_model_path() { local explicit_var="$1" local relative_name="$2" local explicit_value="${!explicit_var:-}" if [[ -n "$explicit_value" ]]; then printf '%s\n' "$explicit_value" return fi if [[ -e "$LOCAL_MODELS_ROOT/$relative_name" ]]; then printf '%s\n' "$LOCAL_MODELS_ROOT/$relative_name" return fi printf '%s\n' "$SHARED_MODELS_ROOT/$relative_name" } resolve_workspace_dir() { local explicit_var="$1" shift local explicit_value="${!explicit_var:-}" if [[ -n "$explicit_value" ]]; then printf '%s\n' "$explicit_value" return fi local first_candidate="$1" local candidate for candidate in "$@"; do if [[ -e "$candidate" ]]; then printf '%s\n' "$candidate" return fi done printf '%s\n' "$first_candidate" } QWEN_IMAGE_MODEL="${QWEN_IMAGE_MODEL:-$(resolve_model_path QWEN_IMAGE_MODEL Qwen-Image)}" BERNINI_IMAGE_CONFIG="${BERNINI_IMAGE_CONFIG:-$(resolve_model_path BERNINI_IMAGE_CONFIG Bernini-Diffusers)}" IMAGE_BACKEND="${IMAGE_BACKEND:-auto}" PERSISTENT_VIDEO_BACKENDS="${PERSISTENT_VIDEO_BACKENDS:-1}" COSYVOICE_MODEL="${COSYVOICE_MODEL:-$(resolve_model_path COSYVOICE_MODEL CosyVoice3-0.5B-2512)}" WAN_I2V_MODEL="${WAN_I2V_MODEL:-$(resolve_model_path WAN_I2V_MODEL Wan2.2-I2V-A14B)}" WAN_VACE_MODEL="${WAN_VACE_MODEL:-$(resolve_model_path WAN_VACE_MODEL Wan2.2-VACE-Fun-A14B)}" BINDWEAVE_ROOT="${BINDWEAVE_ROOT:-$(resolve_workspace_dir BINDWEAVE_ROOT "$VGEN_ROOT/third_party/BindWeave")}" BINDWEAVE_SOURCE_MODEL="${BINDWEAVE_SOURCE_MODEL:-$(resolve_model_path BINDWEAVE_SOURCE_MODEL BindWeave)}" BINDWEAVE_CHECKPOINT="${BINDWEAVE_CHECKPOINT:-$(resolve_model_path BINDWEAVE_CHECKPOINT BindWeave-MM)}" BINDWEAVE_WAN21_MODEL="${BINDWEAVE_WAN21_MODEL:-$(resolve_model_path BINDWEAVE_WAN21_MODEL Wan2.1-I2V-14B-720P-Diffusers)}" BINDWEAVE_QWEN_MODEL="${BINDWEAVE_QWEN_MODEL:-$(resolve_model_path BINDWEAVE_QWEN_MODEL Qwen2.5-VL-7B-Instruct)}" BINDWEAVE_PYTHON="${BINDWEAVE_PYTHON:-}" BINDWEAVE_DEVICE="${BINDWEAVE_DEVICE:-npu}" BINDWEAVE_NPROC_PER_NODE="${BINDWEAVE_NPROC_PER_NODE:-8}" BINDWEAVE_CONTEXT_PARALLEL_SIZE="${BINDWEAVE_CONTEXT_PARALLEL_SIZE:-0}" BINDWEAVE_MASTER_PORT="${BINDWEAVE_MASTER_PORT:-6000}" QWEN35_27B_MODEL="${QWEN35_27B_MODEL:-$(resolve_model_path QWEN35_27B_MODEL qwen3.5-27b)}" BERNINI_CONFIG="${BERNINI_CONFIG:-$(resolve_model_path BERNINI_CONFIG Bernini-Diffusers)}" BERNINI_R_CONFIG="${BERNINI_R_CONFIG:-$(resolve_model_path BERNINI_R_CONFIG Bernini-R-Diffusers)}" HUNYUANVIDEO_MODEL="${HUNYUANVIDEO_MODEL:-$(resolve_model_path HUNYUANVIDEO_MODEL HunyuanVideo-1.5)}" COMFYUI_ROOT="${COMFYUI_ROOT:-$(resolve_workspace_dir COMFYUI_ROOT "$WORKSPACE_ROOT/ComfyUI" "$WORKSPACE_ROOT/ComfyUI-master")}" BERNINI_ROOT="${BERNINI_ROOT:-$(resolve_workspace_dir BERNINI_ROOT "$WORKSPACE_ROOT/Bernini" "$WORKSPACE_ROOT/Bernini-main")}" BERNINI_PYTHON="${BERNINI_PYTHON:-$WORKSPACE_ROOT/venv/bernini/bin/python}" HUNYUANVIDEO_ROOT="${HUNYUANVIDEO_ROOT:-$(resolve_workspace_dir HUNYUANVIDEO_ROOT "$WORKSPACE_ROOT/HunyuanVideo-1.5-local" "$SHARED_DEV_ROOT/HunyuanVideo-1.5")}" HUNYUANVIDEO_PYTHON="${HUNYUANVIDEO_PYTHON:-$CONDA_ROOT/envs/$DIFF_ENV/bin/python}" LOG_DIR="${LOG_DIR:-$VGEN_ROOT/logs}" RUNTIME_DIR="${RUNTIME_DIR:-$VGEN_ROOT/runtime}" LOCAL_OUTPUT_ROOT="${LOCAL_OUTPUT_ROOT:-$VGEN_ROOT/outputs/poetry_teaching}" export VGEN_ROOT WORKSPACE_ROOT DEV_ROOT SHARED_DEV_ROOT CONDA_ROOT CONDA_SH DIFFSYNTH_ROOT MODELS_ROOT LOCAL_MODELS_ROOT SHARED_MODELS_ROOT export DIFF_ENV export QWEN_IMAGE_MODEL BERNINI_IMAGE_CONFIG IMAGE_BACKEND PERSISTENT_VIDEO_BACKENDS COSYVOICE_MODEL WAN_I2V_MODEL WAN_VACE_MODEL QWEN35_27B_MODEL export BERNINI_CONFIG BERNINI_R_CONFIG BERNINI_PYTHON export HUNYUANVIDEO_MODEL HUNYUANVIDEO_ROOT HUNYUANVIDEO_PYTHON export BINDWEAVE_ROOT BINDWEAVE_SOURCE_MODEL BINDWEAVE_CHECKPOINT BINDWEAVE_WAN21_MODEL BINDWEAVE_QWEN_MODEL export BINDWEAVE_PYTHON BINDWEAVE_DEVICE BINDWEAVE_NPROC_PER_NODE BINDWEAVE_CONTEXT_PARALLEL_SIZE BINDWEAVE_MASTER_PORT export COMFYUI_ROOT BERNINI_ROOT export LOG_DIR RUNTIME_DIR LOCAL_OUTPUT_ROOT