VGen1 / scripts /run_10s.sh
ouzhang57's picture
Upload folder using huggingface_hub (part 3)
75e4be0 verified
Raw
History Blame Contribute Delete
6.73 kB
# #!/usr/bin/env bash
# set -euo pipefail
# SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# source "$SCRIPT_DIR/deploy/env.sh"
# mkdir -p "$LOG_DIR" "$RUNTIME_DIR"
# RUN_NAME="${RUN_NAME:-poetry_bindweave_10s_$(date +%Y%m%d_%H%M%S)}"
# LOG_FILE="$LOG_DIR/${RUN_NAME}.log"
# POEM="${POEM:-夜雨寄北
# 李商隐
# 君问归期未有期,巴山夜雨涨秋池。
# 何当共剪西窗烛,却话巴山夜雨时。}"
# require_path() {
# local path="$1"
# local message="$2"
# if [[ ! -e "$path" ]]; then
# echo "$message: $path" >&2
# exit 1
# fi
# }
# require_path "$QWEN_IMAGE_MODEL" "Qwen-Image model is missing"
# require_path "$COSYVOICE_MODEL" "CosyVoice model is missing"
# require_path "$BINDWEAVE_ROOT" "BindWeave code directory is missing"
# require_path "$BINDWEAVE_ROOT/MindSpeed-MM/checkpoint" "BindWeave MindSpeed-MM submodule is incomplete"
# require_path "$BINDWEAVE_ROOT/MindSpeed/mindspeed" "BindWeave MindSpeed submodule is incomplete"
# require_path "$BINDWEAVE_ROOT/Megatron-LM/megatron" "BindWeave Megatron-LM submodule is incomplete"
# require_path "$BINDWEAVE_SOURCE_MODEL" "BindWeave HF checkpoint directory is missing"
# require_path "$BINDWEAVE_WAN21_MODEL/vae" "Wan2.1 VAE directory is missing"
# require_path "$BINDWEAVE_WAN21_MODEL/tokenizer" "Wan2.1 tokenizer directory is missing"
# require_path "$BINDWEAVE_WAN21_MODEL/text_encoder" "Wan2.1 text_encoder directory is missing"
# require_path "$BINDWEAVE_WAN21_MODEL/image_encoder" "Wan2.1 image_encoder directory is missing"
# require_path "$BINDWEAVE_QWEN_MODEL" "Qwen2.5-VL model is missing"
# if ! curl -fsS \
# -H "Authorization: Bearer ${QWEN35_API_KEY:-qwen3.5-27b-local}" \
# "${QWEN35_API_BASE:-http://127.0.0.1:8002/v1}/models" \
# >/dev/null; then
# echo "Qwen3.5 service is not ready: ${QWEN35_API_BASE:-http://127.0.0.1:8002/v1}" >&2
# echo "Please start it first: bash $VGEN_ROOT/scripts/deploy/start_qwen35_27b.sh" >&2
# exit 1
# fi
# if [[ -f /usr/local/Ascend/ascend-toolkit/set_env.sh ]]; then
# source /usr/local/Ascend/ascend-toolkit/set_env.sh
# fi
# source "$CONDA_SH"
# conda activate "$DIFF_ENV"
# PYTHON_BIN="${PYTHON_BIN:-$CONDA_ROOT/envs/$DIFF_ENV/bin/python}"
# BINDWEAVE_PYTHON="${BINDWEAVE_PYTHON:-$PYTHON_BIN}"
# BINDWEAVE_PYTHONPATH="$BINDWEAVE_ROOT:$BINDWEAVE_ROOT/MindSpeed-MM:$BINDWEAVE_ROOT/MindSpeed:$BINDWEAVE_ROOT/Megatron-LM${PYTHONPATH:+:$PYTHONPATH}"
# export PYTHONPATH="$BINDWEAVE_PYTHONPATH"
# if [[ ! -f "$BINDWEAVE_CHECKPOINT/latest_checkpointed_iteration.txt" ]]; then
# echo "Converting BindWeave checkpoint to MindSpeed/MM format..."
# rm -rf "$BINDWEAVE_CHECKPOINT"
# (
# cd "$BINDWEAVE_ROOT"
# PYTHONPATH="$BINDWEAVE_PYTHONPATH" "$BINDWEAVE_PYTHON" convert_ckpt.py \
# --source_path "$BINDWEAVE_SOURCE_MODEL" \
# --target_path "$BINDWEAVE_CHECKPOINT" \
# --mode convert_to_mm
# )
# fi
# require_path "$BINDWEAVE_CHECKPOINT/latest_checkpointed_iteration.txt" "Converted BindWeave checkpoint is missing"
# export BINDWEAVE_PYTHON
# export VIDEO_BACKEND=bindweave
# OUTPUT_DIR="$VGEN_ROOT/outputs/poetry_teaching/$RUN_NAME"
# echo "Run name: $RUN_NAME"
# echo "Log file: $LOG_FILE"
# echo "Output dir: $OUTPUT_DIR"
# echo "Video backend: BindWeave"
# echo "BindWeave checkpoint: $BINDWEAVE_CHECKPOINT"
# echo "Wan2.1 base: $BINDWEAVE_WAN21_MODEL"
# echo "Qwen2.5-VL: $BINDWEAVE_QWEN_MODEL"
# nohup bash "$SCRIPT_DIR/run_poetry_teaching_pipeline.sh" \
# --poem "$POEM" \
# --run-name "$RUN_NAME" \
# --segments "${SEGMENTS:-6}" \
# --clip-seconds "${CLIP_SECONDS:-10}" \
# --fps "${FPS:-15}" \
# --height "${HEIGHT:-480}" \
# --width "${WIDTH:-832}" \
# --image-height "${IMAGE_HEIGHT:-720}" \
# --image-width "${IMAGE_WIDTH:-1280}" \
# --image-device "${IMAGE_DEVICE:-cuda:0}" \
# --image-workers "${IMAGE_WORKERS:-1}" \
# --video-workers "${VIDEO_WORKERS:-1}" \
# --audio-workers "${AUDIO_WORKERS:-1}" \
# --video-backend bindweave \
# --bindweave-root "$BINDWEAVE_ROOT" \
# --bindweave-checkpoint "$BINDWEAVE_CHECKPOINT" \
# --bindweave-wan21-model "$BINDWEAVE_WAN21_MODEL" \
# --bindweave-qwen-model "$BINDWEAVE_QWEN_MODEL" \
# --bindweave-python "$BINDWEAVE_PYTHON" \
# --bindweave-device "$BINDWEAVE_DEVICE" \
# --bindweave-nproc-per-node "$BINDWEAVE_NPROC_PER_NODE" \
# --bindweave-context-parallel-size "$BINDWEAVE_CONTEXT_PARALLEL_SIZE" \
# --bindweave-master-port "$BINDWEAVE_MASTER_PORT" \
# --video-steps "${VIDEO_STEPS:-50}" \
# --qwen35-api-base "${QWEN35_API_BASE:-http://127.0.0.1:8002/v1}" \
# --qwen35-model "${QWEN35_MODEL:-qwen3.5-27b-local}" \
# --qwen35-api-key "${QWEN35_API_KEY:-qwen3.5-27b-local}" \
# --overwrite \
# "$@" \
# >"$LOG_FILE" 2>&1 &
# echo $! > "$RUNTIME_DIR/${RUN_NAME}.pid"
# echo "Started PID: $(cat "$RUNTIME_DIR/${RUN_NAME}.pid")"
# echo "Follow log: tail -f $LOG_FILE"
# echo "Final video: $OUTPUT_DIR/final_poetry_teaching.mp4"
#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$SCRIPT_DIR/deploy/env.sh"
mkdir -p "$LOG_DIR" "$RUNTIME_DIR"
RUN_NAME="${RUN_NAME:-poetry_full_10s_$(date +%Y%m%d_%H%M%S)}"
LOG_FILE="$LOG_DIR/${RUN_NAME}.log"
POEM="${POEM:-枫桥夜泊
张继
月落乌啼霜满天,江枫渔火对愁眠。
姑苏城外寒山寺,夜半钟声到客船。}"
if ! curl -fsS \
-H "Authorization: Bearer ${QWEN35_API_KEY:-qwen3.5-27b-local}" \
"${QWEN35_API_BASE:-http://127.0.0.1:8002/v1}/models" \
>/dev/null; then
echo "Qwen3.5 service is not ready: ${QWEN35_API_BASE:-http://127.0.0.1:8002/v1}" >&2
echo "Please start it first: bash $VGEN_ROOT/scripts/deploy/start_qwen35_27b.sh" >&2
exit 1
fi
echo "Run name: $RUN_NAME"
echo "Log file: $LOG_FILE"
echo "Output dir: $VGEN_ROOT/outputs/poetry_teaching/$RUN_NAME"
nohup bash "$SCRIPT_DIR/run_poetry_teaching_pipeline-agentloop.sh" \
--poem "$POEM" \
--run-name "$RUN_NAME" \
--segments "${SEGMENTS:-6}" \
--clip-seconds "${CLIP_SECONDS:-10}" \
--fps "${FPS:-15}" \
--image-device "${IMAGE_DEVICE:-cuda:0}" \
--video-usp-devices "${VIDEO_USP_DEVICES:-1,2,3,4,5}" \
--image-workers "${IMAGE_WORKERS:-1}" \
--video-workers "${VIDEO_WORKERS:-1}" \
--audio-workers "${AUDIO_WORKERS:-1}" \
--qwen35-api-base "${QWEN35_API_BASE:-http://127.0.0.1:8002/v1}" \
--qwen35-model "${QWEN35_MODEL:-qwen3.5-27b-local}" \
--qwen35-api-key "${QWEN35_API_KEY:-qwen3.5-27b-local}" \
--overwrite \
"$@" \
>"$LOG_FILE" 2>&1 &
echo $! > "$RUNTIME_DIR/${RUN_NAME}.pid"
echo "Started PID: $(cat "$RUNTIME_DIR/${RUN_NAME}.pid")"
echo "Follow log: tail -f $LOG_FILE"
echo "Final video: $VGEN_ROOT/outputs/poetry_teaching/$RUN_NAME/final_poetry_teaching.mp4"