#!/bin/bash
# Full fine-tune SVD on OOD object position LIBERO videos
# 5 GPUs, 8-bit Adam, 576x320, 7 frames, batch_size=4
# Resume from checkpoint-46000 (trained on original viewpoint)

export NCCL_P2P_DISABLE=1
export NCCL_BUFFSIZE=8388608
export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True
export PROJECT="svd-libero-ood-objpos"

cd /data/cameron/vidgen/svd_motion_lora/Motion-LoRA

eval "$(conda shell.bash hook)"
conda activate motionlora

accelerate launch \
    --config_file scripts/accelerate_configs/multi_gpu_5.yaml \
    train_svd.py \
    --pretrained_model_name_or_path=checkpoints/stable-video-diffusion-img2vid-xt-1-1 \
    --pretrain_unet=output_libero_7f/checkpoint-46000/unet \
    --per_gpu_batch_size=4 --gradient_accumulation_steps=1 \
    --max_train_steps=999999 \
    --width=576 \
    --height=320 \
    --checkpointing_steps=500 --checkpoints_total_limit=5 \
    --learning_rate=5e-5 --lr_warmup_steps=0 \
    --seed=123 \
    --mixed_precision="bf16" \
    --dataset_path="dataset/libero_ood_objpos" \
    --validation_steps=500 \
    --num_validation_images=3 \
    --validation_image_path="dataset/val_ood_objpos" \
    --gradient_checkpointing \
    --use_8bit_adam \
    --num_frames=7 \
    --output_dir='./output_libero_ood_objpos' \
    --report_to "wandb"
