#!/usr/bin/env bash
# ==============================================================================
# Automated Asset Downloader for ComfyUI Lab Recipe
# Recipe: Freya Cherry Kimono: ReActor Face Swap & GFPGAN Facial Restoration
# Origin: https://decomfy.com/freya-cherry-kimono-reactor-faceswap
# ==============================================================================
set -euo pipefail

# 1. ComfyUI directory location (Defaults to current working directory)
COMFY_DIR="${1:-.}"

# 2. Civitai API key (Optional: Set export CIVITAI_TOKEN="your_key" if gated)
CIVITAI_TOKEN="${CIVITAI_TOKEN:-}"

echo "===================================================================="
echo "ComfyUI Lab: Downloading assets for: freya-cherry-kimono-reactor-faceswap"
echo "Target ComfyUI root: ${COMFY_DIR}"
echo "===================================================================="

# Create required directories
echo "==> Ensuring model directories exist..."
mkdir -p "${COMFY_DIR}/user/default/workflows"
mkdir -p "${COMFY_DIR}/models/insightface"
mkdir -p "${COMFY_DIR}/models/facerestore_models"

# Download Workflow JSON
echo "==> Fetching Workflow Canvas JSON..."
curl -sSL "https://decomfy.com/api/workflows/freya-cherry-kimono-reactor-faceswap.json" -o "${COMFY_DIR}/user/default/workflows/freya-cherry-kimono-reactor-faceswap.json"
echo "[OK] Saved workflow to ${COMFY_DIR}/user/default/workflows/freya-cherry-kimono-reactor-faceswap.json"

echo "==> Downloading required models and weights..."
  # inswapper_128.onnx (554 MB) -> models/insightface/
  if [ ! -f "${COMFY_DIR}/models/insightface/inswapper_128.onnx" ]; then
    echo "[+] Downloading inswapper_128.onnx (554 MB)..."
    URL="https://huggingface.co/ezioruan/inswapper_128.onnx/resolve/main/inswapper_128.onnx"
    curl -C - -L -f --retry 3 --progress-bar "$URL" -o "${COMFY_DIR}/models/insightface/inswapper_128.onnx"
  else
    echo "[OK] Found ${COMFY_DIR}/models/insightface/inswapper_128.onnx"
  fi

  # GFPGANv1.4.pth (348 MB) -> models/facerestore_models/
  if [ ! -f "${COMFY_DIR}/models/facerestore_models/GFPGANv1.4.pth" ]; then
    echo "[+] Downloading GFPGANv1.4.pth (348 MB)..."
    URL="https://huggingface.co/Akumzy/GFPGAN/resolve/main/GFPGANv1.4.pth"
    curl -C - -L -f --retry 3 --progress-bar "$URL" -o "${COMFY_DIR}/models/facerestore_models/GFPGANv1.4.pth"
  else
    echo "[OK] Found ${COMFY_DIR}/models/facerestore_models/GFPGANv1.4.pth"
  fi

echo ""
echo "===================================================================="
echo "[SUCCESS] All recipe models and workflow have been synced!"
echo "Open ComfyUI, press 'Load' and select 'freya-cherry-kimono-reactor-faceswap.json' to run."
echo "===================================================================="
