Convert Figma logo to code with AI

upscayl logoupscayl

🆙 Upscayl - #1 Free and Open Source AI Image Upscaler for Linux, MacOS and Windows.

29,578
1,345
29,578
35

Top Related Projects

waifu2x converter ncnn version, runs fast on intel / amd / nvidia / apple-silicon GPU with vulkan

Video, Image and GIF upscale/enlarge(Super-Resolution) and Video frame interpolation. Achieved with Waifu2x, Real-ESRGAN, Real-CUGAN, RTX Video Super Resolution VSR, SRMD, RealSR, Anime4K, RIFE, IFRNet, CAIN, DAIN, and ACNet.

5,589

Quick Overview

Upscayl is an open-source AI image upscaler application that uses AI models to enhance and upscale images. It provides a user-friendly interface for improving image quality and resolution, making it accessible to both casual users and professionals.

Pros

  • Free and open-source alternative to paid image upscaling services
  • Cross-platform support (Windows, macOS, and Linux)
  • User-friendly interface with drag-and-drop functionality
  • Supports various AI models for different upscaling needs

Cons

  • May require significant system resources for processing large images
  • Limited customization options compared to some professional tools
  • Dependent on the quality and availability of AI models
  • Processing time can be longer for high-resolution images

Getting Started

To use Upscayl, follow these steps:

  1. Visit the Upscayl releases page on GitHub.
  2. Download the appropriate version for your operating system.
  3. Install the application following the instructions for your OS.
  4. Launch Upscayl and drag-and-drop an image onto the interface.
  5. Choose an AI model and upscaling settings.
  6. Click the "Upscale" button to process your image.
  7. Save the upscaled image to your desired location.

Note: Upscayl is not a code library, so there are no code examples or quick start instructions for developers. It's an end-user application for image upscaling.

Competitor Comparisons

waifu2x converter ncnn version, runs fast on intel / amd / nvidia / apple-silicon GPU with vulkan

Pros of waifu2x-ncnn-vulkan

  • Lightweight and efficient, utilizing Vulkan for GPU acceleration
  • Supports multiple upscaling models and noise reduction levels
  • Command-line interface allows for easy integration into scripts and workflows

Cons of waifu2x-ncnn-vulkan

  • Limited user interface, may be less accessible for non-technical users
  • Fewer built-in AI models compared to Upscayl
  • Lacks some advanced features like face refinement and custom model support

Code Comparison

waifu2x-ncnn-vulkan:

int waifu2x(const cv::Mat& inimage, cv::Mat& outimage, int noise, int scale, int tilesize_x, int tilesize_y, int prepadding, int gpu_id)
{
    ncnn::VulkanDevice* vkdev = ncnn::get_gpu_device(gpu_id);
    // ... (implementation details)
}

Upscayl:

async function upscale(input: string, output: string, options: UpscaleOptions): Promise<void> {
  const model = await loadModel(options.modelPath);
  const image = await loadImage(input);
  const upscaledImage = await model.upscale(image, options);
  await saveImage(output, upscaledImage);
}

The code snippets show different approaches: waifu2x-ncnn-vulkan uses C++ with direct GPU access, while Upscayl employs TypeScript with a higher-level abstraction for image upscaling.

Video, Image and GIF upscale/enlarge(Super-Resolution) and Video frame interpolation. Achieved with Waifu2x, Real-ESRGAN, Real-CUGAN, RTX Video Super Resolution VSR, SRMD, RealSR, Anime4K, RIFE, IFRNet, CAIN, DAIN, and ACNet.

Pros of Waifu2x-Extension-GUI

  • Supports multiple AI models (Waifu2x, RealSR, SRMD, etc.)
  • Offers video upscaling in addition to images
  • Provides more advanced settings and customization options

Cons of Waifu2x-Extension-GUI

  • More complex user interface, potentially less user-friendly
  • Requires more system resources due to multiple AI models
  • Longer processing times for some operations

Code Comparison

While both projects are primarily focused on providing graphical interfaces for image upscaling, their codebases differ significantly. Upscayl is built using Electron and React, while Waifu2x-Extension-GUI is developed in C++ with Qt.

Upscayl (JavaScript/React):

const handleUpscale = async () => {
  setIsUpscaling(true);
  await upscale(inputImage, outputPath, scale, model);
  setIsUpscaling(false);
};

Waifu2x-Extension-GUI (C++/Qt):

void MainWindow::on_pushButton_Start_clicked()
{
    ui->pushButton_Start->setEnabled(0);
    Waifu2x_NCNN_Vulkan_Process();
    ui->pushButton_Start->setEnabled(1);
}

Both snippets show basic event handling for initiating the upscaling process, but they reflect the different technologies and architectures used in each project.

5,589

Pros of ailab

  • More comprehensive AI research focus, covering multiple domains
  • Larger community and backing from a major tech company (Bilibili)
  • Potentially more frequent updates and contributions

Cons of ailab

  • Less specialized in image upscaling compared to Upscayl
  • May have a steeper learning curve for users focused solely on image enhancement
  • Potentially more complex codebase due to broader scope

Code Comparison

While a direct code comparison is challenging due to the different focuses of the projects, here's a brief example of how they might differ in approach:

Upscayl (JavaScript):

const upscale = async (image, scale) => {
  const model = await loadModel('upscayl-model');
  return model.process(image, scale);
};

ailab (Python):

def upscale_image(image, scale):
    model = load_model('ailab_upscaler')
    return model.enhance(image, scale_factor=scale)

Both projects likely use machine learning models for image upscaling, but Upscayl is more focused on this specific task, while ailab may offer a broader range of AI-related functionalities.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

v2.11 is out! 🥳 Download v2.11! ⬇️

Frame 111



🆙 Upscayl

Free and Open Source AI Image Upscaler

Upscayl lets you enlarge and enhance low-resolution images using advanced AI algorithms. Enlarge images without losing quality. It's almost like magic! 🎩🪄

https://upscayl.org

Contents

👨‍💻 Installation

[!IMPORTANT] You'll need a Vulkan compatible GPU (Graphics Card) to upscale images. Many iGPUs (integrated graphics) do not work but, no harm in trying :)

🐧 Linux

Upscayl should be available on the software listings of most Linux operating systems. Your distro's Store app might also support the Flatpak or Snap version.

💼 Portable Method

  1. Go to releases section or our official website.
  2. Download the upscayl-x.x.x-linux.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 choose to install using other formats like RPM (Fedora), DEB (Debian/Ubuntu based), and ZIP (Any x86 Linux OS).

🍎 macOS

(MacOS 12 and later)

  1. Go to releases section or our official website.
  2. Download the upscayl-x.x.x-mac.dmg file.
  3. Double click dmg, drag Upscayl icon into Applications folder.
  4. Open Finder, click 'Applications' tab in the left sidebar. Find Upscayl and right click on it. Select 'Open'.
  5. In the window that appears, press 'Open' yet again.

🍺 Homebrew

brew install --cask upscayl

🐌 Windows

(Windows 10 and later)

  1. Go to releases section or our official website.
  2. Download the upscayl-x.x.x-win.exe file.
  3. Double click exe file to launch.
  4. If you get a SmartScreen warning - click 'More Info' and then 'Run Anyway' OR press 'YES' on the unverified publisher dialog.
  5. Follow the installation steps.
  6. Profit!

👨‍🏫 Documentation - Tutorials and Guides

Check out our Documentation here.

⚖️ Results

Check out Upscayl before/after comparisons here.

🤫 Roadmap

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

  • Fix bugs
  • Make the whole world use FOSS (WIP 🚧)

🛠 Development

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

🏃 Running

[!NOTE] If you are not willing to install git, you can skip the first line, download the source zip and extract it to upscayl instead and carry on with the rest of the instructions.

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 start

🏗️ Building

# INSTALL DEPENDENCIES
npm install

# PACKAGE THE APP
npm run dist

# PUBLISH THE APP, MAKE SURE TO ADD GH_TOKEN= IN SHELL
# ONLY DO THIS IF YOU'RE A MAINTAINER
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 Vulkan architecture to achieve this. Our backend is fully open-source under the AGPLv3 license.
  • I don't see a drastic change in my upscaled image. Why is that?
    • Upscayl can enhance low resolution images and images that are pixelated but it cannot de-blur or do focus adjustment on your image. If your image is out-of-focus or totally blurred, Upscayl is not the right tool for it. Please use images that are similar to the examples we've given here.
  • Is there a CLI available?
  • 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. But hey, no harm in trying ;)
      • @Wyrdgirn has contributed a workaround for Windows and Linux in #390! Nobody knows how to manipulate the macOS and Haiku frameworks...
  • I stopped the magic Batch Upscayl and my images haven't been processed, compressed, or are in the wrong scale!
    • When a model doesn't support an action, Upscayl will finish upscayling all the images first before post-processing them. What this means is that you should simply wait for the process to finish.
  • How can I contribute?
    • You can report issues, fix code and add features by submitting PRs, or donate! 😊
  • What's the GPU ID for?
    • It is for selecting which GPU to use. The specific procedure is detailed in the Wiki.
      • Note that for Windows systems, if Upscayl is not set to performance mode, the system may override this setting.
  • Where do I find more models?

🎁 Donate

❤ Credits

Copyright © 2023 - Upscayl
By Nayam Amarshe and TGS963
Made with 🖱 & ⌨