#!/usr/bin/env bash
# ==============================================================================
# Automated Asset Downloader for ComfyUI Lab Recipe
# Recipe: Civitai #144358168: Mediterranean Veranda Candid - Coastal Morning Editorial & Lo-Fi 35mm
# Origin: https://decomfy.com/civitai-mediterranean-veranda-candid-krea2
# ==============================================================================
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: civitai-mediterranean-veranda-candid-krea2"
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/diffusion_models"
mkdir -p "${COMFY_DIR}/models/text_encoders"
mkdir -p "${COMFY_DIR}/models/vae"
mkdir -p "${COMFY_DIR}/models/loras"

# Download Workflow JSON
echo "==> Fetching Workflow Canvas JSON..."
curl -sSL "https://decomfy.com/api/workflows/civitai-mediterranean-veranda-candid-krea2.json" -o "${COMFY_DIR}/user/default/workflows/civitai-mediterranean-veranda-candid-krea2.json"
echo "[OK] Saved workflow to ${COMFY_DIR}/user/default/workflows/civitai-mediterranean-veranda-candid-krea2.json"

echo "==> Downloading required models and weights..."
  # krea2_turbo_int8_convrot.safetensors (12.56 GB) -> models/diffusion_models/
  if [ ! -f "${COMFY_DIR}/models/diffusion_models/krea2_turbo_int8_convrot.safetensors" ]; then
    echo "[+] Downloading krea2_turbo_int8_convrot.safetensors (12.56 GB)..."
    URL="https://huggingface.co/Comfy-Org/Krea-2/resolve/main/diffusion_models/krea2_turbo_int8_convrot.safetensors"
    curl -C - -L -f --retry 3 --progress-bar "$URL" -o "${COMFY_DIR}/models/diffusion_models/krea2_turbo_int8_convrot.safetensors"
  else
    echo "[OK] Found ${COMFY_DIR}/models/diffusion_models/krea2_turbo_int8_convrot.safetensors"
  fi

  # qwen3vl_4b_fp8_scaled.safetensors (4.88 GB) -> models/text_encoders/
  if [ ! -f "${COMFY_DIR}/models/text_encoders/qwen3vl_4b_fp8_scaled.safetensors" ]; then
    echo "[+] Downloading qwen3vl_4b_fp8_scaled.safetensors (4.88 GB)..."
    URL="https://huggingface.co/Comfy-Org/Krea-2/resolve/main/text_encoders/qwen3vl_4b_fp8_scaled.safetensors"
    curl -C - -L -f --retry 3 --progress-bar "$URL" -o "${COMFY_DIR}/models/text_encoders/qwen3vl_4b_fp8_scaled.safetensors"
  else
    echo "[OK] Found ${COMFY_DIR}/models/text_encoders/qwen3vl_4b_fp8_scaled.safetensors"
  fi

  # qwen_image_vae.safetensors (253 MB) -> models/vae/
  if [ ! -f "${COMFY_DIR}/models/vae/qwen_image_vae.safetensors" ]; then
    echo "[+] Downloading qwen_image_vae.safetensors (253 MB)..."
    URL="https://huggingface.co/Comfy-Org/Krea-2/resolve/main/vae/qwen_image_vae.safetensors"
    curl -C - -L -f --retry 3 --progress-bar "$URL" -o "${COMFY_DIR}/models/vae/qwen_image_vae.safetensors"
  else
    echo "[OK] Found ${COMFY_DIR}/models/vae/qwen_image_vae.safetensors"
  fi

  # Krea2_TextFusion_Refusal_Reduction.safetensors (26.4 MB) -> models/loras/
  if [ ! -f "${COMFY_DIR}/models/loras/Krea2_TextFusion_Refusal_Reduction.safetensors" ]; then
    echo "[+] Downloading Krea2_TextFusion_Refusal_Reduction.safetensors (26.4 MB)..."
    URL="https://huggingface.co/hoangyellcom/decomfy-loras/resolve/main/loras/Krea2_TextFusion_Refusal_Reduction.safetensors"
    curl -C - -L -f --retry 3 --progress-bar "$URL" -o "${COMFY_DIR}/models/loras/Krea2_TextFusion_Refusal_Reduction.safetensors"
  else
    echo "[OK] Found ${COMFY_DIR}/models/loras/Krea2_TextFusion_Refusal_Reduction.safetensors"
  fi

  # ass_krea2_loraholic.safetensors (13.7 MB) -> models/loras/
  if [ ! -f "${COMFY_DIR}/models/loras/ass_krea2_loraholic.safetensors" ]; then
    echo "[+] Downloading ass_krea2_loraholic.safetensors (13.7 MB)..."
    URL="https://huggingface.co/hoangyellcom/decomfy-loras/resolve/main/loras/ass_krea2_loraholic.safetensors"
    curl -C - -L -f --retry 3 --progress-bar "$URL" -o "${COMFY_DIR}/models/loras/ass_krea2_loraholic.safetensors"
  else
    echo "[OK] Found ${COMFY_DIR}/models/loras/ass_krea2_loraholic.safetensors"
  fi

  # wetness_krea2_loraholic.safetensors (6.9 MB) -> models/loras/
  if [ ! -f "${COMFY_DIR}/models/loras/wetness_krea2_loraholic.safetensors" ]; then
    echo "[+] Downloading wetness_krea2_loraholic.safetensors (6.9 MB)..."
    URL="https://huggingface.co/hoangyellcom/decomfy-loras/resolve/main/loras/wetness_krea2_loraholic.safetensors"
    curl -C - -L -f --retry 3 --progress-bar "$URL" -o "${COMFY_DIR}/models/loras/wetness_krea2_loraholic.safetensors"
  else
    echo "[OK] Found ${COMFY_DIR}/models/loras/wetness_krea2_loraholic.safetensors"
  fi

  # areola_size_krea2_loraholic.safetensors (13.7 MB) -> models/loras/
  if [ ! -f "${COMFY_DIR}/models/loras/areola_size_krea2_loraholic.safetensors" ]; then
    echo "[+] Downloading areola_size_krea2_loraholic.safetensors (13.7 MB)..."
    URL="https://huggingface.co/hoangyellcom/decomfy-loras/resolve/main/loras/areola_size_krea2_loraholic.safetensors"
    curl -C - -L -f --retry 3 --progress-bar "$URL" -o "${COMFY_DIR}/models/loras/areola_size_krea2_loraholic.safetensors"
  else
    echo "[OK] Found ${COMFY_DIR}/models/loras/areola_size_krea2_loraholic.safetensors"
  fi

  # PAWGK2.2.safetensors (218 MB) -> models/loras/
  if [ ! -f "${COMFY_DIR}/models/loras/PAWGK2.2.safetensors" ]; then
    echo "[+] Downloading PAWGK2.2.safetensors (218 MB)..."
    URL="https://huggingface.co/hoangyellcom/decomfy-loras/resolve/main/loras/PAWGK2.2.safetensors"
    curl -C - -L -f --retry 3 --progress-bar "$URL" -o "${COMFY_DIR}/models/loras/PAWGK2.2.safetensors"
  else
    echo "[OK] Found ${COMFY_DIR}/models/loras/PAWGK2.2.safetensors"
  fi

  # PornMaster_Flat_chest_&_Innie_pussy_krea2_V1.safetensors (218 MB) -> models/loras/
  if [ ! -f "${COMFY_DIR}/models/loras/PornMaster_Flat_chest_&_Innie_pussy_krea2_V1.safetensors" ]; then
    echo "[+] Downloading PornMaster_Flat_chest_&_Innie_pussy_krea2_V1.safetensors (218 MB)..."
    URL="https://huggingface.co/hoangyellcom/decomfy-loras/resolve/main/loras/PornMaster_Flat_chest_&_Innie_pussy_krea2_V1.safetensors"
    curl -C - -L -f --retry 3 --progress-bar "$URL" -o "${COMFY_DIR}/models/loras/PornMaster_Flat_chest_&_Innie_pussy_krea2_V1.safetensors"
  else
    echo "[OK] Found ${COMFY_DIR}/models/loras/PornMaster_Flat_chest_&_Innie_pussy_krea2_V1.safetensors"
  fi

  # RealisticSnapshotKrea2V2.safetensors (1.49 GB) -> models/loras/
  if [ ! -f "${COMFY_DIR}/models/loras/RealisticSnapshotKrea2V2.safetensors" ]; then
    echo "[+] Downloading RealisticSnapshotKrea2V2.safetensors (1.49 GB)..."
    URL="https://huggingface.co/hoangyellcom/decomfy-loras/resolve/main/loras/RealisticSnapshotKrea2V2.safetensors"
    curl -C - -L -f --retry 3 --progress-bar "$URL" -o "${COMFY_DIR}/models/loras/RealisticSnapshotKrea2V2.safetensors"
  else
    echo "[OK] Found ${COMFY_DIR}/models/loras/RealisticSnapshotKrea2V2.safetensors"
  fi

echo ""
echo "===================================================================="
echo "[SUCCESS] All recipe models and workflow have been synced!"
echo "Open ComfyUI, press 'Load' and select 'civitai-mediterranean-veranda-candid-krea2.json' to run."
echo "===================================================================="
