Files
imajviewer/docs/analiz-imajviewer2.md
T
Alhan 3d59617930
Build & Release / build-linux (push) Canceled after 0s
Build & Release / build-windows (push) Canceled after 0s
Build & Release / create-release (push) Canceled after 0s
docs: add imajViewer2 project analysis report (AI image manipulation + video)
2026-11-10 08:17:24 +03:00

10 KiB
Raw Blame History

imajViewer2 — AI Görüntü Manipülatör Viewer Projesi

1. Proje Vizyonu ve Kapsam

imajViewer2, basit bir görüntü izleyicisini AI tabanlı görüntü manipülasyon aracı ile birleştiren modern masaüstü uygulaması olarak tasarlanmıştır. Kullanıcı bir resim dosyasına çift tıklayarak açar ve doğrudan uygulama içinden AI ile manipülasyon yapabilir.

Temel Özellikler

  • Resim Açma ve Görüntüleme: İmge izleyici özellikleri korunur (zoom, pan, fit, fill)
  • Prompt Tabanlı Manipülasyon: AI ile metin komutlarıyla görüntü düzenleme
  • Model Seçimi: Kullanıcı farklı AI modellerini seçebilmeli
  • img2img: Mevcut görüntüyü AI ile dönüştürme
  • txt2img: Metinden yeni görüntü oluşturma
  • Mask-based Inpainting: Belirli alanları maskeleyip doldurma/düzelme
  • Image-to-Video: Statik görüntüyü videoya dönüştürme
  • Video Oynatma: Dönüştürülen videoların uygulama içinde oynatılması

2. Mimari Tasarım

Client-Server Model

Uygulama iki bileşenden oluşacaktır:

imajViewer2 (Flutter Desktop Client)
├── UI: Görüntü izleyici + manipülasyon paneli
├── Video Player: media_kit backend
├── Model Yönetimi: Kullanıcı tercihleri
└── API İstemcisi: AI backend ile iletişim

AI Backend (Separate Process/Server)
├── Local: GPU Server'de çalışan servis
├── Remote: Segmind/OpenAI API'leri
└── Orchestration: Workflow yönetimi

Avantajları

  • Platform bağımsız AI backend
  • GPU kaynaklarını optimize şekilde kullanma
  • Birden fazla istemcinin aynı backend'i kullanması

3. AI Backend Seçenekleri

3.1 Yerel AI Servisleri

Seçenek A: ComfyUI

Avantajları:

  • Açık kaynak, tamamen özelleştirilebilir
  • Güçlü workflow sistemi (node-based)
  • Geniş model desteği (Stable Diffusion, ControlNet, etc.)
  • REST API desteği
  • Yerel GPU üzerinde çalışır

Dezavantajları:

  • Kurulum karmaşık
  • GPU belleği gereksinimi yüksek
  • Workflow JSON'ları öğrenme eğrisi

Entegrasyon Yöntemi:

curl -X POST http://localhost:8188/prompt \
  -d '{"workflow": {"prompt": {"text": "A cat sitting on a chair"}}}'

Seçenek B: InvokeAI

Avantajları:

  • Web tabanlı arayüz, daha kullanıcı dostu
  • Yerleşik API endpoint'leri
  • Kompozisyon odaklı araçlar

Dezavantajları:

  • Daha az esnek workflow desteği
  • GPU gereksinimleri

Seçenek C: Local API Server (Python)

from transformers import DiffusionPipeline

pipeline = DiffusionPipeline.from_pretrained("runwayml/stable-diffusion-xl-base-1.0")
image = pipeline(prompt="A photo of a astronaut").images[0]

Avantajları:

  • Tamamen özelleştirilebilir
  • API endpoint'lerini uygulama için optimize etmek mümkün
  • Model yükleme/değiştirme esnekliği

3.2 Bulut API'leri

Seçenek A: Segmind

Avantajları:

  • Kullanıcı zaten Segmind API'sini kullanıyor
  • Güçlü img2img ve inpainting modelleri
  • Uygun fiyatlı (img/image: $0.001-$0.0072)
  • GPU zaman tabanlı fiyatlandırma

Model desteği:

  • SDXL inpainting
  • ControlNet
  • Flux Dev/Schnell
  • Upscale
  • Background removal

Entegrasyon:

curl -X POST https://api.segmind.com/v2/predictions \
  -H "Content-Type: application/json" \
  -H "x-api-key: $API_KEY" \
  -d '{"input": {"prompt": "Turn this photo into anime style", "image": "<base64>"}}'

Seçenek B: OpenAI Images API

  • DALL-E 3 img2img
  • Çok basit API
  • Daha pahalı (~$0.04/image)

3.3 Hibrit Yaklaşım (Önerilen)

  • Yerel GPU üzerinde ComfyUI veya özel API server
  • API'ye istenilen model dinamik olarak yüklenir
  • Kullanıcı farklı modelleri ayarlardan seçer

4. Video Oynatma Entegrasyonu

Teknik Çözüm

Flutter desktop'da video oynatma için media_kit paketi kullanılmalıdır:

dependencies:
  media_kit: ^1.2.0
  media_kit_libmpv: ^1.0.0

Linux Gereksinimi:

sudo apt install libmpv-dev mpv

Video Oynatıcı Özellikleri

  • Fullscreen desteği
  • Playback kontrol (play/pause, seek, volume)
  • Keyboard shortcuts
  • Looping
  • Subtitle desteği (gelecekte)

Image-to-Video Backend

Yerel GPU'de çalışan model:

  • SkyReels-V3 (A2V-19B) - Referans görüntüden video
  • HunyuanVideo-1.5 (FP8, Turbo)
  • Wan2.x modelleri

Bulut Alternatifi:

  • Skywork API
  • OpenAI Image API (video feature)

5. Kullanıcı Deneyimi Tasarımı

Arayüz Organizasyonu

┌─────────────────────────────────────────────────────────────┐
│ Title Bar: [app name] [model selector] [settings]          │
├─────────────────────────────────────────────────────────────┤
│                     IMAGE AREA                              │
│                     (zoom, pan, fit)                        │
├─────────────────────────────────────────────────────────────┤
│ [img2img] [txt2img] [inpaint] [video] [model: SDXL]        │
├─────────────────────────────────────────────────────────────┤
│ Prompt: [Enter your prompt here...]                         │
│ [Generate] [Clear]                                          │
├─────────────────────────────────────────────────────────────┤
│ Result: [Generated image preview]                           │
│ [Accept] [Regenerate] [Save]                                │
└─────────────────────────────────────────────────────────────┘

Özellik Detayları

Model Seçimi

Ayarlarda kullanıcının seçebileceği model seçenekleri:

  • SDXL Base
  • SDXL Turbo
  • ControlNet (pose/edge/depth)
  • Inpainting modelleri
  • Image-to-Video modelleri

img2img Akışı

  1. Kullanıcı mevcut görüntüyü seçer
  2. Prompt yazılır
  3. Model seçilir
  4. Generate butonu
  5. Sonuç görüntülenir
  6. Accept veya regenerate seçeneği

Inpainting Akışı

  1. Kullanıcı mask tool'ünü seçer
  2. Görüntüde maske çizer
  3. Prompt yazılır ("Replace with red flowers")
  4. Generate
  5. Sonuçta maske alanı değiştirilir

Image-to-Video Akışı

  1. Görüntü seçilir
  2. Video parametreleri (süre, hareket tipi)
  3. Generate
  4. Video player'da sonuç oynatılır
  5. Save video

6. Teknik Gereksinimler

AI Backend Server

  • GPU: RTX 3090 veya 4090 (24GB VRAM önerilir)
  • RAM: 32GB+
  • Disk: 500GB+ (model depolama için)
  • Network: GPU server'dan erişilebilir

Flutter Client

  • Dart SDK
  • platform_channel'ları (video player için)
  • HTTP istemcisi (AI API ile iletişim)
  • State management (Riverpod veya Provider)

Model Yönetimi

  • Ayarlardan kullanıcı model seçer
  • Backend'de aktif model değiştirilir
  • Farklı modeller farklı task'ler için seçilebilir

7. Geliştirme Fazları

Faz 1: Temel Yapı

  • Flutter uygulaması iskeleti
  • AI backend API server'ı (ComfyUI veya özel)
  • img2img endpoint
  • Basit model seçimi UI

Faz 2: Özellikler

  • txt2img
  • img2img
  • Model seçimi arayüzü
  • Ayarlar sistemi

Faz 3: Gelişmiş Özellikler

  • Mask tool (inpainting)
  • Video oynatma (media_kit)
  • Image-to-video

Faz 4: Optimizasyon ve UX

  • Workflow optimizasyonu
  • Kullanıcı deneyimi iyileştirmeleri
  • Hata yönetimi
  • Performance tuning

8. Riskler ve Zorluklar

AI Model Yönetimi

  • GPU belleği kısıtlamaları (model yükleme/değiştirme)
  • Model yükleme zamanı
  • Farklı modeller farklı formatlar gerektirir

API Entegrasyonu

  • Local vs cloud API'leri uyumsuzlukları
  • Model versiyonları

Video İşleme

  • Video render uzun sürer (GPU kaynakları)
  • Memory yönetimi (büyük video dosyaları)

Performans

  • Model yükleme gecikmeleri
  • GPU queue yönetimi (birden fazla istek)

9. Maliyet Analizi

Yerel GPU

  • GPU zaten mevcut (VM100: 2x RTX 3090)
  • Hosting/Cloud maliyeti yok
  • Model indirilmesi ve depolanması

Bulut API (Segmind)

  • img/image: $0.001-$0.0072
  • Inpainting: ~$0.0043/gpu-second
  • Image-to-video: $0.04-$0.10/video

Hibrit Model

  • Günlük kullanımlar için yerel model
  • Özel modeller için bulut API

10. Alternatif Çözümler

1. ComfyUI + Custom Frontend

  • Mevcut ComfyUI workflow'ları kullanılır
  • Flutter arayüzü ComfyUI API'sine bağlanır

2. InvokeAI

  • Daha kolay kurulum
  • Yerleşik web arayüzü (geliştirme için hızlı başlangıç)

3. Custom Python API + Local Models

  • Tam kontrol
  • Model yükleme/değiştirme dinamik
  • API'ler uygulama için optimize edilir

4. Tamamen Bulut API

  • Yerel GPU gereksinimi yok
  • Maliyetli olabilir
  • API rate limits

11. Öneriler

  1. Hibrit mimari: Yerel GPU üzerinde özel API server, ComfyUI alternatif modeller için
  2. Model stratejisi: Her kullanıcının ihtiyacına göre farklı modeller seçebilmeli
  3. Video odaklı özellikler: İleri aşamada image-to-video ve video playback
  4. Maliyet optimizasyonu: Yerel modeller öncelikli, bulut için yüksek kaliteli sonuçlar
  5. Kullanıcı deneyimi: Basit arayüz, gelişmiş özellikler ayarlarda
  6. GPU optimizasyonu: Model yükleme stratejisi (aktif model bellekte kalmalı)

12. Sonuç

imajViewer2 projesi teknik olarak uygulanabilir ve güçlü bir araç olacak. Yerel GPU server'ın mevcut olması maliyet ve performans açısından avantaj sağlar. ComfyUI veya özel Python API backend'i kullanılarak güçlü img2img, txt2img ve image-to-video özellikleri sağlanabilir. Kullanıcı deneyimi basit tutulmalı, gelişmiş özellikler ayarlarda sunulmalıdır.