ИИ-апскейлинг изображений и видео
Ключевые технологии и архитектура:
- AI-модели: Интегрированы Real-ESRGAN (x2/x4/x8, режимы normal/anime) для апскейлинга и GFPGAN (v1.4) для восстановления лиц.
- Управление моделями: Реализован Singleton ModelManager с LRU-кэшем (на базе OrderedDict) для эффективной загрузки и переключения моделей.
- Оптимизация GPU: Включает класс GPUCapabilities для автоматического определения VRAM и compute capability, что позволяет динамически настраивать tile_size, half-precision (FP16) и включать TF32 для GPU Ampere/Ada.
- Многопоточность: Обработка изображений вынесена в QThread (UpscaleWorker), чтобы GUI не блокировался.
- Обработка видео: Реализован пайплайн (reader/processor/writer) на threading.Thread и queue.Queue для параллельной обработки кадров. Используется subprocess для вызова ffmpeg (демультиплексирование, сохранение аудиодорожек, сборка).
- Фильтры: Модульная FilterPipeline для применения цепочки фильтров (CLAHE, Bilateral denoise, Dehaze, Canny edge sharpening и др.).
- Оптимизация памяти: MemoryOptimizedProcessor для обработки сверхбольших изображений (тайлинг).
Функционал:
- Пакетная обработка изображений (включая Drag-n-Drop).
- Live-preview с виджетом SplitView (сравнение "до/после").
- Управление пресетами (через QSettings).
- Локализация (JSON, Translator) и смена тем (QSS).
- Мониторинг VRAM/RAM в реальном времени (psutil, pyqtgraph).
- AI-модели: Интегрированы Real-ESRGAN (x2/x4/x8, режимы normal/anime) для апскейлинга и GFPGAN (v1.4) для восстановления лиц.
- Управление моделями: Реализован Singleton ModelManager с LRU-кэшем (на базе OrderedDict) для эффективной загрузки и переключения моделей.
- Оптимизация GPU: Включает класс GPUCapabilities для автоматического определения VRAM и compute capability, что позволяет динамически настраивать tile_size, half-precision (FP16) и включать TF32 для GPU Ampere/Ada.
- Многопоточность: Обработка изображений вынесена в QThread (UpscaleWorker), чтобы GUI не блокировался.
- Обработка видео: Реализован пайплайн (reader/processor/writer) на threading.Thread и queue.Queue для параллельной обработки кадров. Используется subprocess для вызова ffmpeg (демультиплексирование, сохранение аудиодорожек, сборка).
- Фильтры: Модульная FilterPipeline для применения цепочки фильтров (CLAHE, Bilateral denoise, Dehaze, Canny edge sharpening и др.).
- Оптимизация памяти: MemoryOptimizedProcessor для обработки сверхбольших изображений (тайлинг).
Функционал:
- Пакетная обработка изображений (включая Drag-n-Drop).
- Live-preview с виджетом SplitView (сравнение "до/после").
- Управление пресетами (через QSettings).
- Локализация (JSON, Translator) и смена тем (QSS).
- Мониторинг VRAM/RAM в реальном времени (psutil, pyqtgraph).