| #!/bin/bash |
| |
| |
| set -euo pipefail |
|
|
| if [ -f "${CONDA_SH:-}" ]; then |
| source "${CONDA_SH}" |
| elif [ -f "$HOME/miniconda3/etc/profile.d/conda.sh" ]; then |
| source "$HOME/miniconda3/etc/profile.d/conda.sh" |
| elif [ -f "$HOME/miniconda/etc/profile.d/conda.sh" ]; then |
| source "$HOME/miniconda/etc/profile.d/conda.sh" |
| fi |
| if [ -n "${ECHO_MEMORY_CONDA_ENV:-}" ]; then |
| conda activate "${ECHO_MEMORY_CONDA_ENV}" 2>/dev/null || true |
| elif [ -n "${CAM_CONDA_ENV:-}" ]; then |
| conda activate "${CAM_CONDA_ENV}" 2>/dev/null || true |
| elif [ -z "${CONDA_DEFAULT_ENV:-}" ]; then |
| conda activate echo-memory 2>/dev/null || true |
| fi |
|
|
| export NCCL_DEBUG="${NCCL_DEBUG:-INFO}" |
| if [ -z "${NCCL_SOCKET_IFNAME:-}" ]; then |
| _default_ifname="" |
| if command -v ip >/dev/null 2>&1; then |
| _default_ifname="$(ip -o -4 route show to default 2>/dev/null | awk '{print $5; exit}' || true)" |
| fi |
| export NCCL_SOCKET_IFNAME="${_default_ifname:-eth0}" |
| fi |
| export CONTEXT_POSITION=suffix |
| export USE_CONCATENATION_INFERENCE=true |
| export USE_RT_RELATIVE=true |
|
|
| SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[1]:-${BASH_SOURCE[0]}}")" && pwd)" |
| REPO_ROOT="${REPO_ROOT:-$(cd "${SCRIPT_DIR}/../.." && pwd)}" |
| export PYTHONPATH="${REPO_ROOT}:${PYTHONPATH:-}" |
|
|
| _first_existing_dir() { |
| local c |
| for c in "$@"; do |
| [ -n "${c}" ] || continue |
| [ -d "${c}" ] && { echo "${c}"; return 0; } |
| done |
| return 1 |
| } |
|
|
| _WAN_BASE_DEFAULT="$(_first_existing_dir \ |
| "${REPO_ROOT}/checkpoints/Wan2.1-T2V-1.3B" \ |
| "${REPO_ROOT}/checkpoints/wan2.1-t2v-1.3b" \ |
| "${REPO_ROOT}/models/Wan2.1-T2V-1.3B" \ |
| || true)" |
| _WAN_BASE_DEFAULT="${_WAN_BASE_DEFAULT:-}" |
| WAN_BASE_MODEL="${WAN_BASE_MODEL:-${_WAN_BASE_DEFAULT:-}}" |
|
|
| _DATASET_BASE_DEFAULT="$(_first_existing_dir \ |
| "${REPO_ROOT}/data/Context-as-Memory-Dataset" \ |
| "${REPO_ROOT}/data/Context-as-Memory-Dataset/videos/Context-as-Memory-Dataset" \ |
| || true)" |
| _DATASET_BASE_DEFAULT="${_DATASET_BASE_DEFAULT:-}" |
| DATASET_BASE_PATH="${DATASET_BASE_PATH:-${_DATASET_BASE_DEFAULT:-}}" |
|
|
| LOG_DIR="${LOG_DIR:-${REPO_ROOT}/logs}" |
| mkdir -p "${LOG_DIR}" |
| export WAN_BASE_MODEL DATASET_BASE_PATH LOG_DIR REPO_ROOT |
|
|
| _require_file() { |
| local p="$1" |
| [ -f "${p}" ] || { |
| echo "[common_env_memory][ERROR] missing file: ${p}" >&2 |
| echo "[common_env_memory][HINT] set WAN_BASE_MODEL to your Wan2.1 base model directory." >&2 |
| exit 2 |
| } |
| } |
|
|
| _require_dir() { |
| local p="$1" |
| [ -d "${p}" ] || { |
| echo "[common_env_memory][ERROR] missing dir: ${p}" >&2 |
| echo "[common_env_memory][HINT] set DATASET_BASE_PATH to your dataset root." >&2 |
| exit 2 |
| } |
| } |
|
|
| dataset_base_path="${DATASET_BASE_PATH}" |
| METADATA_NAME="${METADATA_NAME:-metadata_full.csv}" |
| model_paths="[\"${WAN_BASE_MODEL}/diffusion_pytorch_model.safetensors\",\"${WAN_BASE_MODEL}/models_t5_umt5-xxl-enc-bf16.pth\",\"${WAN_BASE_MODEL}/Wan2.1_VAE.pth\"]" |
| remove_prefix_in_ckpt="pipe.dit." |
|
|
| if [ -z "${WAN_BASE_MODEL}" ]; then |
| echo "[common_env_memory][ERROR] WAN_BASE_MODEL is not set." >&2 |
| echo "[common_env_memory][HINT] export WAN_BASE_MODEL=/path/to/Wan2.1-T2V-1.3B" >&2 |
| exit 2 |
| fi |
| if [ -z "${DATASET_BASE_PATH}" ]; then |
| echo "[common_env_memory][ERROR] DATASET_BASE_PATH is not set." >&2 |
| echo "[common_env_memory][HINT] export DATASET_BASE_PATH=/path/to/Context-as-Memory-Dataset" >&2 |
| exit 2 |
| fi |
| _require_file "${WAN_BASE_MODEL}/diffusion_pytorch_model.safetensors" |
| _require_file "${WAN_BASE_MODEL}/models_t5_umt5-xxl-enc-bf16.pth" |
| _require_file "${WAN_BASE_MODEL}/Wan2.1_VAE.pth" |
| _require_dir "${DATASET_BASE_PATH}" |
| echo "[common_env_memory] WAN_BASE_MODEL=${WAN_BASE_MODEL}" |
| echo "[common_env_memory] DATASET_BASE_PATH=${DATASET_BASE_PATH}" |
|
|
| action_dir="${ACTION_DIR:-${REPO_ROOT}/env}" |
| sampling_action_path="${action_dir}/action_rotation_left_45.json" |
| [ ! -f "${sampling_action_path}" ] && (python3 "${action_dir}/generate_rotation_actions.py" 2>/dev/null || true) |
| cd "${REPO_ROOT}" |
|
|