Skip to content

Repository files navigation

icon

Real-Time Upscaler for Linux

PyPI version Python versions License: GPLv3

A real-time SRCNN upscaler for any X-Window (X11 or XWayland) on GNU/Linux. It uses CuNNy neural networks to perform 2x (or 4x) upscaling to full screen while preserving aspect ratio. Mouse clicks and motion are automatically forwarded to the original window.

Results at 400% magnification

Features

  • Neural-Network upscaling using SRCNNs trained for high-quality upscaling of visual novels and illustrations.
  • Model selection from 9 variants with variable quality/performance trade-offs.
  • Hardware accelerated using Vulkan compute.
  • Tile-Based processing that upscales only the frame regions that change, reducing GPU load for mostly static content.
  • Customizable output geometry: scaling mode (fit, stretch, cover), offset, crop and zoom.
  • Input forwarding as if interacting directly with the original window.

Requirements

  • GNU/Linux (X11 or Wayland with XWayland)
  • Vulkan-capable GPU (NVIDIA, AMD, Intel)
  • Python 3.10 or newer
  • Qt dependencies (see Dependencies).

Installation

pipx install linux-rt-upscaler

For detailed installation instructions, including how to install pipx, see the Installation Guide.

After installation, the upscale and upscale-gui commands will be available globally. You can also create a desktop entry of the GUI for easy access.

Guides and Docs

Roadmap

  • Translation infrastructure and community-contributed translations
  • GUI Profiles operations (drag & drop, duplicate)
  • GUI System Tray
  • Complete GUI Style settings (font size, spacing, etc.)
  • More SRCNN models (FSRCNNX planned)
  • Native Wayland capture prototype

Known Issues

Mouse forwarding may not work with Wine, Proton <10 and other applications

Synthetic mouse events (clicks, motion, wheel) sent by the overlay are ignored by:

  • Wine and Proton versions older than 10.0 (GE-Proton10 + UMU works).
  • Some native applications like Firefox.

For more details, see issue #7.

Acknowledgments

This project stands on the shoulders of several open-source works, mantained by amazing people:

  • L65536, for the original RealTimeSuperResolutionScreenUpscalerforLinux, which demonstrated the feasibility of real-time SRCNN upscaling on Linux and served as a proof-of-concept for this project.
  • funnyplanter, for the incredible CuNNy neural network upscaling models.
  • Compushady, which served as an invaluable Vulkan foundation during early development.
  • PySide6, the Qt binding that powers the entire graphical interface and overlay window.
  • xcffib, the XCB binding used for window management, monitor querying and event forwarding.
  • Pillow, the Python Imaging Library, used for saving screenshots and rendering OSD messages.
  • PyYAML, the YAML parser used for configuration file operations.

Releases

Packages

Used by

Contributors

Languages