@echo off
chcp 65001 >nul
title LTX-Desktop-WanGP - Video AI Studio
color 0B

REM ============================================================
REM  LTX-Desktop-WanGP Baslatma Scripti
REM  Electron frontend + WanGP backend birlikte calisir
REM ============================================================

set "KOK=D:\__sistem__\Masaustu\FikoYT.Yeni.Cag\video-uretim"
set "LTX=%KOK%\ltx-desktop-wangp"
set "REPO=%LTX%\LTX-Desktop-WanGP"

REM Tum cache ve modeller ltx-desktop-wangp klasoru icinde kalsin
set "HF_HOME=%LTX%\hf-cache"
set "HUGGINGFACE_HUB_CACHE=%LTX%\hf-cache"
set "TRANSFORMERS_CACHE=%LTX%\hf-cache"
set "TORCH_HOME=%LTX%\torch-cache"
set "XDG_CACHE_HOME=%LTX%\xdg-cache"

echo =========================================================
echo    LTX-Desktop-WanGP Baslatiliyor...
echo    Video uretim arayuzu yuklenecek
echo =========================================================
echo.
echo Klasor : %REPO%
echo Cache  : %HF_HOME%
echo.

REM --- Repo kontrolu ---
if not exist "%REPO%" (
    color 0C
    echo [HATA] LTX-Desktop-WanGP kaynak kodu bulunamadi!
    echo   Beklenen: %REPO%
    echo.
    echo Once "LTX-Desktop-WanGP-Kur.bat" dosyasini calistirin.
    pause
    exit /b 1
)

REM --- package.json kontrolu ---
if not exist "%REPO%\package.json" (
    color 0C
    echo [HATA] package.json bulunamadi!
    echo   Kurulum eksik olabilir.
    echo   Once "LTX-Desktop-WanGP-Kur.bat" dosyasini calistirin.
    pause
    exit /b 1
)

REM --- pnpm kontrolu ---
where pnpm >nul 2>&1
if errorlevel 1 (
    color 0C
    echo [HATA] pnpm bulunamadi!
    echo   Lutfen once "LTX-Desktop-WanGP-Kur.bat" dosyasini calistirin
    echo   veya "npm install -g pnpm" komutu ile pnpm kurun.
    pause
    exit /b 1
)

cd /d "%REPO%"

REM ============================================================
REM  MMGP PROFIL SECIMI - CPU RAM Offload Ayari
REM ============================================================
echo.
echo  ------------------------------------------------------------
echo   MMGP BELLEK PROFILI - Modeli RAM'e tasima ayari
echo  ------------------------------------------------------------
echo.
echo   1) Profil 1 - HighRAM+HighVRAM (64GB RAM + 24GB VRAM)
echo      En hizli, kisa videolar icin ideal (VRAM tasabilir)
echo.
echo   2) Profil 2 - HighRAM+LowVRAM (64GB RAM + 12GB VRAM)
echo      RAM'e offload, uzun video ve buyuk batch icin
echo.
echo   3) Profil 3 - LowRAM+HighVRAM (32GB RAM + 24GB VRAM)
echo      VRAM agirlikli, iyi hiz
echo.
echo   4) Profil 4 - LowRAM+LowVRAM (32GB RAM + 12GB VRAM)
echo      Dusuk bellek, onerilen genel profil  [VARSAYILAN]
echo.
echo   5) Profil 5 - VeryLow (24GB RAM + 10GB VRAM)
echo      En az bellek, yavas ama calisir
echo.
echo   Enter = Varsayilan kullan (Profil 4 - guvenli)
echo  ------------------------------------------------------------
echo.
set /p MMGP_PROFIL="  Profil secin [1-5, Enter=4]: "
if "%MMGP_PROFIL%"=="" set MMGP_PROFIL=4

set PROFILE_ARG=
if "%MMGP_PROFIL%"=="1" set PROFILE_ARG=--profile 1
if "%MMGP_PROFIL%"=="2" set PROFILE_ARG=--profile 2
if "%MMGP_PROFIL%"=="3" set PROFILE_ARG=--profile 3
if "%MMGP_PROFIL%"=="4" set PROFILE_ARG=--profile 4
if "%MMGP_PROFIL%"=="5" set PROFILE_ARG=--profile 5

set "WGP_CONFIG=%REPO%\Wan2GP\wgp_config.json"
set "LTX_SETTINGS=%REPO%\settings.json"

REM ============================================================
REM  ATTENTION MODU SECIMI - sage / sage2 / sdpa
REM ============================================================
echo.
echo  ------------------------------------------------------------
echo   ATTENTION MODU - GPU hesaplama kernel'i
echo  ------------------------------------------------------------
echo.
echo   1) sage   - SageAttention v1 [GUVENLI VARSAYILAN]
echo      RTX 4090 icin hizli, VS BuildTools gerektirmez
echo.
echo   2) sage2  - SageAttention v2 (en hizli)
echo      GEREKSINIM: VS 2022 BuildTools + install_sageattention.bat
echo.
echo   3) sdpa   - PyTorch yerlesik (her zaman calisir, en yavas)
echo.
echo   Enter = sage (varsayilan)
echo  ------------------------------------------------------------
echo.
set /p ATTN_SEC="  Attention modu secin [1-3, Enter=1]: "
if "%ATTN_SEC%"=="" set ATTN_SEC=1
if "%ATTN_SEC%"=="1" set "ATTN_MODE=sage"
if "%ATTN_SEC%"=="2" set "ATTN_MODE=sage2"
if "%ATTN_SEC%"=="3" set "ATTN_MODE=sdpa"
if "%ATTN_MODE%"=="" set "ATTN_MODE=sage"
echo   [*] Attention modu: %ATTN_MODE%
echo.

REM ============================================================
REM  CONFIG DOSYALARINI GUNCELLE
REM  wgp_config.json: profil + attention + compile
REM  settings.json  : use_torch_compile
REM ============================================================
echo   [*] Config dosyalari guncelleniyor (profil=%MMGP_PROFIL%, attention=%ATTN_MODE%)...
python -c "import json; p=r'%WGP_CONFIG%'; c=json.load(open(p,'r',encoding='utf-8')); c['attention_mode']='%ATTN_MODE%'; c['compile']=''; c['video_profile']=%MMGP_PROFIL%; c['image_profile']=%MMGP_PROFIL%; c['audio_profile']=%MMGP_PROFIL%; json.dump(c,open(p,'w',encoding='utf-8'),indent=4); print('  [OK] wgp_config.json: profil',c['video_profile'],'/ attention',c['attention_mode'],'/ compile kapali')"
if errorlevel 1 (
    echo   [UYARI] wgp_config.json guncellenemedi, devam ediliyor...
)

if exist "%LTX_SETTINGS%" (
    python -c "import json; p=r'%LTX_SETTINGS%'; c=json.load(open(p,'r',encoding='utf-8')); c['use_torch_compile']=False; json.dump(c,open(p,'w',encoding='utf-8'),indent=2); print('  [OK] settings.json: use_torch_compile=False')"
)
echo.

echo [+] pnpm dev baslatiliyor...
echo     Kapamak icin bu pencereyi kapatin veya Ctrl+C basin.
echo.

call pnpm dev

pause
