Przejdź do treści
Wszystkie projekty

Projekt · 06

Status: Ukończony

AI Upscaler

Aplikacja okienkowa do powiększania zdjęć 4× modelem Real-ESRGAN, z opcją usunięcia tła. Okno jest w CustomTkinter, a cała ciężka praca idzie w osobnym wątku, na karcie graficznej, jeśli jest CUDA.

Obróbka zdjęcia · schemat działania

  1. Wczytanie zdjęcia
  2. Zmiana rozmiaru w OpenCV
  3. Opcjonalne usunięcie tła
  4. Real-ESRGAN ×4 na GPU lub CPU
  5. Wyostrzenie obrazu
  6. Zapis gotowego pliku

01 · Problem

Co trzeba było rozwiązać

Uruchomienie Real-ESRGAN to zwykle skrypty w terminalu i ręczna konfiguracja. Chciałem jedno okno: wybierasz zdjęcie, decydujesz, czy usunąć tło, i dostajesz ostry wynik 4×.

02 · Rozwiązanie

Jak to działa

Okno w CustomTkinter i wątek roboczy, który raportuje postęp przez kolejkę: opcjonalne wstępne zmniejszenie w OpenCV, usunięcie tła przez rembg (U²-Net), Real-ESRGAN x4 i na koniec maska wyostrzająca. Plik spec dla PyInstallera pakuje modele do samodzielnego .exe.

03 · Funkcje

Co potrafi

  • Powiększanie 4× modelem RealESRGAN_x4plus (RRDBNet, 23 bloki)
  • Opcjonalne usunięcie tła przez rembg przed powiększeniem
  • CUDA w połowicznej precyzji z kartą NVIDIA, a bez niej procesor
  • Okno nie zamarza: obróbka w osobnym wątku, status przez kolejkę
  • Podgląd zajętej pamięci karty i build do samodzielnego .exe

04 · Technologie

Zbudowane z

  • Python
  • PyTorch
  • Real-ESRGAN
  • rembg
  • OpenCV
  • CustomTkinter
Status
Ukończony
Kod
github.com/KacperBlok1/Upscale-bgremove-ai
Demo
Nie ma wersji online · uruchom lokalnie

05 · Wyzwania

Co było trudne

  1. Okno, które nie zamarza

    Powiększanie dużego zdjęcia trochę trwa. Robione w głównej pętli Tk zamroziłoby okno, więc pracę wykonuje osobny wątek i wrzuca statusy do kolejki, którą interfejs sprawdza co 150 ms.

  2. Jeden kod dla GPU i CPU

    Model jest tworzony dla dostępnego urządzenia i używa połowicznej precyzji tylko na CUDA, gdzie oszczędza pamięć; na procesorze zostaje pełna precyzja.

  3. Modele w jednym .exe

    Wagi modelu i folder U²-Net pakuje PyInstaller, a funkcja resource_path znajduje je zarówno przy uruchamianiu ze źródeł, jak i z rozpakowanego pliku wykonywalnego.

Wypróbuj

Uruchom lokalnie

Nie ma jeszcze wersji online. Kod i README są na GitHubie, a te polecenia uruchamiają projekt z głównego katalogu repozytorium.

terminal
$ pip install -r requirements.txt
# obok upscale.py wrzuć RealESRGAN_x4plus.pth
$ python upscale.py