#!/bin/bash set -euo pipefail mkdir -p model GGUF_PATH_M="model/llama-joycaption-q4_k_m.gguf" GGUF_PATH_S="model/llama-joycaption-q4_k_s.gguf" GGUF_URL_M="https://huggingface.co/mradermacher/llama-joycaption-beta-one-hf-llava-GGUF/resolve/main/llama-joycaption-beta-one-hf-llava-q4_k_m.gguf" GGUF_URL_S="https://huggingface.co/mradermacher/llama-joycaption-beta-one-hf-llava-GGUF/resolve/main/llama-joycaption-beta-one-hf-llava-q4_k_s.gguf" download_model() { local url=$1 local path=$2 if [ -f "$path" ]; then echo "Model already present at $path" return 0 fi echo "Downloading $path (may be several GB)..." if curl -L -C - -o "$path" "$url"; then echo "Downloaded $path" return 0 else rm -f "$path" return 1 fi } # Try Q4_K_M first if download_model "$GGUF_URL_M" "$GGUF_PATH_M"; then MODEL_PATH="$GGUF_PATH_M" elif download_model "$GGUF_URL_S" "$GGUF_PATH_S"; then MODEL_PATH="$GGUF_PATH_S" else echo "Failed to download both Q4_K_M and Q4_K_S models." >&2 exit 1 fi # Symlink expected filename used in app.py ln -sf "$MODEL_PATH" model/llama-joycaption-q4_k_m.gguf # Run app.py (Spaces runs app.py automatically; this is for local runs) python app.py