Qualityscaler is a Windows app powered by AI to enhance, upscale and de-noise photographs and videos.
- https://github.com/Djdefrag/RealScaler / RealScaler - image/video AI upscaler (Real-ESRGAN)
- https://github.com/Djdefrag/FluidFrames.RIFE / FluidFrames.RIFE - video AI frame generation
- BSRGAN - https://github.com/cszn/BSRGAN
- Real-ESRGAN - https://github.com/xinntao/Real-ESRGAN
- https://80.lv/articles/80-level-digest-great-ai-powered-tools-for-upscaling-images/
- https://timesavervfx.com/ai-upscale/
QualityScaler is completely written in Python, from backend to frontend. External packages are:
- AI -> torch / onnxruntime-directml
- GUI -> customtkinter
- Image/video -> OpenCV / moviepy
- Packaging -> nuitka
Prerequisites.
- Python installed on your pc, you can download it from here (https://www.python.org/downloads/release/python-3119/)
- VSCode installed on your pc, you can download it from here (https://code.visualstudio.com/)
Getting started.
- First of all, you need to download the project on your PC (Green button Code > Download ZIP)
- Extract the project directory from the .zip
- Now you need to download the AI models (github won't let me upload them directly because they are too big)
- In "AI-onnx" folder, there is the link to download the AI models, download the .zip and extract the files in AI-onnx directory
- Open the project with VSCode (just Drag&Drop the project directory on VSCode)
- Click on QualityScaler.py from left bar (VSCode will ask you to install some plugins, go ahead)
- Now, you need to install dependencies. In VSCode there is the "Terminal" panel, click there and execute the command "pip install -r requirements"
- Close VSCode and re-open it (this will refresh all the dependecies installed)
- Just click on the "Play button" in the upper right corner of VSCode
- Now the app should work
- Windows 11 / Windows 10
- RAM >= 8Gb
- Any Directx12 compatible GPU with >= 4GB VRAM
- Easy to use GUI
- Images and Videos upscale
- Multiple AI models
- Automatic image tiling and merging to avoid gpu VRAM limitation
- Resize image/video before AI upscaling
- Interpolation between the original and upscaled image/video
- Compatible images - png, jpeg, bmp, webp, tif
- Compatible video - mp4, wemb, gif, mkv, flv, avi, mov, qt
- 1.X versions
- Switch to Pytorch-directml to support all Directx12 compatible gpu (AMD, Intel, Nvidia)
- New GUI with Windows 11 style
- Include audio for upscaled video
- Optimizing video frame resize and extraction speed
- Multi GPU support (for pc with double GPU, integrated + dedicated)
- Python 3.10 (expecting ~10% more performance)
- 2.X versions
- New, completely redesigned graphical interface based on @customtkinter
- Upscaling images and videos at once (currently it is possible to upscale images or single video)
- Upscale multiple videos at once
- Choose upscaled video extension
- Interpolation between the original and upscaled image/video
- More Interpolation levels (Low, Medium, High)
- Show the remaining time to complete video upscaling
- Support for SRVGGNetCompact AI architecture
- Metadata extraction and application from original file to upscaled file (via exiftool)
- Support for SAFMN AI architecture
- 3.X versions
- New AI engine powered by onnxruntime-directml (https://pypi.org/project/onnxruntime-directml/)
- Python 3.11 (~10% performance improvements)
- Display images/videos upscaled resolution in the GUI
- FFMPEG 7 (latest release)
- Video multi-threading AI upscale
- Python 3.12
- Video upscaling pause and restart