# ============================================================================
# CivitAI Model Configuration
# ============================================================================
#
# This configuration file defines all available CivitAI models for download.
# Models are organized by category: NSFW checkpoints, LoRAs, embeddings, etc.
#
# Each model entry contains:
#   - name: Filesystem-friendly model name
#   - version_id: CivitAI version ID (used for downloads)
#   - model_id: CivitAI model ID (used for metadata queries)
#   - description: Human-readable description
#   - size_gb: Approximate size in gigabytes
#   - essential: Whether this is an essential model (true/false)
#   - type: Model type (checkpoints, loras, embeddings, etc.)
#   - tags: Array of descriptive tags
#
# ============================================================================

# Global settings
settings:
  cache_dir: /workspace/models/civitai
  output_dir: /workspace/ComfyUI/models
  parallel_downloads: 1
  retry_attempts: 3
  timeout_seconds: 3600
  rate_limit_delay: 5  # seconds between downloads

# Model categories
model_categories:
  # ==========================================================================
  # NSFW IMAGE GENERATION MODELS
  # ==========================================================================
  nsfw_checkpoints:
    - name: lustify-v7-ggwp
      version_id: "1094291"
      model_id: "573152"
      description: "LUSTIFY v7.0 GGWP - Photoreal NSFW checkpoint for women in sexual scenarios"
      size_gb: 6.31
      essential: true
      type: checkpoints
      format: safetensors
      base_model: SDXL 1.0
      vram_gb: 12
      tags: [nsfw, realistic, photography, women]
      recommended_settings:
        sampler: "DPM++ 2M SDE / DPM++ 3M SDE"
        scheduler: "Exponential / Karras"
        steps: 30
        cfg_scale: "4-7"
      notes: "Understands both danbooru tags and natural language prompting"

    - name: pony-diffusion-v6-xl
      version_id: "135867"
      model_id: "257749"
      description: "Pony Diffusion V6 XL - Versatile anime/cartoon/furry model with balanced content"
      size_gb: 6.5
      essential: true
      type: checkpoints
      format: safetensors
      base_model: SDXL 1.0
      vram_gb: 12
      tags: [nsfw, anime, furry, cartoon, versatile]
      files:
        - source: "ponyDiffusionV6XL_v6StartWithThisOne.safetensors"
          dest: "ponyDiffusionV6XL_v6StartWithThisOne.safetensors"
      training_info:
        images: "2.6M aesthetically ranked"
        ratio: "1:1:1 safe/questionable/explicit"
      notes: "Most popular anime/furry model on CivitAI, supports wide range of styles"

    - name: realvisxl-v5
      version_id: "798204"
      model_id: "139562"
      description: "RealVisXL V5.0 Lightning - Photorealistic model for high-quality realistic images"
      size_gb: 6.8
      essential: true
      type: checkpoints
      format: safetensors
      base_model: SDXL 1.0
      vram_gb: 12
      tags: [nsfw, realistic, photorealistic, professional]
      recommended_settings:
        sampler: "DPM++ SDE Karras (4-6 steps for Lightning)"
      notes: "Excellent for photorealistic portraits and scenes, both SFW and NSFW. Lightning version for faster generation."

    - name: wai-nsfw-illustrious-sdxl
      version_id: "2167369"
      model_id: "827184"
      description: "WAI-NSFW-illustrious-SDXL v15.0 - Actively updated NSFW Illustrious variant"
      size_gb: 6.5
      essential: false
      type: checkpoints
      format: safetensors
      base_model: SDXL 1.0
      vram_gb: 12
      tags: [nsfw, anime, illustrious, artistic]
      notes: "Latest version from November 2025, frequently updated"

    - name: talmendoxl
      version_id: "131869"
      model_id: "119202"
      description: "TalmendoXL - Uncensored SDXL model biased towards photorealism"
      size_gb: 6.6
      essential: false
      type: checkpoints
      format: safetensors
      base_model: SDXL 1.0
      vram_gb: 12
      tags: [nsfw, realistic, uncensored, photorealistic]
      notes: "Known for high-quality photorealistic NSFW content"

    - name: big-lust-v1-6
      version_id: "1081768"
      model_id: "575395"
      description: "Big Lust v1.6 - SDXL NSFW checkpoint"
      size_gb: 6.5
      essential: false
      type: checkpoints
      format: safetensors
      base_model: SDXL 1.0
      vram_gb: 12
      tags: [nsfw, versatile]
      notes: "General-purpose NSFW model with good results across styles"

  # ==========================================================================
  # NEGATIVE EMBEDDINGS - SD 1.5 (Textual Inversions)
  # ==========================================================================
  embeddings_sd15:
    - name: baddream
      version_id: "77169"
      model_id: "72437"
      description: "BadDream v1.0 - Negative embedding for dreamshaper style artifacts"
      size_gb: 0.0002
      essential: true
      type: embeddings
      format: pt
      base_model: SD 1.5
      tags: [negative, quality, sd15]
      trigger_word: "BadDream"
      usage: "embedding:BadDream"
      notes: "Use in negative prompt. Best combined with UnrealisticDream for optimal results."

    - name: unrealisticdream
      version_id: "77173"
      model_id: "72437"
      description: "UnrealisticDream v1.0 - Improves realistic images, pairs with BadDream"
      size_gb: 0.0001
      essential: true
      type: embeddings
      format: pt
      base_model: SD 1.5
      tags: [negative, realistic, sd15]
      trigger_word: "UnrealisticDream"
      usage: "embedding:UnrealisticDream"
      notes: "Use together with BadDream for best results on realistic images."

    - name: badhandv4
      version_id: "20068"
      model_id: "16993"
      description: "badhandv4 - Improves hand details with minimal style impact"
      size_gb: 0.00002
      essential: true
      type: embeddings
      format: pt
      base_model: SD 1.5
      tags: [negative, hands, anatomy, sd15]
      trigger_word: "badhandv4"
      usage: "embedding:badhandv4"
      recommended_settings:
        cfg_scale: "≥11"
      notes: "Designed for AnimeIllustDiffusion but works with other SD 1.5 models. Better results at higher CFG."

    - name: easynegative
      version_id: "9208"
      model_id: "7808"
      description: "EasyNegative - General-purpose negative embedding"
      size_gb: 0.00002
      essential: false
      type: embeddings
      format: safetensors
      base_model: SD 1.5
      tags: [negative, quality, sd15]
      trigger_word: "easynegative"
      usage: "embedding:easynegative"
      notes: "Optimized for Counterfeit model. Effectiveness varies by model."

    - name: fastnegativev2
      version_id: "94057"
      model_id: "71961"
      description: "FastNegativeV2 - Token mix of common negative prompts"
      size_gb: 0.0002
      essential: true
      type: embeddings
      format: pt
      base_model: SD 1.5
      tags: [negative, quality, sd15]
      trigger_word: "FastNegativeV2"
      usage: "embedding:FastNegativeV2"
      notes: "V2 is balanced and doesn't require weight reduction. Use at strength 1.0."

    - name: badneganatomy
      version_id: "64063"
      model_id: "59614"
      description: "BadNegAnatomyV1-neg - Improves aesthetics and character anatomy"
      size_gb: 0.0002
      essential: true
      type: embeddings
      format: pt
      base_model: SD 1.5
      tags: [negative, anatomy, quality, sd15]
      trigger_word: "BadNegAnatomyV1-neg"
      usage: "embedding:BadNegAnatomyV1-neg"
      notes: "Particularly improves body joints and overall anatomy."

  # ==========================================================================
  # NEGATIVE EMBEDDINGS - SDXL (Textual Inversions)
  # ==========================================================================
  embeddings_sdxl:
    - name: badx-sdxl
      version_id: "981304"
      model_id: "122403"
      description: "Bad X v1.1 - SDXL negative embedding for anatomy and realism"
      size_gb: 0.000004
      essential: true
      type: embeddings
      format: pt
      base_model: SDXL 1.0
      tags: [negative, quality, anatomy, sdxl]
      trigger_word: "BadX"
      usage: "embedding:BadX"
      files:
        - source: "BadX-neg.pt"
          dest: "BadX-neg.pt"
      notes: "Use in negative prompt with LUSTIFY, RealVisXL, or other SDXL checkpoints. Fixes facial/hand artifacts."

  # ==========================================================================
  # NEGATIVE EMBEDDINGS - Pony SDXL (Textual Inversions)
  # ==========================================================================
  embeddings_pony:
    - name: pony-pdxl-hq-v3
      version_id: "720175"
      model_id: "332646"
      description: "Pony PDXL High Quality V3 (zPDXL3) - Quality enhancer for Pony models"
      size_gb: 0.0003
      essential: true
      type: embeddings
      format: safetensors
      base_model: Pony SDXL
      tags: [negative, quality, pony, nsfw]
      trigger_word: "zPDXL3"
      usage: "embedding:zPDXL3"
      files:
        - source: "zPDXL3.safetensors"
          dest: "zPDXL3.safetensors"
      recommended_settings:
        strength: "1.0-2.0"
      notes: "ONLY works with Pony Diffusion models. Removes censoring and improves quality."

    - name: pony-pdxl-xxx
      version_id: "380277"
      model_id: "332646"
      description: "Pony PDXL XXX Rating (zPDXLxxx) - Enables NSFW content"
      size_gb: 0.00003
      essential: true
      type: embeddings
      format: pt
      base_model: Pony SDXL
      tags: [negative, nsfw, pony]
      trigger_word: "zPDXLxxx"
      usage: "embedding:zPDXLxxx"
      files:
        - source: "zPDXLxxx.pt"
          dest: "zPDXLxxx.pt"
      recommended_settings:
        strength: "1.0-2.0"
      notes: "ONLY for Pony Diffusion models. Enables explicit NSFW content generation."

  # ==========================================================================
  # LORA MODELS (Style Enhancement & Detail)
  # ==========================================================================
  loras:
    - name: add-detail-xl
      version_id: "135867"
      model_id: "122359"
      description: "Add Detail XL - Detail enhancement LoRA for SDXL"
      size_gb: 0.21
      essential: true
      type: loras
      format: safetensors
      base_model: SDXL 1.0
      tags: [enhancement, detail, quality]
      recommended_settings:
        strength_model: "0.5-1.0"
        strength_clip: "0.5-1.0"
      notes: "Popular detail enhancer LoRA, works with all SDXL checkpoints"

    - name: siesta-v1-1
      version_id: "unknown"
      model_id: "unknown"
      description: "Siesta v1.1 - Style LoRA"
      size_gb: 0.04
      essential: false
      type: loras
      format: safetensors
      base_model: SDXL 1.0
      tags: [style, artistic]
      notes: "Manually downloaded LoRA, version_id needs to be updated"

# ============================================================================
# STORAGE & VRAM SUMMARIES
# ============================================================================

storage_requirements:
  essential_only:
    nsfw_checkpoints: 19.61  # LUSTIFY + Pony + RealVisXL
    total: 19.61

  all_models:
    nsfw_checkpoints: 39.21  # All 6 checkpoints
    total: 39.21

vram_requirements:
  # For 24GB GPU (RTX 4090)
  notes: |
    All SDXL checkpoints require approximately 12GB VRAM.
    Can run one checkpoint at a time on 24GB GPU.
    For simultaneous loading with other models (ComfyUI, vLLM),
    ensure combined VRAM usage stays under 24GB.

# ============================================================================
# INSTALLATION PROFILES
# ============================================================================

installation_profiles:
  essential:
    description: Essential NSFW models only (3 checkpoints)
    categories: [nsfw_checkpoints]
    essential_only: true
    storage_gb: 19.61
    estimated_time: "30-60 minutes"
    models:
      - lustify-v7-ggwp
      - pony-diffusion-v6-xl
      - realvisxl-v5

  complete:
    description: All NSFW models (6 checkpoints)
    categories: [nsfw_checkpoints]
    storage_gb: 39.21
    estimated_time: "1-2 hours"
    models:
      - lustify-v7-ggwp
      - pony-diffusion-v6-xl
      - realvisxl-v5
      - wai-nsfw-illustrious-sdxl
      - talmendoxl
      - big-lust-v1-6

  realistic_only:
    description: Photorealistic NSFW models only
    categories: [nsfw_checkpoints]
    storage_gb: 13.11
    estimated_time: "20-40 minutes"
    models:
      - lustify-v7-ggwp
      - realvisxl-v5

  anime_only:
    description: Anime/cartoon NSFW models only
    categories: [nsfw_checkpoints]
    storage_gb: 13.0
    estimated_time: "20-40 minutes"
    models:
      - pony-diffusion-v6-xl
      - wai-nsfw-illustrious-sdxl

# ============================================================================
# METADATA
# ============================================================================

metadata:
  version: 1.0.0
  last_updated: 2025-11-23
  compatible_with:
    - ComfyUI >= 0.1.0
    - SDXL base models
  maintainer: Valknar
  repository: https://github.com/valknar/runpod
  notes: |
    All models listed are NSFW (adult content) and hosted on CivitAI.
    Requires CIVITAI_API_KEY for downloads.
    Models will be downloaded to cache_dir and symlinked to ComfyUI.
