@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion
title Model Indirme - Ticari + NSFW + Video Paketi

echo.
echo ================================================================
echo           MODEL iNDiRME SCRiPTi (yaklasik 200 GB)
echo ================================================================
echo.
echo NOT: Bu scripts 'aria2c' kullanir (hizli cok parcali indirme).
echo      Yoksa 'curl' yedekleme olarak kullanir.
echo.
echo iNDiRiLECEK MODELLER:
echo  [CHECKPOINTS]
echo   - Juggernaut XL v9 (fotogerceci SDXL) - 7GB
echo   - Pony Diffusion V6 XL (anime/NSFW) - 7GB
echo   - Illustrious XL (modern anime) - 7GB
echo   - RealVisXL V4 (fotogerceci) - 7GB
echo   - Flux.1 Schnell FP8 (ticari) - 12GB
echo  [VIDEO]
echo   - HunyuanVideo FP8 - 13GB
echo   - LTX-Video 0.9 - 9GB
echo   - Wan 2.1 I2V 14B - 28GB
echo  [VAE/CLIP]
echo   - SDXL VAE, Flux VAE, T5-XXL, CLIP-L
echo  [UPSCALERS]
echo   - 4x-UltraSharp, 4x-RealESRGAN, 4x-NMKD-Siax
echo  [CONTROLNET]
echo   - OpenPose, Depth, Canny, Tile (SDXL)
echo  [FACE/DETAIL]
echo   - face_yolov8m, hand_yolov8s, person_yolov8m
echo   - GFPGAN, CodeFormer, inswapper_128
echo.
echo Toplam: yaklasik 200 GB. Devam edilsin mi?
pause

set "COMFY_DIR=D:\__sistem__\ProgramFiles\ComfyUi\ComfyUI"
if not exist "%COMFY_DIR%\models" (
    echo [HATA] ComfyUI bulunamadi. Once 1_ANA_KURULUM.bat calistirin.
    pause
    exit /b 1
)

:: aria2c var mi?
where aria2c >nul 2>&1
if %errorLevel%==0 (
    set "DL=aria2c -x 16 -s 16 --continue=true --dir"
    set "USE_ARIA=1"
) else (
    echo [NOT] aria2c yok, curl kullanilacak. Daha hizli icin: https://aria2.github.io/
    set "DL=curl -L -o"
    set "USE_ARIA=0"
)

:: ========================================================
:: CHECKPOINTS
:: ========================================================
echo.
echo === [1/6] CHECKPOINT modelleri ===
cd /d "%COMFY_DIR%\models\checkpoints"

echo -^> Juggernaut XL v9 (fotogerceci, ticari-serbest SDXL turevli)
if "%USE_ARIA%"=="1" (
    aria2c -x 16 -s 16 --continue=true --dir="." --out="juggernautXL_v9.safetensors" "https://huggingface.co/RunDiffusion/Juggernaut-XL-v9/resolve/main/Juggernaut-XL_v9_RunDiffusionPhoto_v2.safetensors"
) else (
    curl -L -o "juggernautXL_v9.safetensors" "https://huggingface.co/RunDiffusion/Juggernaut-XL-v9/resolve/main/Juggernaut-XL_v9_RunDiffusionPhoto_v2.safetensors"
)

echo -^> Pony Diffusion V6 XL (anime/NSFW - ticari serbest)
if "%USE_ARIA%"=="1" (
    aria2c -x 16 -s 16 --continue=true --dir="." --out="ponyDiffusionV6XL.safetensors" "https://huggingface.co/AstraliteHeart/pony-diffusion-v6/resolve/main/v6.safetensors"
) else (
    curl -L -o "ponyDiffusionV6XL.safetensors" "https://huggingface.co/AstraliteHeart/pony-diffusion-v6/resolve/main/v6.safetensors"
)

echo -^> Illustrious XL v0.1 (modern anime)
if "%USE_ARIA%"=="1" (
    aria2c -x 16 -s 16 --continue=true --dir="." --out="illustriousXL_v01.safetensors" "https://huggingface.co/OnomaAIResearch/Illustrious-xl-early-release-v0/resolve/main/Illustrious-XL-v0.1.safetensors"
) else (
    curl -L -o "illustriousXL_v01.safetensors" "https://huggingface.co/OnomaAIResearch/Illustrious-xl-early-release-v0/resolve/main/Illustrious-XL-v0.1.safetensors"
)

echo -^> RealVisXL V4 (fotogerceci portre)
if "%USE_ARIA%"=="1" (
    aria2c -x 16 -s 16 --continue=true --dir="." --out="realvisxlV40.safetensors" "https://huggingface.co/SG161222/RealVisXL_V4.0/resolve/main/RealVisXL_V4.0.safetensors"
) else (
    curl -L -o "realvisxlV40.safetensors" "https://huggingface.co/SG161222/RealVisXL_V4.0/resolve/main/RealVisXL_V4.0.safetensors"
)

echo -^> Flux.1 Schnell FP8 (ticari serbest Apache 2.0)
if "%USE_ARIA%"=="1" (
    aria2c -x 16 -s 16 --continue=true --dir="." --out="flux1-schnell-fp8.safetensors" "https://huggingface.co/Comfy-Org/flux1-schnell/resolve/main/flux1-schnell-fp8.safetensors"
) else (
    curl -L -o "flux1-schnell-fp8.safetensors" "https://huggingface.co/Comfy-Org/flux1-schnell/resolve/main/flux1-schnell-fp8.safetensors"
)

:: ========================================================
:: VAE
:: ========================================================
echo.
echo === [2/6] VAE modelleri ===
cd /d "%COMFY_DIR%\models\vae"

echo -^> SDXL VAE
if "%USE_ARIA%"=="1" (
    aria2c -x 16 -s 16 --continue=true --dir="." --out="sdxl_vae.safetensors" "https://huggingface.co/stabilityai/sdxl-vae/resolve/main/sdxl_vae.safetensors"
) else (
    curl -L -o "sdxl_vae.safetensors" "https://huggingface.co/stabilityai/sdxl-vae/resolve/main/sdxl_vae.safetensors"
)

echo -^> Flux VAE
if "%USE_ARIA%"=="1" (
    aria2c -x 16 -s 16 --continue=true --dir="." --out="flux_ae.safetensors" "https://huggingface.co/Comfy-Org/Lumina_Image_2.0_Repackaged/resolve/main/split_files/vae/ae.safetensors"
) else (
    curl -L -o "flux_ae.safetensors" "https://huggingface.co/Comfy-Org/Lumina_Image_2.0_Repackaged/resolve/main/split_files/vae/ae.safetensors"
)

:: ========================================================
:: TEXT ENCODERS (Flux icin)
:: ========================================================
echo.
echo === [3/6] CLIP/T5 text encoders (Flux icin) ===
cd /d "%COMFY_DIR%\models\clip"

echo -^> T5-XXL FP8
if "%USE_ARIA%"=="1" (
    aria2c -x 16 -s 16 --continue=true --dir="." --out="t5xxl_fp8_e4m3fn.safetensors" "https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/t5xxl_fp8_e4m3fn.safetensors"
) else (
    curl -L -o "t5xxl_fp8_e4m3fn.safetensors" "https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/t5xxl_fp8_e4m3fn.safetensors"
)

echo -^> CLIP-L
if "%USE_ARIA%"=="1" (
    aria2c -x 16 -s 16 --continue=true --dir="." --out="clip_l.safetensors" "https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/clip_l.safetensors"
) else (
    curl -L -o "clip_l.safetensors" "https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/clip_l.safetensors"
)

:: ========================================================
:: VIDEO MODELLERI
:: ========================================================
echo.
echo === [4/6] Video modelleri ===
cd /d "%COMFY_DIR%\models\diffusion_models"

echo -^> HunyuanVideo FP8 (T2V)
if "%USE_ARIA%"=="1" (
    aria2c -x 16 -s 16 --continue=true --dir="." --out="hunyuan_video_t2v_720p_bf16.safetensors" "https://huggingface.co/Kijai/HunyuanVideo_comfy/resolve/main/hunyuan_video_720_cfgdistill_fp8_e4m3fn.safetensors"
) else (
    curl -L -o "hunyuan_video_t2v_720p_bf16.safetensors" "https://huggingface.co/Kijai/HunyuanVideo_comfy/resolve/main/hunyuan_video_720_cfgdistill_fp8_e4m3fn.safetensors"
)

echo -^> LTX-Video 0.9.1
if "%USE_ARIA%"=="1" (
    aria2c -x 16 -s 16 --continue=true --dir="." --out="ltx-video-2b-v0.9.1.safetensors" "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltx-video-2b-v0.9.1.safetensors"
) else (
    curl -L -o "ltx-video-2b-v0.9.1.safetensors" "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltx-video-2b-v0.9.1.safetensors"
)

echo -^> Wan 2.1 I2V 14B 480p FP8
if "%USE_ARIA%"=="1" (
    aria2c -x 16 -s 16 --continue=true --dir="." --out="wan2.1_i2v_480p_14B_fp8.safetensors" "https://huggingface.co/Kijai/WanVideo_comfy/resolve/main/Wan2_1-I2V-14B-480P_fp8_e4m3fn.safetensors"
) else (
    curl -L -o "wan2.1_i2v_480p_14B_fp8.safetensors" "https://huggingface.co/Kijai/WanVideo_comfy/resolve/main/Wan2_1-I2V-14B-480P_fp8_e4m3fn.safetensors"
)

:: ========================================================
:: UPSCALERS
:: ========================================================
echo.
echo === [5/6] Upscale modelleri ===
cd /d "%COMFY_DIR%\models\upscale_models"

echo -^> 4x-UltraSharp
curl -L -o "4x-UltraSharp.pth" "https://huggingface.co/Kim2091/UltraSharp/resolve/main/4x-UltraSharp.pth"

echo -^> 4x RealESRGAN
curl -L -o "RealESRGAN_x4plus.pth" "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth"

echo -^> 4x NMKD-Siax
curl -L -o "4x_NMKD-Siax_200k.pth" "https://huggingface.co/gemasai/4x_NMKD-Siax_200k/resolve/main/4x_NMKD-Siax_200k.pth"

:: ========================================================
:: CONTROLNET + YUZ/DETAY + IP-ADAPTER
:: ========================================================
echo.
echo === [6/6] ControlNet + Face/Detail modelleri ===

:: ControlNet Union SDXL (tum fonksiyonlar tek modelde)
cd /d "%COMFY_DIR%\models\controlnet"
echo -^> ControlNet Union SDXL Promax
if "%USE_ARIA%"=="1" (
    aria2c -x 16 -s 16 --continue=true --dir="." --out="controlnet_union_sdxl_promax.safetensors" "https://huggingface.co/xinsir/controlnet-union-sdxl-1.0/resolve/main/diffusion_pytorch_model_promax.safetensors"
) else (
    curl -L -o "controlnet_union_sdxl_promax.safetensors" "https://huggingface.co/xinsir/controlnet-union-sdxl-1.0/resolve/main/diffusion_pytorch_model_promax.safetensors"
)

:: IP-Adapter modelleri
cd /d "%COMFY_DIR%\models\ipadapter"
echo -^> IP-Adapter Plus SDXL
curl -L -o "ip-adapter-plus_sdxl_vit-h.safetensors" "https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/ip-adapter-plus_sdxl_vit-h.safetensors"
echo -^> IP-Adapter FaceID SDXL
curl -L -o "ip-adapter-faceid_sdxl.bin" "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid_sdxl.bin"

:: CLIP Vision
cd /d "%COMFY_DIR%\models\clip_vision"
curl -L -o "CLIP-ViT-H-14.safetensors" "https://huggingface.co/h94/IP-Adapter/resolve/main/models/image_encoder/model.safetensors"

:: Yolo detection modelleri (Impact Pack / Face Detailer icin)
cd /d "%COMFY_DIR%\models\ultralytics\bbox"
curl -L -o "face_yolov8m.pt" "https://huggingface.co/Bingsu/adetailer/resolve/main/face_yolov8m.pt"
curl -L -o "hand_yolov8s.pt" "https://huggingface.co/Bingsu/adetailer/resolve/main/hand_yolov8s.pt"

cd /d "%COMFY_DIR%\models\ultralytics\segm"
curl -L -o "person_yolov8m-seg.pt" "https://huggingface.co/Bingsu/adetailer/resolve/main/person_yolov8m-seg.pt"

:: Face restore
cd /d "%COMFY_DIR%\models\facerestore_models"
curl -L -o "GFPGANv1.4.pth" "https://github.com/TencentARC/GFPGAN/releases/download/v1.3.4/GFPGANv1.4.pth"
curl -L -o "codeformer-v0.1.0.pth" "https://github.com/sczhou/CodeFormer/releases/download/v0.1.0/codeformer.pth"

:: ReActor / InsightFace icin inswapper
cd /d "%COMFY_DIR%\models\insightface"
curl -L -o "inswapper_128.onnx" "https://huggingface.co/ezioruan/inswapper_128.onnx/resolve/main/inswapper_128.onnx"

:: SAM (segmentation)
cd /d "%COMFY_DIR%\models\sams"
curl -L -o "sam_vit_b_01ec64.pth" "https://dl.fbaipublicfiles.com/segment_anything/sam_vit_b_01ec64.pth"

echo.
echo ================================================================
echo [TAMAMLANDI] Tum modeller indirildi!
echo ================================================================
echo.
echo NOT: Ek modeller icin (ozellestirilmis NSFW/karakter LoRA'lari vs.)
echo      Civitai.com adresinden indirip su klasorlere atin:
echo      - Checkpoint:  %COMFY_DIR%\models\checkpoints
echo      - LoRA:        %COMFY_DIR%\models\loras
echo      - Embedding:   %COMFY_DIR%\models\embeddings
echo.
pause
endlocal
