MCPcopy
hub / github.com/upscayl/upscayl

github.com/upscayl/upscayl @v2.15.1 sqlite

repository ↗ · DeepWiki ↗ · release v2.15.1 ↗
183 symbols 624 edges 118 files 1 documented · 1%
README

# v2.15 is out! 🥳 Download Now ⬇️

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?
  • The CLI tool is called upscayl-ncnn.
  • 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?
  • More models can be taken from here: https://github.com/upscayl/custom-models

🎁 Donate

❤ Credits

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

Extension points exported contracts — how you extend this code

IElectronAPI (Interface)
(no doc)
renderer/renderer.d.ts
IProps (Interface)
(no doc)
renderer/components/sidebar/settings-tab/index.tsx
IClipboardFileParameters (Interface)
(no doc)
electron/commands/paste-image.ts
Window (Interface)
(no doc)
renderer/renderer.d.ts
IProps (Interface)
(no doc)
renderer/components/sidebar/upscayl-tab/upscayl-steps.tsx
CommandDialogProps (Interface)
(no doc)
renderer/components/ui/command.tsx
InputProps (Interface)
(no doc)
renderer/components/ui/input.tsx
State (Interface)
(no doc)
renderer/components/ui/use-toast.ts

Core symbols most depended-on inside this repo

logit
called by 41
electron/utils/logit.ts
logit
called by 35
renderer/components/hooks/use-logger.ts
cn
called by 30
renderer/lib/utils.ts
toast
called by 15
renderer/components/ui/use-toast.ts
resetImagePaths
called by 12
renderer/pages/index.tsx
getMainWindow
called by 12
electron/main-window.ts
useTranslation
called by 8
renderer/components/hooks/use-translation.ts
useLogger
called by 7
renderer/components/hooks/use-logger.ts

Shape

Function 165
Interface 9
Method 6
Class 3

Languages

TypeScript91%
Python9%

Modules by API surface

scripts/test.py17 symbols
renderer/components/main-content/index.tsx10 symbols
renderer/components/ui/use-toast.ts9 symbols
renderer/components/sidebar/settings-tab/index.tsx9 symbols
electron/utils/config-variables.ts7 symbols
electron/commands/double-upscayl.ts7 symbols
renderer/pages/index.tsx6 symbols
electron/utils/get-device-specs.ts4 symbols
electron/utils/get-arguments.ts4 symbols
electron/commands/paste-image.ts4 symbols
electron/commands/image-upscayl.ts4 symbols
electron/commands/batch-upscayl.ts4 symbols

Dependencies from manifests, versioned

@electron/notarize2.1.0 · 1×
@radix-ui/react-dialog1.0.5 · 1×
@radix-ui/react-popover1.0.7 · 1×
@radix-ui/react-scroll-area1.2.0 · 1×
@radix-ui/react-slot1.0.2 · 1×
@radix-ui/react-toast1.1.5 · 1×
@tailwindcss/typography0.5.10 · 1×
@types/node18.15.12 · 1×
@types/react18.0.37 · 1×
@types/react-dom18.0.11 · 1×
ajv6.12.6 · 1×
autoprefixer10.4.16 · 1×

For agents

$ claude mcp add upscayl \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact