Skip to content

Repository files navigation

Upscalify AI

A free, on-device image & video upscaler for Mac — real detail, not just bigger.


"Rebuild the detail, don't just smooth the blur."

Upscalify is a native Mac app that turns a low-resolution or noisy file into a sharper, higher-resolution one — reconstructing real detail rather than stretching pixels. Everything runs on your own machine; nothing is ever uploaded.


🌟 What it is

  • A desktop app you install, not a web service. You download it, run it, and use it locally.
  • Real reconstruction with Real-ESRGAN — the same models behind Upscayl.
  • Images and video — upscale photos with a before/after slider, and video with the original audio kept.
  • Free and private — no account, no billing, no upload. Works offline after a one-time setup.

✨ Why Upscalify?

Most "upscalers" just stretch pixels and sharpen the noise. Upscalify runs the same class of super-resolution models pro tools use — it denoises and reconstructs real detail. It's a small, focused app that does one thing well.


🖥️ Platform support

Platform Status
macOS (Apple Silicon, M1 and later) ✅ Supported
macOS (Intel) ⏳ Not yet — the current build is Apple Silicon only
Windows ⏳ Not yet — the app is built on Electron (cross-platform), but currently ships macOS-only binaries and installer. Windows support is planned.
Linux ⏳ Not yet

🚀 Install

  1. Download the .dmg and drag Upscalify into your Applications folder.
  2. First launch: it's a new, unsigned build, so right-click the app → Open (you only do this once).
  3. One-time setup: on first run it downloads the upscaling engine (~42 MB). After that it works completely offline.

🎯 Features

  • Fast (2×) and High quality (4×) modes — exposed by outcome, never by model name.
  • Before / after slider — drag right to reveal the upscaled result, left for the original.
  • Video upscaling — a quick, temporally stable pass that preserves the original audio.
  • Drag & drop or browse — JPG · PNG · WEBP · BMP · TIFF · MP4 · MOV · WEBM.
  • On-device — your files never leave your machine.

🤖 How it works

  • Images → Real-ESRGAN (realesrgan-ncnn-vulkan, GPU-accelerated via Metal). On first launch the app downloads the upstream BSD binary and the Real-ESRGAN x4plus weights (upscayl-lite-4x / upscayl-standard-4x) from the open-source Upscayl repo — the same models Upscayl uses, so results match. Nothing is redistributed in the app itself.
  • Video → ffmpeg — a deterministic Lanczos scale + unsharp pass that is quick, temporally stable, and keeps audio. It needs ffmpeg on the machine (brew install ffmpeg). This is the same non-CUDA path the website uses.
  • SeedVR2 (video AI model) is intentionally not bundled — it requires an NVIDIA CUDA GPU and cannot run on macOS.

🔐 Privacy — on-device by design

There is no server in the loop. Images and video are processed locally using your GPU, and the app works offline after the one-time engine download. No accounts, no telemetry, no upload.


📁 Project structure

Upscalify/
├── desktop/            # The Mac app (Electron)
│   ├── main.js         # Electron main: windows + IPC (input, run, save)
│   ├── preload.js      # Safe IPC bridge (contextIsolation)
│   ├── engine.js       # First-run download of the Real-ESRGAN binary + models
│   ├── upscale.js      # Runs Real-ESRGAN for images
│   ├── video.js        # ffmpeg Lanczos+unsharp video path (keeps audio)
│   ├── build/          # App icon (.icns / .png)
│   └── renderer/       # UI (index.html, styles.css, renderer.js)
│
├── site/               # The landing website (Next.js) — deploys to Vercel
│   └── app/            # Homepage (download landing), SEO/AEO/GEO, sitemap, robots
│
└── (root Next.js app)  # The original in-browser tool + inference seam (kept for reference)

🛠️ Develop

Desktop app

cd desktop
npm install
npm start          # runs the app
npm run dist       # builds desktop/dist/Upscalify-<version>.dmg

Website

cd site
npm install
npm run dev        # http://localhost:3000

🌐 Deployment

The app (.dmg) — build it, then publish a GitHub Release:

cd desktop && npm run dist
# then: GitHub → Releases → Draft a new release → attach the .dmg → Publish

The website's download buttons point to releases/latest, so a published release makes them live. The build is unsigned to start; for a clean double-click (no "unidentified developer" prompt), sign + notarize with an Apple Developer account.

The website — deploy site/ to Vercel:

  1. Import the repo in Vercel.
  2. Set Root Directory to site.
  3. Deploy. Framework auto-detects as Next.js; no env vars needed.

☕️ Support

If Upscalify saved you time, you can support the work:


Made by Zaki Sheriff · The Atom

Releases

Packages

Contributors

Languages