Spaces:
Sleeping
Sleeping
| # Usage: ./deploy.sh <path_to_latest_yolo_train_dir> | |
| # Example: ./deploy.sh ../yolo-output/models/20250422.7/ | |
| set -e | |
| if [ $# -lt 1 ]; then | |
| echo "Usage: $0 <path_to_latest_yolo_train_dir>" | |
| exit 1 | |
| fi | |
| ml git-lfs/3.2.0 | |
| MODEL_DIR=$1 | |
| HF_SPACE_URL=git@hf.co:spaces/rayh/clusterflux | |
| MODEL_SERVER_DIR=$(dirname "$0") | |
| WEIGHTS_SRC="$MODEL_DIR/train/weights/best.pt" | |
| WEIGHTS_DST="$MODEL_SERVER_DIR/weights/best.pt" | |
| # Step 1: Copy model weights | |
| mkdir -p "$MODEL_SERVER_DIR/weights" | |
| cp "$WEIGHTS_SRC" "$WEIGHTS_DST" | |
| echo "Copied model weights from $WEIGHTS_SRC to $WEIGHTS_DST" | |
| # Step 2: Extract version (last part of model dir) | |
| VERSION=$(basename "$MODEL_DIR") | |
| echo "$VERSION" > "$MODEL_SERVER_DIR/VERSION" | |
| echo "Set VERSION to $VERSION" | |
| # Step 3: Setup Git LFS for .pt files | |
| cd "$MODEL_SERVER_DIR" | |
| if ! git lfs &> /dev/null; then | |
| echo "Git LFS not found! Please install git-lfs before running this script." | |
| exit 1 | |
| fi | |
| git lfs install | |
| if [ ! -f .gitattributes ] || ! grep -q "weights/*.pt" .gitattributes; then | |
| git lfs track "weights/*.pt" | |
| git add .gitattributes | |
| fi | |
| # Step 4: Deploy to Hugging Face Spaces | |
| echo "Pushing to Hugging Face Space..." | |
| if [ ! -d .git ]; then | |
| git init | |
| git remote add origin "$HF_SPACE_URL" | |
| fi | |
| git add . | |
| git commit -m "Deploy latest YOLO model and app (version $VERSION)" || echo "Nothing to commit" | |
| git branch -M main | |
| git push -u origin main --force | |
| echo "Deployment complete." | |