Metadata-Version: 2.4
Name: linux-rt-upscaler
Version: 0.1.0
Summary: Real-time AI upscaler for any Linux window using CuNNy
Author-email: Mauricio Valentín Barón Salinas <baronsmv@gmail.com>
License: GPL3.0
Project-URL: Homepage, https://github.com/baronsmv/linux-rt-upscaler
Project-URL: Repository, https://github.com/baronsmv/linux-rt-upscaler.git
Project-URL: BugTracker, https://github.com/baronsmv/linux-rt-upscaler/issues
Keywords: upscaler,ai,cunny,linux,x11,vulkan
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Multimedia :: Graphics :: Capture
Classifier: Topic :: System :: Hardware :: Hardware Drivers
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: compushady
Requires-Dist: pyside6
Requires-Dist: numpy
Requires-Dist: xlib

# Real‑Time Upscaler for Linux

A real‑time AI upscaler for any application window on GNU/Linux. Uses **CuNNy‑veryfast** neural networks to perform 2× upscaling, with full‑screen stretching and optional click/motion forwarding.

## Based on

Based on [RealTimeSuperResolutionScreenUpscalerforLinux](https://github.com/L65536/RealTimeSuperResolutionScreenUpscalerforLinux) by L65536, with the following differences:

- **Full‑screen scaling** – The upscaled image now fills the monitor, applying a second scaling layer while preserving aspect ratio.
- **Click/motion forwarding** – With the `-m` flag, mouse clicks and motion are forwarded to the original window with proper coordinate transformation.

## Features

- **AI‑Powered Upscaling** – Uses CuNNy‑veryfast (4‑pass) neural network for high‑quality 2× upscaling.
- **Any Window** – Attach to an existing window or launch a new program.
- **Full‑Screen Output** – Stretch the upscaled image to fill your monitor (aspect‑ratio preserved, black bars).
- **Click/Motion Forwarding** (`-m`) – Click and move the mouse on the upscaled image as if it were the real window.
- **Opacity Control** – Overlay dims when mouse leaves the source window (optional, disabled with `-m`).
- **Hardware Accelerated** – GPU‑based compute via Compushady (Vulkan/Direct3D 12).
- **Low Overhead** – Minimal performance impact; scaling pass uses hardware bilinear filtering.

## Requirements

- GNU/Linux with X11 (Wayland not supported)
- Vulkan-capable GPU from any vendor (NVIDIA, AMD, Intel)
- Vulkan drivers (`libvulkan-dev` on Debian/Ubuntu)
- X11 development libraries (`libx11-dev`)
- Python 3.8 or newer

## Installation

1. **Clone the repository**

    ```
    git clone https://github.com/baronsmv/linux-rt-upscaler.git
    cd linux-rt-upscaler
    ```

2. **Install system dependencies** (Debian/Ubuntu)

    ```bash
    sudo apt install libvulkan-dev libx11-dev
    ```

3. **Install Python packages**

    ```bash
    pip install -r requirements.txt
    ```

## Usage

```bash
# Upscale the currently active window
python main.py

# Enable click/motion forwarding (mouse interacts with upscaled window)
python main.py -m
```

## Acknowledgments

- **[L65536](https://github.com/L65536)** – For the [RealTimeSuperResolutionScreenUpscalerforLinux](https://github.com/L65536/RealTimeSuperResolutionScreenUpscalerforLinux) project, which provided the foundational scripts and CuNNy integration that this project builds upon
- **CuNNy** – Neural network upscaling models
- **Compushady** – Python GPU compute library
- **PySide6** – Qt bindings for the overlay
- **python‑xlib** – X11 client library
