Projekt · 06
Status: UkończonyAI 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
- Wczytanie zdjęcia
- Zmiana rozmiaru w OpenCV
- Opcjonalne usunięcie tła
- Real-ESRGAN ×4 na GPU lub CPU
- Wyostrzenie obrazu
- 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
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.
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.
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.
$ pip install -r requirements.txt
# obok upscale.py wrzuć RealESRGAN_x4plus.pth
$ python upscale.py