# WanGP UI Haritası — Flutter UI Yeniden Yapımı Referansı

**Kaynak:** Canlı WanGP arayüzü (port 7860) + `wgp.py` (12.186 satır) + `plugins/wan2gp-configuration/plugin.py` + `defaults/*.json` (177 model)

Bu doküman Flutter'da WanGP'nin gücünü tam olarak yeniden inşa etmek için referanstır.

## Üst Sekmeler (Top-Level)

WanGP'nin ana sekmeleri ve Flutter karşılıkları:

| WanGP Sekmesi | Flutter Karşılığı | Faz |
|---|---|---|
| Video Generator | Film Stüdyosu / Müzik Klip / Influencer | 1 |
| Video Mask Creator | Maske editör (sahne kartı içinde) | 2 |
| Motion Designer | Sahne hareket önayarları | 2 |
| Gallery | Geçmiş sayfası | 1 |
| LoRA Merger | LoRA yöneticisi (Karakter düzenleme içinde) | 2 |
| LoRA Manager | Karakter LoRA bağlama (Karakter Defteri'nde) | 1 |
| CivitAI Browser | LoRA indirme (Ayarlar/LoRA) | 3 |
| FlashVSR Upscaling | Çıkış ayarları > upscale | 2 |
| Queue Editor | Kuyruk sayfası | 1 |
| Models Manager | Modeller sayfası (Ayarlar) | 1 |
| Multi-Angle Prompt Helper | Prompt sihirbazı içinde | 1 |
| Configuration | Ayarlar (Performance/Outputs/Notifications) | 1 |
| Plugins / Guides / About | Hakkında sayfası | 3 |

## Model Seçici — 3 Kademeli Cascading Dropdown

```
Family       → Sub-version    → Checkpoint variant
─────────────────────────────────────────────────
Wan2.1                 ─        14B / 14B GGUF Q4 / Q6 / Q8
Wan2.2       ─         t2v_2_2 / i2v_2_2 / vace_14B_2_2
Hunyuan Video          1.0      i2v / t2v_fast / avatar / custom
Hunyuan Video 1.5      ─        i2v_480p / i2v_720p / t2v_*
LTX Video              13B      Distilled / Dev
LTX-2                  19B      Dev 1.0 / Distilled 1.0
LTX-2                  22B      Dev / NVFP4 / GGUF Q4_K_M / Q6_K / Q8_0 / Distilled
Kandinsky 5            ─        ...
LongCat                ─        ...
Magi Human             ─        ...
Flux 1                 dev      schnell / krea / kontext / srpo
Flux 1                 chroma   ...
Flux 2                 dev      ...
Qwen                   image    20B / 2512_20B / edit_*
Z-Image                ─        ...
TTS                    ─        ace_step / qwen3_tts / index_tts2 / kugelaudio_0_open
```

**Flutter implementasyon:**
- `assets/wangp_modeller/` klasörüne 177 JSON kopyala
- `WangpModelKatalogu` sınıfı: family → version → variant ağacı build et
- 3 cascading `DropdownMenu` veya `SearchableDropdown` widget'ı
- Her variant seçilince `model_def` JSON'undan default ayarları otomatik yükle

## Generation Paneli — Üst Kısım

Her zaman görünür, `Sahne` veya `Üretim` ekranlarında ortak:

| Alan | Tip | Varsayılan | Range/Choices |
|---|---|---|---|
| Lora Preset / Settings | DropdownFiltre | "" | Kullanıcı preset listesi |
| Generation Mode | Radio | Text Prompt Only | Text / Start with Image / Continue Video |
| End Image(s) | Checkbox | false | — |
| Control Video / Frames Injection | Dropdown | No Video Process | model'e bağlı |
| Generation Recipe | Dropdown | Generate Video & Soundtrack | model'e bağlı |
| Prompts | Textarea (3 line) | — | — |
| Category | Dropdown | 540p | 480p / 540p / 720p / 1080p |
| Resolution Budget | Dropdown | 960x544 (16:9) | model+category'e bağlı |
| Number of frames | Slider | 121 | 17–737, step 4–24 |
| Number of Inference Steps | Slider | model default | 1–100 |
| Advanced Mode | Checkbox | false | — |
| Load Settings | File (JSON/MP4/Image) | — | drag-drop |
| Generate | Button | — | — |
| Queue Management | Accordion | closed | — |

## Advanced Mode — 8 Alt Sekme

### General
- Seed (-1 random, slider 0..999.999.999)
- Phases (One/Two/Three)
- Model Switch Phase / Switch Threshold (multi-submodel)
- Guidance Scale 1, 2, 3
- Audio Guidance / Embedded Guidance / Alt Guidance / Alt Scale
- Pause between Multi Speakers (0..2s, step 0.05)
- Temperature, Top-p (LLM/TTS)
- Sampler Solver / Scheduler
- Negative Prompt
- NAG Scale (1..20), NAG Tau (1..5), NAG Alpha (0..2)
- Num. of Generated Videos / Audio Files per Prompt (1..25)
- Multiple Images as Texts Prompts (combinations / each line / macro)
- How to Process each Line (All same / Each separate / Macro)

### Loras
- Activated Loras (multiselect)
- Loras Multipliers (textarea, "0.8 0.6\n#yorum 1.0")

### Steps Skipping (TeaCache / MagCache)
- Skip Steps Cache Type
- Skip Steps Multiplier
- Skip Steps Starting Moment % (0..100)

### Post Processing
- Temporal Upsampling (Disabled / Rife x2 / Rife x4)
- Spatial Upsampling (Disabled / Lanczos x1.5 / x2.0 / VAE x1.0 refined / VAE x2.0)
- Film Grain Intensity (0..1, step 0.01)
- Film Grain Saturation (0..1, step 0.01)

### Audio
- MMAudio (Disabled / Enabled)
- MMAudio Prompt / Negative Prompt
- Remux Audio Files (No / Remux from Control)
- Soundtrack (audio file upload)

### Quality
- Perturbation (OFF / Skip Layer Guidance)
- Perturbation Layers (multiselect 0..39)
- Perturbation Start/End % (0..100)
- APG (Adaptive Projected Guidance)
- CFG★ (Classifier-Free Guidance Star)
- CFG Zero below this Layer (-1..39)
- Min Frames if References (1/5/9/13/17 ya da "always X")
- Motion Amplitude
- Self Refiner (Disabled / P1-Norm / P2-Norm)
- Refiner Range / Iterations
- Self Refiner f Uncertainty (0..1)
- Self Refiner Certain Percentage Skip (0..1)

### Sliding Window
- Sliding Window Size (5..257, step 4..20)
- Sliding Window Overlap (1..97)
- Sliding Window Color Correction Strength
- Sliding Window Overlap Noise (0..100)
- Sliding Window Discard Last Frames
- Temporal Alignment (Aligned to source / first window of new sample)

### Misc.
- RIFLEx Setting (Auto >5s / Always ON / Always OFF)
- Force FPS (Model Default / Auto / Control Video / Source Video / 15/16/23/24/25/30/50)
- Override Memory Profile (Default + 7 profile, HighRAM_HighVRAM 64+24 → VeryLowRAM_LowVRAM 24+10)
- Override Attention Mode (Default / auto / sdpa / flash / xformers / sage / sage2 / sage3 / radial)
- Output Filename template (`{date}_{seed}_{prompt(50)}`)

## Configuration — Global Ayarlar (6 Alt Sekme)

### General
- Selectable Generative Models (multiselect)
- Models Hierarchy (2 / 3 Levels)
- Input Image/Video Sizing (Pixel Budget / Max W-H / Exact Crop)
- Attention Type (auto/sdpa/flash/xformers/sage/sage2/sage3)
- Model Loading/Unloading Policy (Preload on Launch / on Switch / Unload when Queue Done)
- Keep Previous Generations (0/1/5/10/20/30)
- Display real-time RAM/VRAM stats (On/Off)
- Max Frames Multiplier (x1..x7)
- 3K/4K Resolutions (On/Off)
- Checkpoint Folders (multiline path)
- Loras Root Folder
- Save Queue if Crash (Off / Overwrite / New File)
- UI Theme (Blue Sky / Classic Gradio) → Flutter'da kendi tema sistemi
- Queue Color Scheme (Pastel / Alternating Grey)
- Process Queues when Browser unfocused (Yes/No) → Flutter desktop'ta her zaman aktif

### Performance
- Transformer Quantization (Scaled Int8 / Scaled Fp8 / 16-bit bf16)
- Transformer Data Type (Auto / FP16 / BF16)
- Mixed Precision (16-bit only / Mixed 16/32)
- Text Encoder Quantization (bf16 / int8)
- LM Decoder Engine (Auto / PyTorch / Cuda Graph / vllm)
- VAE Precision (16-bit / 32-bit)
- Compile Transformer (On / Off)
- VAE Tiling (Auto / 16GB+ / 8GB+ / 6GB+)
- Boost (~10% speedup) On/Off
- Int8 Kernels (Triton)
- Default Memory Profile (Video/Image/Audio) — 7 profile
- Preload in VRAM (MB) (0..40000, step 100)
- Max Reserved Loras (MB) (-1..10000)
- Force Unload Models from RAM (button)

### Extensions
- MMAudio Mode (Off / Standard / NSFW)
- MMAudio Persistence (Unload / Persistent in RAM)
- RIFE Version (HDv3 / v4.26)
- Video Mask Model (MatAnyone v1 / v2 / SAM3)
- Depth Anything Variant (vitl / vitb / da3_metric_large)

### Prompt Enhancer / Deepy
- Enhancer Enabled (Off / Florence2+Llama3.2 3B / Florence2+Llama Joy 8B / Qwen3.5VL 4B / Qwen3.5VL 9B)
- Qwen3.5 LLM Quantization (Quanto Int8 / GGUF Q4)
- Enhancer Mode (On-Demand Button / Automatic)
- Temperature (0.1..1.5), Top-p (0.1..1.0)
- Randomize Seed
- Deepy Enabled
- Deepy VRAM Mode (Unload ASAP / Unload on Request / Always loaded)
- Deepy Context Tokens (256000+, step 512)
- Custom System Prompt (6 line textarea)

### Outputs
- SDR Video Codec (x265 CRF 28 / x264 L8 / x265 CRF 8 / x264 L10 / Lossless)
- HDR Video Codec (x265 CRF 14/8/4)
- Image Codec (JPEG Q85/Q95 / WEBP Q85/Q95/Lossless / PNG)
- Audio Codec mp4 (AAC 128/192/256/320 / ALAC)
- Audio Standalone (WAV / MP3 128/192/320)
- Metadata (JSON / Embed / None)
- Keep Intermediate Sliding Windows
- Embed Source Images
- Video / Image / Audio Save Path

### Notifications
- Notification Sound On/Off
- Notification Volume (0..100, step 5)

## Outpainting (Control Video aktifken)

- Enable Spatial Outpainting
- Outpainting Ratio (Manual / 1:1 / 4:3 / 3:4 / 16:9 / 9:16 / 21:9 / 9:21)
- Top / Bottom / Left / Right (0..100, step 5)

## Lipsync / Audio (InfiniteTalk / Multitalk)

- Audio Prompt Type (audio source seçimi: A / V / N / AV / AVN)
- Custom Guide (audio dosyası)
- Remove Background Music
- Ignore Background Music for LipSync
- Video Length not Limited by Audio
- Normalize Audio Volumes
- Multi-speaker mask editor (Vace + Multitalk + image_outputs)
- Pause between Multi Speakers (0..2s)

## Image Generation Modu (Z-Image / Flux / Qwen)

`image_outputs=true` olunca:
- Resolution + steps + seed + prompt aynı kanal
- Batch Size slider (1..16)
- video_length gizlenir

## Flutter UI Yeniden Yapım Stratejisi

### Modeller Sayfası (Ayarlar > Modeller)
- 3-kademe model seçici test ekranı
- 177 JSON parse → kategori ağacı
- Her model için: ad, tip, varsayılan ayar, gereksinim VRAM, açıklama
- "Önerilen modeller" sekmesi: hızlı/kalite/lipsync/görsel başlıkları altında küratör seçim

### Sahne Editör (Film Stüdyosu içinde)
- **Hızlı Mod (varsayılan):** sadece Üst Generation Paneli
- **Gelişmiş Mod toggle:** 8 sekmeli accordion açar
- Her parametrenin yanında 💡 tooltip (WanGP'nin orijinal açıklaması)
- "Şablonu kullan" butonu → Sablon nesnesinden tüm gelişmiş ayarları otomatik doldur
- "Profile göre otomatik" → UretimProfili'nden parametreleri yükle (RTX 4070 12GB → quantization=int8, compile=on, attention=sage2)

### Konfigürasyon Sayfası (Ayarlar)
- 6 sekme (General / Performance / Extensions / Prompt Enhancer / Outputs / Notifications)
- Her ayar Hive'a persist
- Köprünün `/config` endpoint'ine POST ile WanGP'ye iletilir (köprü bunu desteklemeli)

### LoRA Multipliers Parser

```dart
class LoraMultipliersParser {
  static List<double> ayrıştır(String girdi) {
    final degerler = <double>[];
    for (final satir in girdi.split('\n')) {
      final temiz = satir.split('#').first.trim();      // # yorumları kaldır
      if (temiz.isEmpty) continue;
      for (final parca in temiz.split(RegExp(r'\s+'))) {
        final d = double.tryParse(parca);
        if (d != null) degerler.add(d);
      }
    }
    return degerler;
  }
}
```

### Output Filename Template Engine

Tokens: `{date}`, `{time}`, `{seed}`, `{prompt}`, `{prompt(N)}` (N karakter), `{num_inference_steps}`, `{flow_shift}`, `{video_length}`, `{guidance_scale}`, `{model}`, `{lora}`, `{film_id}`, `{sahne_sira}`

```dart
String dosyaAdiUret(String sablon, Map<String, dynamic> baglam) {
  return sablon.replaceAllMapped(RegExp(r'\{(\w+)(?:\((\d+)\))?\}'), (m) {
    final anahtar = m.group(1)!;
    final n = int.tryParse(m.group(2) ?? '');
    final deger = baglam[anahtar]?.toString() ?? '';
    return n != null ? deger.substring(0, deger.length.clamp(0, n)) : deger;
  });
}
```

## Sonuç

WanGP'nin tüm gücü Flutter'da yeniden yapılabilir. Faz 1 minimum kapsam:
- 3-kademe model seçici (177 JSON parse)
- Generation panel + 8-sekme advanced
- Configuration 6-sekme
- LoRA multipliers parser + output filename template
- FastAPI köprünün `/jobs` endpoint'i settings'i WanGP `submit_task`'a aynen iletecek

Faz 2: plugin sekmeleri (FlashVSR, Models Manager, Queue Editor, Multi-Angle Prompt Helper).
