#!/bin/bash # RunPod Quick Setup Script echo "๐Ÿš€ Setting up VR180 Matting on RunPod..." echo "GPU: $(nvidia-smi --query-gpu=name --format=csv,noheader)" echo "" # Update system echo "๐Ÿ“ฆ Installing system dependencies..." apt-get update && apt-get install -y ffmpeg git wget nano # Install Python dependencies echo "๐Ÿ Installing Python dependencies..." pip install --upgrade pip pip install -r requirements.txt # Install decord for SAM2 video loading echo "๐Ÿ“น Installing decord for video processing..." pip install decord # Install CuPy for GPU acceleration of stereo validation echo "๐Ÿš€ Installing CuPy for GPU acceleration..." # Auto-detect CUDA version and install appropriate CuPy python -c " import torch if torch.cuda.is_available(): cuda_version = torch.version.cuda print(f'CUDA version detected: {cuda_version}') if cuda_version.startswith('11.'): import subprocess subprocess.run(['pip', 'install', 'cupy-cuda11x>=12.0.0']) print('Installed CuPy for CUDA 11.x') elif cuda_version.startswith('12.'): import subprocess subprocess.run(['pip', 'install', 'cupy-cuda12x>=12.0.0']) print('Installed CuPy for CUDA 12.x') else: print(f'Unsupported CUDA version: {cuda_version}') else: print('CUDA not available, skipping CuPy installation') " # Install SAM2 separately (not on PyPI) echo "๐ŸŽฏ Installing SAM2..." pip install git+https://github.com/facebookresearch/segment-anything-2.git # Install project echo "๐Ÿ“ฆ Installing VR180 matting package..." pip install -e . # Download models echo "๐Ÿ“ฅ Downloading models..." mkdir -p models # Download YOLOv8 models python -c "from ultralytics import YOLO; YOLO('yolov8n.pt'); YOLO('yolov8m.pt')" # Clone SAM2 repo for checkpoints echo "๐Ÿ“ฅ Cloning SAM2 for model checkpoints..." if [ ! -d "segment-anything-2" ]; then git clone https://github.com/facebookresearch/segment-anything-2.git fi # Download SAM2 checkpoints using their official script cd segment-anything-2/checkpoints if [ ! -f "sam2.1_hiera_large.pt" ]; then echo "๐Ÿ“ฅ Downloading SAM2 checkpoints..." chmod +x download_ckpts.sh bash download_ckpts.sh fi cd ../.. # Create working directories mkdir -p /workspace/data /workspace/output # Test installation echo "" echo "๐Ÿงช Testing installation..." python test_installation.py # Check which SAM2 models are available echo "" echo "๐Ÿ“Š SAM2 Models available:" if [ -f "segment-anything-2/checkpoints/sam2.1_hiera_large.pt" ]; then echo " โœ… sam2.1_hiera_large.pt (recommended)" echo " Config: sam2_model_cfg: 'sam2.1_hiera_l'" echo " Checkpoint: sam2_checkpoint: 'segment-anything-2/checkpoints/sam2.1_hiera_large.pt'" fi if [ -f "segment-anything-2/checkpoints/sam2.1_hiera_base_plus.pt" ]; then echo " โœ… sam2.1_hiera_base_plus.pt" echo " Config: sam2_model_cfg: 'sam2.1_hiera_base_plus'" fi if [ -f "segment-anything-2/checkpoints/sam2_hiera_large.pt" ]; then echo " โœ… sam2_hiera_large.pt (legacy)" echo " Config: sam2_model_cfg: 'sam2_hiera_l'" fi echo "" echo "โœ… Setup complete!" echo "" echo "๐Ÿ“ Quick start:" echo "1. Upload your VR180 video to /workspace/data/" echo " wget -O /workspace/data/video.mp4 'your-video-url'" echo "" echo "2. Use the RunPod optimized config:" echo " cp config_runpod.yaml config.yaml" echo " nano config.yaml # Update video path" echo "" echo "3. Run the matting:" echo " vr180-matting config.yaml" echo "" echo "๐Ÿ’ก For A40 GPU, you can use higher quality settings:" echo " vr180-matting config.yaml --scale 0.75"