@echo off
title WanGP Muzik Video Uretici
setlocal enabledelayedexpansion

REM ── CUDA OOM FIX: Bellek parcalanmasini onle ──
set PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True

set PYTHON="D:\__sistem__\Masaustu\FikoYT.Yeni.Cag\video-uretim\LTX-Desktop-WanGP\backend\.venv\Scripts\python.exe"
set SCRIPT="D:\__sistem__\Masaustu\FikoYT.Yeni.Cag\video-uretim\wangp_video_uret.py"

set IMAGE=
set AUDIO=
set FACEIMG=

echo.
echo  ============================================================
echo    WANGP MUZIK VIDEO URETICI
echo    RTX 4090 Optimize - Hizli ve Kaliteli
echo  ============================================================
echo.

REM --- Surukle-birak ile gelen dosyalari ayikla ---
for %%A in (%*) do (
    set "FILE=%%~A"
    set "EXT=%%~xA"

    if /i "!EXT!"==".png" set "IMAGE=%%~A"
    if /i "!EXT!"==".jpg" set "IMAGE=%%~A"
    if /i "!EXT!"==".jpeg" set "IMAGE=%%~A"
    if /i "!EXT!"==".webp" set "IMAGE=%%~A"
    if /i "!EXT!"==".bmp" set "IMAGE=%%~A"

    if /i "!EXT!"==".mp3" set "AUDIO=%%~A"
    if /i "!EXT!"==".wav" set "AUDIO=%%~A"
    if /i "!EXT!"==".flac" set "AUDIO=%%~A"
    if /i "!EXT!"==".m4a" set "AUDIO=%%~A"
    if /i "!EXT!"==".ogg" set "AUDIO=%%~A"
)

REM --- Dosya bulunamadiysa sor ---
if "%IMAGE%"=="" (
    echo   [!] Resim dosyasi bulunamadi.
    echo       Resim ve sarki dosyalarini bu BAT'in ustune surukleyin.
    echo.
    echo   VEYA asagiya elle yazin:
    echo.
    set /p IMAGE="  Resim yolu (png/jpg): "
)
if "%AUDIO%"=="" (
    echo.
    echo   [!] Sarki dosyasi bulunamadi.
    set /p AUDIO="  Sarki yolu (mp3/wav): "
)
if "%IMAGE%"=="" (
    echo HATA: Resim dosyasi gerekli!
    pause
    exit /b 1
)
if "%AUDIO%"=="" (
    echo HATA: Sarki dosyasi gerekli!
    pause
    exit /b 1
)

echo.
echo   Resim : %IMAGE%
echo   Sarki : %AUDIO%
echo.

REM ============================================================
REM  PROFIL SECIMI
REM ============================================================
echo  ------------------------------------------------------------
echo   PROFIL SEC - RTX 4090 24GB + 64GB RAM Icin Optimize
echo  ------------------------------------------------------------
echo.
echo   *** LTX-2.3 - ONERILEN - Hizli, Gercekci, Lip-Sync ***
echo.
echo   1) LTX2 HIZLI    - LTX2 22B Distilled 480p, 10s
echo      ~35sn/segment  ONERILEN - en hizli, iyi kalite
echo.
echo   2) LTX2 HD       - LTX2 22B 720p, 10s
echo      ~90sn/segment  720p HD, en kaliteli
echo.
echo   3) LTX2 KALITE++ - LTX2 22B 720p, perturbation+phases
echo      ~120sn/segment Tum LTX2 ozellikler acik, profesyonel
echo.
echo   *** WAN2.1 IMAGE2VIDEO - Farkli Stil [LIP-SYNC YOK!] ***
echo.
echo   4) WAN2 HIZLI    - Wan2.1 I2V 480p, 10s
echo      ~80sn/segment  Wan2 stili, LIP-SYNC DESTEKLEMIYOR
echo.
echo   5) WAN2 KALITE   - Wan2.1 I2V 480p, 15s
echo      ~150sn/segment Uzun sahneler, LIP-SYNC DESTEKLEMIYOR
echo.
echo   6) OZEL AYARLAR  - Tum parametreleri elle gir
echo.
echo  ------------------------------------------------------------
echo.
set /p PROFIL="  Profil secin [1-6, Enter=1]: "
if "%PROFIL%"=="" set PROFIL=1

REM --- Varsayilan degerler (LTX2 Distilled) ---
set MODEL=ltx2_22B_distilled
set RESOLUTION=832x480
set VIDEOLENGTH=241
set STEPS=20
set GUIDANCE=3.0
set FLOWSHIFT=5.0
set SOLVER=euler
set SEGDUR=10
set FPS=24
set "NEG_PROMPT=blurry, low quality, distorted face, deformed, extra fingers, extra limbs, multiple people, duplicate, cartoon, animated, watermark, text, logo, static, frozen, jerky motion"
set SLIDINGWIN=0
set SLIDINGOVERLAP=1
set PERTURBATION=0
set SELFREFINER=0
set REPEAT=1
set SEED=-1
set LORA=
set LORAWEIGHT=1.0
set ENDIMAGE=
set AUDIOGUIDE=
set AUDIOSCALE=
set ALTGUIDANCE=
set ALTSCALE=
set EMBEDDEDGUIDE=
set GUIDANCEPHASES=
set FILMGRAIN=0
set TEMPORALUP=
set SPATIALUP=
set NOLIPSYNC=0
set NOVOCALISOL=0

REM --- Profil ayarlari (RTX 4090 24GB optimize) ---
REM Profil 1: LTX2 HIZLI (varsayilan degerler zaten LTX2 Distilled)
if "%PROFIL%"=="1" (
    set MODEL=ltx2_22B_distilled
    set RESOLUTION=832x480
    set VIDEOLENGTH=241
    set STEPS=20
    set GUIDANCE=3.0
    set FLOWSHIFT=5.0
    set SEGDUR=10
    set FPS=24
    set SOLVER=euler
)
REM Profil 2: LTX2 HD
if "%PROFIL%"=="2" (
    set MODEL=ltx2_22B
    set RESOLUTION=1280x720
    set VIDEOLENGTH=241
    set STEPS=30
    set GUIDANCE=3.0
    set FLOWSHIFT=5.0
    set SEGDUR=10
    set FPS=24
    set SOLVER=euler
    set GUIDANCEPHASES=2
    set ALTGUIDANCE=3.0
    set ALTSCALE=0.7
)
REM Profil 3: LTX2 KALITE++
if "%PROFIL%"=="3" (
    set MODEL=ltx2_22B
    set RESOLUTION=1280x720
    set VIDEOLENGTH=241
    set STEPS=40
    set GUIDANCE=3.0
    set FLOWSHIFT=5.0
    set SEGDUR=10
    set FPS=24
    set SOLVER=euler
    set GUIDANCEPHASES=2
    set ALTGUIDANCE=3.0
    set ALTSCALE=0.7
    set PERTURBATION=2
    set AUDIOSCALE=1.0
)
REM Profil 4: WAN2 HIZLI
if "%PROFIL%"=="4" (
    set MODEL=i2v
    set RESOLUTION=832x480
    set VIDEOLENGTH=161
    set STEPS=30
    set GUIDANCE=5.0
    set FLOWSHIFT=7.0
    set SEGDUR=10
    set FPS=16
    set SOLVER=unipc
)
REM Profil 5: WAN2 KALITE
if "%PROFIL%"=="5" (
    set MODEL=i2v
    set RESOLUTION=832x480
    set VIDEOLENGTH=241
    set STEPS=30
    set GUIDANCE=5.0
    set FLOWSHIFT=7.0
    set SEGDUR=15
    set FPS=16
    set SOLVER=unipc
)

if not "%PROFIL%"=="6" goto :PROMPT_AYAR

REM ============================================================
REM  OZEL AYARLAR (Profil 6)
REM ============================================================

echo.
echo  --- MODEL SECIMI ---
echo   *** YUKLU MODELLER ***
echo   1) i2v                 - Wan2.1 I2V 480p (Varsayilan)
echo   2) ltx2_22B            - LTX-2 22B (En kaliteli)
echo   3) ltx2_22B_distilled  - LTX-2 22B Distilled (Hizli)
echo.
echo   *** INDIRILMESI GEREKEN (otomatik indirir) ***
echo   4) i2v_720p            - Wan2.1 I2V 720p
echo   5) i2v_2_2             - Wan2.1 2.2 I2V (Yeni versiyon)
echo   6) t2v                 - Wan2.1 Text2Video
echo   7) hunyuan_1_5_i2v     - HunyuanVideo 1.5 I2V
echo   8) Elle gir (model ID)
echo.
set /p MODELCHOICE="  Model (1-8, Enter=1): "
if "%MODELCHOICE%"=="" set MODELCHOICE=1
if "%MODELCHOICE%"=="1" set MODEL=i2v
if "%MODELCHOICE%"=="2" (
    set MODEL=ltx2_22B
    set FLOWSHIFT=5.0
    set GUIDANCE=3.0
    set FPS=24
    set SOLVER=euler
)
if "%MODELCHOICE%"=="3" (
    set MODEL=ltx2_22B_distilled
    set FLOWSHIFT=5.0
    set GUIDANCE=3.0
    set FPS=24
    set SOLVER=euler
)
if "%MODELCHOICE%"=="4" (
    set MODEL=i2v_720p
    set RESOLUTION=1280x720
)
if "%MODELCHOICE%"=="5" set MODEL=i2v_2_2
if "%MODELCHOICE%"=="6" set MODEL=t2v
if "%MODELCHOICE%"=="7" set MODEL=hunyuan_1_5_i2v
if "%MODELCHOICE%"=="8" (
    set /p MODEL="  Model ID (orn: i2v_2_2): "
)

echo.
echo  --- COZUNURLUK ---
echo   1) 832x480   - 480p 16:9 (Varsayilan - Hizli)
echo   2) 480x832   - 480p 9:16 (Dikey/Shorts)
echo   3) 1280x720  - 720p 16:9 (HD)
echo   4) 720x1280  - 720p 9:16 (HD Dikey)
echo   5) 960x544   - 540p 16:9
echo   6) Elle gir (WIDTHxHEIGHT)
echo.
set /p RESCHOICE="  Cozunurluk (1-6, Enter=1): "
if "%RESCHOICE%"=="" set RESCHOICE=1
if "%RESCHOICE%"=="1" set RESOLUTION=832x480
if "%RESCHOICE%"=="2" set RESOLUTION=480x832
if "%RESCHOICE%"=="3" set RESOLUTION=1280x720
if "%RESCHOICE%"=="4" set RESOLUTION=720x1280
if "%RESCHOICE%"=="5" set RESOLUTION=960x544
if "%RESCHOICE%"=="6" (
    set /p RESOLUTION="  Cozunurluk (WxH): "
)

echo.
echo  --- SEGMENT SURESI / FRAME SAYISI ---
echo   16fps: 81 frame=5s, 121=7.5s, 161=10s, 241=15s
echo   24fps: 81 frame=3.4s, 121=5s, 161=6.7s, 241=10s
echo.
echo   1) 81 frame  (~5s @16fps)  - Varsayilan, hizli
echo   2) 121 frame (~7.5s)       - Orta sure
echo   3) 161 frame (~10s)        - Uzun
echo   4) 241 frame (~15s)        - Cok uzun
echo   5) Elle gir (4n+1 olmali: 81,121,161,201,241...)
echo.
set /p FRAMECHOICE="  Frame sayisi (1-5, Enter=1): "
if "%FRAMECHOICE%"=="" set FRAMECHOICE=1
if "%FRAMECHOICE%"=="1" set VIDEOLENGTH=81
if "%FRAMECHOICE%"=="2" set VIDEOLENGTH=121
if "%FRAMECHOICE%"=="3" set VIDEOLENGTH=161
if "%FRAMECHOICE%"=="4" set VIDEOLENGTH=241
if "%FRAMECHOICE%"=="5" (
    set /p VIDEOLENGTH="  Frame sayisi (4n+1): "
)

REM Segment suresini frame sayisindan otomatik hesapla
set /a SEGDUR=!VIDEOLENGTH! / !FPS!

echo.
echo  --- INFERENCE STEPS ---
echo   1) 20  - Hizli (test/deneme)
echo   2) 30  - Dengeli (Varsayilan)
echo   3) 40  - Yuksek kalite
echo   4) 50  - Maksimum kalite (yavas)
echo   5) Elle gir
echo.
set /p STEPCHOICE="  Steps (1-5, Enter=2): "
if "%STEPCHOICE%"=="" set STEPCHOICE=2
if "%STEPCHOICE%"=="1" set STEPS=20
if "%STEPCHOICE%"=="2" set STEPS=30
if "%STEPCHOICE%"=="3" set STEPS=40
if "%STEPCHOICE%"=="4" set STEPS=50
if "%STEPCHOICE%"=="5" (
    set /p STEPS="  Steps (1-100): "
)

echo.
echo  --- GUIDANCE SCALE ---
echo   Dusuk = serbest/yaratici, Yuksek = prompt'a bagli
echo.
echo   1) 3.0  - Serbest (LTX2 icin ideal)
echo   2) 5.0  - Dengeli (Wan2 icin ideal, Varsayilan)
echo   3) 7.0  - Prompt'a yakin
echo   4) Elle gir
echo.
set /p GCHOICE="  Guidance (1-4, Enter=2): "
if "%GCHOICE%"=="" set GCHOICE=2
if "%GCHOICE%"=="1" set GUIDANCE=3.0
if "%GCHOICE%"=="2" set GUIDANCE=5.0
if "%GCHOICE%"=="3" set GUIDANCE=7.0
if "%GCHOICE%"=="4" (
    set /p GUIDANCE="  Guidance Scale: "
)

echo.
echo  --- FLOW SHIFT ---
echo   1) 5.0  - LTX2 varsayilan
echo   2) 7.0  - Wan2 varsayilan
echo   3) 10.0 - Daha dinamik
echo   4) Elle gir
echo.
set /p FSCHOICE="  Flow Shift (1-4, Enter=2): "
if "%FSCHOICE%"=="" set FSCHOICE=2
if "%FSCHOICE%"=="1" set FLOWSHIFT=5.0
if "%FSCHOICE%"=="2" set FLOWSHIFT=7.0
if "%FSCHOICE%"=="3" set FLOWSHIFT=10.0
if "%FSCHOICE%"=="4" (
    set /p FLOWSHIFT="  Flow Shift (1-25): "
)

echo.
echo  --- SOLVER ---
echo   1) unipc  - Varsayilan (Wan2 icin iyi)
echo   2) euler  - LTX2 icin ideal
echo.
set /p SOLCHOICE="  Solver (1/2, Enter=1): "
if "%SOLCHOICE%"=="" set SOLCHOICE=1
if "%SOLCHOICE%"=="1" set SOLVER=unipc
if "%SOLCHOICE%"=="2" set SOLVER=euler

echo.
echo  --- SEED ---
echo   -1 = her seferinde rastgele (Varsayilan)
echo   Sabit sayi = tekrarlanabilir sonuc
echo.
set /p SEED="  Seed (-1=rastgele, Enter=-1): "
if "%SEED%"=="" set SEED=-1

echo.
echo  --- GELISMIS AYARLAR (istege bagli, Enter=atla) ---

echo.
echo   Perturbation (Detay Cesitliligi)
echo     0=Kapali  1=Hafif  2=Normal  3=Guclu  4=Max
set /p PERTURBATION="  Perturbation (0-4, Enter=0): "
if "%PERTURBATION%"=="" set PERTURBATION=0

echo.
echo   Self-Refiner (Coklu Gecis Kalite Artirma)
echo     0=Kapali  1=P1-Norm  2=P2-Norm
set /p SELFREFINER="  Self-Refiner (0-2, Enter=0): "
if "%SELFREFINER%"=="" set SELFREFINER=0

echo.
echo   Guidance Phases (Coklu Faz Rehberlik)
echo     Bos=varsayilan  1=Tek faz  2=Iki faz  3=Uc faz
set /p GUIDANCEPHASES="  Guidance Phases (Enter=varsayilan): "

echo.
echo   Film Grain (Film Tane Efekti)
echo     0=Kapali, 0.1-1.0=Yogunluk
set /p FILMGRAIN="  Film Grain (0-1, Enter=0): "
if "%FILMGRAIN%"=="" set FILMGRAIN=0

echo.
echo   LoRA Dosyasi (bos=kullanma)
set /p LORA="  LoRA dosya adi (Enter=yok): "
if not "%LORA%"=="" (
    set /p LORAWEIGHT="  LoRA agirligi (Enter=1.0): "
    if "!LORAWEIGHT!"=="" set LORAWEIGHT=1.0
)

echo.
echo   Bitis Gorseli (son sahne icin, bos=kullanma)
set /p ENDIMAGE="  Bitis gorseli yolu (Enter=yok): "

:PROMPT_AYAR

REM ============================================================
REM  SEGMENT SURESI AYARI
REM ============================================================
echo.
echo  ------------------------------------------------------------
echo   SEGMENT SURESI - Her parca kac saniye olsun?
echo  ------------------------------------------------------------
echo   Simdi ayarli: %SEGDUR% saniye / segment
echo   Model: %MODEL%  FPS: %FPS%  Frames: %VIDEOLENGTH%
echo.
echo   Uzun segment = daha az gecis, daha akici klip
echo   Kisa segment = daha fazla sahne degisimi
echo.
echo   1) 5 saniye   -  81 frame Wan / 121 frame LTX  - Hizli
echo   2) 10 saniye  - 161 frame Wan / 241 frame LTX  - Dengeli
echo   3) 15 saniye  - 241 frame Wan / 361 frame LTX  - Uzun
echo   4) 20 saniye  - 321 frame Wan / 481 frame LTX  - Cok uzun
echo   5) Elle gir
echo   Enter = Mevcut ayari koru [%SEGDUR%s]
echo.
set /p SEGCHOICE="  Segment suresi [1-5, Enter=mevcut]: "
if "%SEGCHOICE%"=="" goto :SEG_DONE
if "%SEGCHOICE%"=="1" set SEGDUR=5
if "%SEGCHOICE%"=="2" set SEGDUR=10
if "%SEGCHOICE%"=="3" set SEGDUR=15
if "%SEGCHOICE%"=="4" set SEGDUR=20
if "%SEGCHOICE%"=="5" set /p SEGDUR="  Segment suresi [saniye]: "
REM Frame sayisini FPS'e gore hesapla (4n+1 formatina yuvarla)
set /a VIDEOLENGTH=!SEGDUR! * !FPS! + 1
REM 4n+1 formatina yuvarla
set /a _REMAINDER=(!VIDEOLENGTH! - 1) %% 4
if not "!_REMAINDER!"=="0" set /a VIDEOLENGTH=!VIDEOLENGTH! + 4 - !_REMAINDER!
echo   Ayarlandi: %SEGDUR%s = !VIDEOLENGTH! frame
:SEG_DONE

REM ============================================================
REM  PROMPT GIRISI (Tum profiller icin ortak)
REM ============================================================
echo.
echo  --- PROMPT ---
echo   Video icin aciklama girin.
echo   Enter = Varsayilan muzik klibi prompt'u
echo.
set /p VIDPROMPT="  Prompt: "
if "%VIDPROMPT%"=="" set "VIDPROMPT=cinematic music video, single person performing with deep emotion, dramatic cinematic lighting with volumetric rays, professional film cinematography, anamorphic lens, shallow depth of field, film grain, color graded, 4K ultra high quality, smooth natural motion, dynamic slow camera push, person singing with expressive lip movements matching the music, background music playing"

echo.
echo  --- NEGATIF PROMPT ---
echo   Enter = Varsayilan negatif prompt
echo.
set /p NEG="  Negatif Prompt (Enter=varsayilan): "
if not "%NEG%"=="" set "NEG_PROMPT=%NEG%"

REM ============================================================
REM  FACE SWAP
REM ============================================================
echo.
echo  --- FACE SWAP ---
echo   1) Kapali (Varsayilan)
echo   2) Acik - Yuz resmi sec
echo.
set /p FSWCHOICE="  Face Swap (1/2, Enter=1): "
if "%FSWCHOICE%"=="" set FSWCHOICE=1
set FACE_SWAP_ARG=
if "%FSWCHOICE%"=="2" (
    echo.
    set /p FACEIMG="  Yuz resmi yolu (png/jpg): "
    if not "!FACEIMG!"=="" set "FACE_SWAP_ARG=--face-swap "!FACEIMG!""
)

REM ============================================================
REM  LIP-SYNC AYARLARI
REM ============================================================
echo.
echo  ------------------------------------------------------------
echo   LIP-SYNC - Dudak Senkronizasyonu
echo  ------------------------------------------------------------
echo.
echo   1) LIP-SYNC ACIK  - Dudaklar muzige uyar - ONERILEN
echo   2) LIP-SYNC KAPALI - Ses sadece son videoya eklenir
echo.
set /p LIPSYNC_CHOICE="  Lip-sync secin [1-2, Enter=1]: "
if "%LIPSYNC_CHOICE%"=="" set LIPSYNC_CHOICE=1
if "%LIPSYNC_CHOICE%"=="2" set NOLIPSYNC=1
if "%NOLIPSYNC%"=="1" goto :SKIP_VOCAL
echo.
echo   Vokal izolasyonu arka plan muzigini ayirir,
echo   lip-sync icin daha temiz ses saglar.
echo.
echo   1) VOKAL IZOLASYONU ACIK  - ONERILEN
echo   2) VOKAL IZOLASYONU KAPALI
echo.
set /p VOCAL_CHOICE="  Secin [1-2, Enter=1]: "
if "%VOCAL_CHOICE%"=="" set VOCAL_CHOICE=1
if "%VOCAL_CHOICE%"=="2" set NOVOCALISOL=1
:SKIP_VOCAL

REM ============================================================
REM  MMGP BELLEK PROFILI - CPU RAM'e Offload
REM ============================================================
echo.
echo  ------------------------------------------------------------
echo   MMGP BELLEK PROFILI - Video uretim oncesi RAM ayari
echo  ------------------------------------------------------------
echo.
echo   1) Profil 1 - HighRAM+HighVRAM (64GB RAM + 24GB VRAM)
echo      En hizli, kisa videolar icin
echo.
echo   2) Profil 2 - HighRAM+LowVRAM (64GB RAM + 12GB VRAM)
echo      RAM'e offload, uzun video icin
echo.
echo   3) Profil 3 - LowRAM+HighVRAM (32GB RAM + 24GB VRAM)
echo      VRAM agirlikli, orta bellek  [MEVCUT AYAR]
echo.
echo   4) Profil 4 - LowRAM+LowVRAM (32GB RAM + 12GB VRAM)
echo      Dusuk bellek genel profil
echo.
echo   5) Profil 5 - VeryLow (24GB RAM + 10GB VRAM)
echo      En az bellek, yavas ama calisir
echo.
echo   Enter = Mevcut ayari koru (Profil 3)
echo  ------------------------------------------------------------
set /p MMGP_PROFIL="  MMGP Profil [1-5, Enter=mevcut]: "

set "WGP_CONFIG=D:\__sistem__\Masaustu\FikoYT.Yeni.Cag\video-uretim\LTX-Desktop-WanGP\LTX-Desktop-WanGP\Wan2GP\wgp_config.json"
if not "%MMGP_PROFIL%"=="" (
    echo   [*] MMGP Profil !MMGP_PROFIL! ayarlaniyor...
    python -c "import json; f=open(r'!WGP_CONFIG!','r',encoding='utf-8'); c=json.load(f); f.close(); c['video_profile']=!MMGP_PROFIL!; c['image_profile']=!MMGP_PROFIL!; c['audio_profile']=!MMGP_PROFIL!; f=open(r'!WGP_CONFIG!','w',encoding='utf-8'); json.dump(c,f,indent=4); f.close(); print('  Config guncellendi: profil',c['video_profile'])"
)

REM ============================================================
REM  OZET VE BASLATMA
REM ============================================================
echo.
echo  ============================================================
echo   AYARLAR OZETI
echo  ============================================================
echo   Resim     : %IMAGE%
echo   Sarki     : %AUDIO%
echo   Model     : %MODEL%
echo   Cozunurluk: %RESOLUTION%
echo   Frames    : %VIDEOLENGTH% (%SEGDUR%s segment)
echo   Steps     : %STEPS%
echo   Guidance  : %GUIDANCE%
echo   Flow Shift: %FLOWSHIFT%
echo   Solver    : %SOLVER%
echo   Seed      : %SEED%
echo   FPS       : %FPS%
echo   Prompt    : %VIDPROMPT:~0,50%...
if not "%LORA%"=="" echo   LoRA      : %LORA% (x%LORAWEIGHT%)
if not "%PERTURBATION%"=="0" echo   Perturbat.: %PERTURBATION%
if not "%SELFREFINER%"=="0" echo   Refiner   : %SELFREFINER%
if not "%GUIDANCEPHASES%"=="" echo   G.Phases  : %GUIDANCEPHASES%
if not "%FILMGRAIN%"=="0" echo   Film Grain: %FILMGRAIN%
if not "%FACEIMG%"=="" echo   Face Swap : %FACEIMG%
if not "%ENDIMAGE%"=="" echo   End Image : %ENDIMAGE%
if "%NOLIPSYNC%"=="1" echo   Lip-Sync  : KAPALI
if "%NOLIPSYNC%"=="0" echo   Lip-Sync  : ACIK
if "%NOLIPSYNC%"=="0" if "%NOVOCALISOL%"=="0" echo   Vokal Izol: ACIK
if "%NOLIPSYNC%"=="0" if "%NOVOCALISOL%"=="1" echo   Vokal Izol: KAPALI
echo  ============================================================
echo   NOT: WanGP'nin localhost:7860'da acik olmasi gerekir!
echo  ============================================================
echo.
echo   Baslatmak icin Enter'a basin, iptal icin Ctrl+C...
pause >nul

REM --- Komut olustur ---
set CMD=%PYTHON% %SCRIPT% "%AUDIO%" "%IMAGE%"
set CMD=%CMD% --model %MODEL%
set CMD=%CMD% --resolution %RESOLUTION%
set CMD=%CMD% --video-length %VIDEOLENGTH%
set CMD=%CMD% --steps %STEPS%
set CMD=%CMD% --guidance-scale %GUIDANCE%
set CMD=%CMD% --flow-shift %FLOWSHIFT%
set CMD=%CMD% --solver %SOLVER%
set CMD=%CMD% --seed %SEED%
set CMD=%CMD% --fps %FPS%
set CMD=%CMD% --segment-duration %SEGDUR%
set CMD=%CMD% --prompt "%VIDPROMPT%"
set CMD=%CMD% --negative-prompt "%NEG_PROMPT%"

if not "%LORA%"=="" (
    set CMD=!CMD! --lora "%LORA%" --lora-weight %LORAWEIGHT%
)
if not "%PERTURBATION%"=="0" (
    set CMD=!CMD! --perturbation %PERTURBATION%
)
if not "%SELFREFINER%"=="0" (
    set CMD=!CMD! --self-refiner %SELFREFINER%
)
if not "%GUIDANCEPHASES%"=="" (
    set CMD=!CMD! --guidance-phases %GUIDANCEPHASES%
)
if not "%FILMGRAIN%"=="0" (
    set CMD=!CMD! --film-grain %FILMGRAIN%
)
if not "%ENDIMAGE%"=="" (
    set CMD=!CMD! --image-end "%ENDIMAGE%"
)
if not "%FACEIMG%"=="" (
    set CMD=!CMD! --face-swap "%FACEIMG%"
)
if "%NOLIPSYNC%"=="1" (
    set CMD=!CMD! --no-lip-sync
)
if "%NOVOCALISOL%"=="1" (
    set CMD=!CMD! --no-vocal-isolation
)

echo.
echo  [*] Calistiriliyor...
echo.
%CMD%

echo.
echo  ============================================================
echo   Islem tamamlandi!
echo  ============================================================
echo.
pause
