/upscayl

πŸ†™ Upscayl - Free and Open Source AI Image Upscaler for Linux, MacOS and Windows built with Linux-First philosophy.

Primary LanguageTypeScriptGNU Affero General Public License v3.0AGPL-3.0

v2.5 is in development. Check Progress

Github All Releases

Free and Open Source AI Image Upscaler

884shots_so

Upscayl is a cross-platform application built with the Linux-first philosophy. This means that we prioritize Linux builds over others but that doesn't mean we'll break things for other OSes :)

NOTE: You'll need a Vulkan compatible GPU to upscale images. Many CPU and iGPUs do not work but no harm in trying.

Installation πŸ‘¨β€πŸ’»

Linux 🐧

  1. Go to releases section

  2. Download the .AppImage file.

  3. Right Click AppImage -> Go to Permissions tab -> Check allow file to execute and then double click the file to run Upscayl.

You can also download the flatpak version and double click the flatpak file to install via Store but wait for the full release, we'll be pushing it to Flathub for easy access.

MacOS 🍎

  1. Go to releases section

  2. Download the .dmg file.

  3. Double click dmg, drag Upscayl icon into Applications folder.

If you encounter an error with opening the application, try Ctrl+Clicking/Right-clicking the app and clicking open. In the popup that opens, also click open.

Windows 🐌

  1. Go to releases section

  2. Download the .exe file.

  3. Double click exe file, wait for installation, profit.

Medium Resolution Images (300-400 pixels wide):

image image

Low Resolution Images (150 pixels wide):

image image

Super Low Resolution Images (75 pixels wide):

UPSCALED TWICE

image

Roadmap 🀫

You can track all the progress here: https://github.com/orgs/upscayl/projects/1

  • Allow custom models
  • Logging
  • Fix bugs
  • Make the whole world use FOSS (WIP 🚧)

Development πŸ› 

I recommend using Volta: https://volta.sh for using Node.js. Download and install volta, then do: volta install node.

# FOR EVERYONE
git clone https://github.com/upscayl/upscayl
cd upscayl

# INSTALL DEPENDENCIES
npm install

# RUN THE DEVELOPMENT SERVER LOCALLY
## YOUR LOGS WILL NOW APPEAR IN THE TERMINAL
npm run dev

# FOR DEVS
## PACKAGE THE APP
npm run dist

## PUBLISH THE APP, MAKE SURE TO ADD GH_TOKEN= IN SHELL
npm run publish-app

FAQ πŸ€“

  • How does Upscayl work?
    • Upscayl uses AI models to enhance your images by guessing what the details could be. It uses Real-ESRGAN (and more in the future) model to achieve this.
  • Is there a CLI available?
    • The CLI tool is called real-esrgan-ncnn-vulkan and it's available on the Real-ESRGAN repository.
  • Do I need a GPU for this to work?
    • Yes, unfortunately. NCNN Vulkan requires a Vulkan compatible GPU. Upscayl won't work with most iGPUs or CPUs.
  • Why does batch upscaling output JPGs instead of PNGs?
    • This is an issue with REAL-ERSGAN currently tracked here.
  • How can I contribute?
    • You can fix code, add features by submitting PRs, report issues or donate :)
  • What's the GPU ID for?
    • To find your GPU ID, you first need to launch Upscayl using the commandline and Upscayl an image. In the console output, you can see the GPUs that have been detected: image As you can notice, 0 is the AMD iGPU, 1 is the Nvidia GPU, and 2 is the llvmpipe. If I set my GPU ID to 0, it'll always upscayl images with AMD iGPU (CPU) instead of dedicated GPU.
  • You are not fully open source!!😑
    • We are, we're using completely free and open source tech. We do ship a binary but that's because not including it would kill the entire purpose of the project. If you want to deal with all those PyTorch, NCNN, and Python errors, you're more than welcome to compile your own binary using the code provided by Real-ESRGAN. The binary is pre-compiled for convenience, if you do not trust it, then you can compile your own since everything is free and open source here :)

Upscayl uses Real-ESRGAN-ncnn-vulkan binaries to upscale images. More models and algorithms will come soon.

Donate

Credits ❀

Copyright Β© 2022 - Upscayl
By Nayam Amarshe and TGS963
Made with πŸ–± & ⌨