Open-source project
Djdefrag/RealScaler avatar
Djdefrag/RealScaler

RealScaler is one Python file, a pytorch entry it no longer needs, and a Windows-only DirectML path

RealScaler - image/video AI upscaler app (Real-ESRGAN)

428 stars32 forksPythonMIT

At a glance

What is it?
RealScaler wraps Real-ESRGAN models in a Windows desktop app for image and video upscaling, with tiling for limited VRAM, interpolation, stop and resume, and hardware video encoding. The setup path is manual, the dependency list has drifted, and the model weights are not in the repository.
Who is it for?
RealScaler suits a Windows user with a DirectX 12 card who wants local upscaling without a cloud service, and suits nobody else, since the source route assumes VSCode and there is no documented command line entry point. Before committing, confirm your GPU clears the 4GB VRAM floor, obtain the models and ffmpeg yourself since they are not vendored, and expect the pytorch and moviepy references in the dependency list to be stale.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 162 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 5, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The whole application is one file and there are no tests

The top-level tree is seven entries: an AI-onnx folder, an Assets folder, two license files, the README, requirements.txt and RealScaler.py. The README states that the app is completely written in Python from backend to frontend, and the tree confirms the claim in the bluntest way possible, because there is exactly one Python file in the project. No package directory, no test directory, no CI configuration.

Two license files sit side by side at the root, LICENSE and LICENSE.txt, with the project licensed MIT. Nothing explains which one is authoritative or whether they are identical, and a downstream packager has to pick one.

The visible README copy is also partially broken as HTML. The centered block contains a link to the itch.io page wrapped around a button element with no text and no image, plus two closing anchor tags with no matching opening tag, and a second centered block that is only whitespace and a stray closing anchor. The images those anchors were meant to wrap are gone, so the badge row renders as empty space.

Distribution lives outside version control. No homepage is recorded for the project, and the README links instead to an itch.io page for the developer, jangystudio.itch.io/realesrscaler.

The dependency list names pytorch and moviepy, requirements.txt has neither

The section describing how the app is built lists pytorch, onnx, onnxconverter-common, onnxruntime-directml, customtkinter, openCV, moviepy and pyInstaller as the stack. The actual requirements file is much shorter and pins only two packages:

code
onnxruntime-directml==1.24.4
numpy
customtkinter
opencv-python-headless
Pillow
natsort
psutil
pyinstaller==6.19.0

So pytorch, onnx, onnxconverter-common and moviepy appear in the prose and not in the install list. openCV is covered indirectly by opencv-python-headless. The pytorch entry has a documented history: the first major version switched to pytorch-directml to reach every DirectX 12 GPU from AMD, Intel and Nvidia, and the third major version replaced that with a new engine powered by onnxruntime-directml. The list was never updated to match.

moviepy has no such explanation, and it matters because video work is not optional in this app. A third mismatch is exiftool: metadata extraction and application from the original file to the upscaled file is credited to exiftool, which appears in neither the requirements file nor the stated prerequisites. That is an external binary dependency declared in prose only.

Installation runs through VSCode and asks you to restart the editor

There is no installer and no documented command line. The stated route is to download the project as a ZIP, extract it, open the project directory in VSCode by dragging it onto the window, click RealScaler.py in the sidebar, and let VSCode offer to install Python plugins. Dependencies are installed by opening the Terminal panel and running pip install -r requirements.txt, after which the instructions say to close VSCode and open it again so the new dependencies are picked up. Launching is then the Play button in the upper right corner.

That sequence has consequences for anyone automating a setup. A restart of the editor is part of the install, and the run step is an IDE action rather than a command, so an unattended or scripted installation has no documented path. VSCode itself is listed as a prerequisite alongside Python, which makes an editor a hard requirement of the official procedure rather than a convenience.

Prerequisites are four items: Python installed, VSCode installed, the AI models downloaded, and FFMPEG.exe downloaded as a release build essentials archive. Note that pyinstaller is pinned in the requirements file yet no build step is documented anywhere, so the dependency that exists to produce a distributable executable has no instructions attached to it.

The models and ffmpeg live outside the repository, with no versions attached

The AI-onnx directory is in the tree but the weights are not. The instructions say to extract the model files into /AI-onnx, and the download link is a GoFile share rather than a release asset, a package index, or a model host with versioned artifacts. Nothing in the setup names which model revision you are installing, and no checksum is given.

The same pattern applies to ffmpeg. FFMPEG.exe is fetched from a Windows builds site, specifically the release build essentials archive, and extracted into the /Assets folder. A later roadmap entry notes that ffmpeg was updated to version 7.x, and another credits ffmpeg for video frame extraction being ten times faster, but the setup page names no version, so a fresh install can land on a different ffmpeg than the one the roadmap describes.

This sits awkwardly next to the feature list, which advertises privacy as no internet connection required and everything on your PC. The steady state is local, but the first run needs two manual downloads from third-party hosts, and the model share is a link whose contents can change without a repository change.

A 4GB VRAM floor narrows the GPU claim made two versions earlier

The stated requirements are Windows 11 or Windows 10, at least 8GB of RAM, and any DirectX 12 compatible GPU with at least 4GB VRAM. That last clause is in tension with the promise from the first major version that switching to pytorch-directml would support all DirectX 12 compatible GPUs from AMD, Intel and Nvidia. Adding a 4GB VRAM requirement excludes a large share of the integrated GPUs that the vendor-neutral claim was meant to cover, and nothing in the documentation discusses the trade.

The runtime engine is onnxruntime-directml, pinned to version 1.24.4, which matches the switch away from pytorch. A version-level entry for the third major version also records that user settings are saved for AI model, GPU and CPU among others, which implies a CPU option in the interface. The requirements section never explains what CPU mode means here, whether it is supported for upscaling, or how it is selected, and the 4GB floor gives no hint that a machine without a qualifying GPU is in scope at all.

For video the app also claims hardware accelerated encoding through nvenc, amf or qsv, three vendor-specific paths listed without stating which is chosen automatically or what happens on a GPU that supports none of them.

The two example timings differ by a factor of three with nothing to compare them on

The examples section presents two upscaled videos. One is labelled RealESRGANx4 and described as upscaled in 3 minutes and 23 seconds. The other is labelled RealESR_Gx4 and described as upscaled in 57 seconds. Neither entry states the source resolution, the duration of the clip, the GPU, the scale factor, or the tiling settings, so the two numbers cannot be turned into a comparison or a per-frame rate.

The roadmap repeats the pattern elsewhere: ffmpeg frame extraction is credited with being ten times faster, and the move to Python 3.10 is annotated as expecting about ten percent more performance, without a measurement behind either. The two Python upgrade entries for 3.11 and 3.12 say performance improvements and nothing more. The pin in the requirements file on onnxruntime-directml 1.24.4 is the only precisely stated version in the whole dependency set.

Alongside the claims sit real mechanisms worth checking against your own files. Automatic image tiling exists to avoid GPU VRAM limits, so a large image is processed in pieces and the seam behavior is what you would want to inspect. Interpolation blends the original with the upscaled result at Low, Medium and High levels, which is a different operation from upscaling. Video upscaling supports stop and resume, and multi-threading is applied per frame. The third major version added SRVGGNetCompact architecture support, and the second added remaining-time display for video.

Version numbers jump from 4.7 to 2026.3 with an unfinished roadmap line

The release history reads 4.1 in March 2025, 4.7 in October 2025, and 2026.3 on 2026-04-26, which is the same date as the most recent push. The numbering scheme changes mid-list, so a version comparison tool that sorts these numerically has to handle a year-based scheme sitting on top of a dotted one.

The roadmap inside the README follows the same seam. It is organized as 1.X, 2.X, 3.X, 4.X and then a 2026.X line, and every entry is checked except two: the 2026.X parent line itself is unchecked, and TTA upscale mode is unchecked beneath it, while implementing new AI models and app interface percent scaling are both checked. TTA is the only unimplemented capability named anywhere in the project, and it sits inside the one roadmap group that is still open.

The 2026.3 release title is simply RealScaler 2026.3 with no summary, unlike the two previous ones, which are titled for their contents. Two sibling projects by the same author are cross-linked for readers who want a different shape of tool: QualityScaler, another image and video upscaler app, and FluidFrames, a video AI interpolation app that overlaps directly with the interpolation feature described above. The upstream model project, Real-ESRGAN, is credited as the source of the models.

Editorial conclusion

RealScaler suits a Windows user with a DirectX 12 card who wants local upscaling without a cloud service, and suits nobody else, since the source route assumes VSCode and there is no documented command line entry point. Before committing, confirm your GPU clears the 4GB VRAM floor, obtain the models and ffmpeg yourself since they are not vendored, and expect the pytorch and moviepy references in the dependency list to be stale.

Frequently asked questions

What operating system and hardware does RealScaler require?

It requires Windows 11 or Windows 10, at least 8GB of RAM, and any DirectX 12 compatible GPU with at least 4GB of VRAM, with inference running through onnxruntime-directml pinned at version 1.24.4.

How do you install RealScaler and its AI models?

Download the project as a ZIP, extract the AI models into the /AI-onnx folder, extract FFMPEG.exe into /Assets, open the project in VSCode, and run pip install -r requirements.txt in the terminal panel before restarting the editor and launching with the Play button.

Does RealScaler work without an internet connection?

After setup it is advertised as needing no internet connection because everything runs on your PC, but the initial install requires downloading the AI models from a GoFile share and FFMPEG.exe from a separate Windows builds archive, neither of which is vendored in the repository.

What can RealScaler upscale and what does tiling do?

It handles images in jpg, png, tif, bmp, webp and heic plus video in mp4, wemb, mkv, flv, gif, avi, mov, mpg, qt and 3gp. Automatic image tiling exists to avoid GPU VRAM limitations, and interpolation blends the original file with the upscaled result at Low, Medium and High levels.

Is pytorch still a dependency of RealScaler?

The prose dependency list still names pytorch, onnx, onnxconverter-common and moviepy, but requirements.txt contains none of them. The pytorch-directml engine was replaced by onnxruntime-directml in the 3.X line, and the list was never updated.

What is the latest RealScaler release and when was the code last pushed?

The most recent release is 2026.3 dated 2026-04-26, following 4.7 in October 2025 and 4.1 in March 2025. The last push to the repository is also 2026-04-26, and the repository is not archived.

Official sources

  1. Djdefrag/RealScaler on GitHub
  2. Issues
  3. License: MIT
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/djdefrag-realscaler.svg)](https://hysenlabs.com/projects/djdefrag-realscaler)