Localstudio
Localstudio
FeaturedAn open-source desktop app for image and video optimization with on-device AI — compression, format conversion, 2x/4x upscaling, and background removal that never leave your machine.
Gallery
Overview
LocalStudio — Your Private Studio for Images and Video
LocalStudio is an open-source desktop app that compresses images, converts their formats, upscales them with on-device AI, removes backgrounds, and does exactly the same for video. Nothing is uploaded and nothing queues on someone else's server — every byte is processed on your own machine. Version 0.3.0 ships today for Windows, with macOS and Linux builds on the way.
No uploads. No accounts. No waiting for someone else's GPU.
What It Does
Images
- Compress — PNG, JPG, WebP, BMP, GIF, TIFF, and AVIF, one file or a whole batch, with adjustable quality and a concurrency ceiling you control
- Convert — between JPG, PNG, and WebP
- Upscale — 2x or 4x with an ONNX model that runs on your own CPU
- Remove backgrounds — the Bria RMBG 1.4 ONNX model, running locally
Video
- Compress — MP4, MOV, AVI, MKV, WebM, FLV, WMV, M4V, and 3GP with five quality presets, from Ultra Fast (CRF 23) to Very Slow (CRF 18)
- Convert — to MP4, WebM, MOV, GIF, AVI, MKV, FLV, WMV, M4V, or 3GP
- Remove backgrounds — the same AI model applied frame by frame
- Hardware encoding — NVENC, QSV, AMF, and VideoToolbox are detected and used when available
Built for Batches
The 0.3.0 release rebuilt processing around a single job pipeline, so a batch of hundreds of files stays predictable:
- Live progress per item — every file reports its own status and progress bar
- Tunable job limits — separate ceilings for image and video jobs, so a long batch does not freeze the machine
- Cancellation — a running batch can be stopped with one click, for a single file or all of them
- Notifications — a notification centre records what finished, what failed, and when
Your Library, Your Data
Imports are indexed in a local SQLite database, and it does a lot more than keep count:
- Duplicate detection: files are hashed with SHA-256 (full hash up to 64 MB, a head-and-tail fingerprint above that), so the same photo under two names is recognised as one
- Search, filters, and sorting: find any import by name, format, size, or date
- Outputs page: everything the app generated in one place, with the originals left untouched
- Read-only database viewer: inspect the tables and row counts without opening a SQL client
- Health and cleanup: an orphan scan finds rows whose files are gone and files whose rows are gone, then reclaims the wasted space
- Activity log: the in-app log viewer shows what the backend actually did
- Auto-update: the built-in updater pulls new releases from GitHub when you ask it to
A 7 MB Installer
The v0.3.0 installer is about 7.5 MB (.exe) or 14 MB (.msi). The heavy parts are not bundled: they download on first use with live progress and stay cached in the app data folder for offline work afterwards.
- Background removal model: Bria RMBG v1.4, about 167 MB
- Upscaling models: about 51 MB each, for the 2x and 4x variants
- FFmpeg bundle: ffmpeg, ffplay, and ffprobe, about 291 MB
If all you do is compress JPEGs, you never download the video stack at all.
Under the Hood
- Desktop shell: Tauri v2 (Rust)
- Frontend: React 19, TypeScript, Vite
- Routing and state: TanStack Router with TinyBase for reactive state
- UI: shadcn/ui on Tailwind CSS v4 and Radix
- Database: SQLite through sqlx
- AI inference: ONNX Runtime via the ort crate — no Python, no CUDA setup
- Image engine: the Rust image crate with jpeg-encoder, png, and imagequant
- Video engine: FFmpeg managed by ffmpeg-sidecar
- Downloads: reqwest with chunked streaming and progress events
The frontend talks to Rust across 85 registered Tauri commands, all type-safe on both sides. The window's content security policy lists no remote origins, so the interface itself cannot call out to anything.
Privacy by Construction
There is no cloud backend, no telemetry endpoint, and no optional AI server. The models run locally, FFmpeg runs locally, and the database lives in your app data folder. The only network traffic the app ever produces is the one-time asset download and the update check — both of which you trigger yourself.
What goes in stays in.
Open Source
LocalStudio is MIT licensed and free to fork. The source is on github.com/mouktardev/localstudio. Issues, pull requests, and forks are welcome.
Download
Grab v0.3.0 from the releases page — Windows x64 as .exe or .msi, with macOS and Linux planned. It is still an experimental build: it works, but a couple of rough edges are known (GIF upscaling and WebM playback).