Sabattier: A Batch Photo Editor with On-Device AI

Sabattier is a batch photo editor for Windows and macOS: auto enhance, masks, portrait retouching, background removal and AI upscaling, all running locally.

On this page

After an event I usually come home with a folder of a few hundred photos. Most of them need the same small fixes: a bit more light, warmer color, a straighter crop. A few need real work, like a darker background or a cleaner portrait. I wanted one app that does both, runs on my own computer, and doesn’t send my photos anywhere.

Sabattier is the app I wrote for that. It’s a batch photo editor for Windows and macOS. You import a folder (RAW files included), fix one photo or all of them at once, and export everything as high-quality JPEGs. The AI tools — background removal, healing, face masks, lens blur and upscaling — run locally through ONNX Runtime. In this post, I will go through a full editing session step by step, from importing photos to saving them.

Sabattier with the background removed from a portrait.

Install

Get the installer for your system from the releases page:

System Installer
Windows (64-bit) Sabattier-<version>-windows-x64.setup.exe
macOS (Apple Silicon) Sabattier-<version>-macos-arm64.dmg

Each one comes in two versions. The standard installer is small and downloads each AI model the first time you use the tool that needs it. The with-models installer is about 575 MB larger and works fully offline from the start.

The installers aren’t code-signed yet, so your system will warn you the first time:

  • Windows: on the SmartScreen prompt, choose More info → Run anyway.
  • macOS: if the app is blocked, open System Settings → Privacy & Security and choose Open Anyway.

If you’d rather build it yourself, it’s a Tauri app, so you need Rust and the Tauri CLI:

cargo install tauri-cli --version "^2" --locked
cargo tauri dev

Step 1: Add your photos

Click Choose photos or Choose a folder on the start screen, or drag files into the window. Once you’re working, the same buttons are in the top bar as Add photos and Add folder.

Your photos show up in the filmstrip at the bottom. Click one to edit it, Shift-click to pick several, and use ← / → to step through them. The top bar keeps count of how many photos you have and how many you’ve edited.

RAW files from most cameras work too: CR2, CR3, NEF, ARW, DNG, RAF, ORF, RW2, PEF and SRW.

Step 2: One-click fixes on the Quick tab

The panel on the right has two tabs. Quick is where I start. It has the one-click fixes and three plain sliders, and it’s enough for most photos.

The Quick tab, with the edit list at the top and the one-click fixes below.

Click Auto enhance first. It reads the photo’s histogram and sets white balance, exposure, black point, highlights, shadows and contrast for you. The results land in the normal sliders, so nothing is hidden. You can see exactly what it changed in Edits on this photo at the top of the panel. In the screenshot above, it raised the black point by 1, the temperature by 4 and vibrance by 6.

Each edit in that list has a checkbox. Untick it to switch the effect off without losing its value, or click the red button to remove it.

If the result isn’t quite right, the Simple adjustments further down are Brightness, Warmth and Color intensity. They are named for what they do, so you don’t need to know what “vibrance” means to use them.

To compare with the original, press and hold Hold to see original under the photo.

Step 3: Crop

Click Crop in the one-click fixes. A crop box appears over the photo with a rule-of-thirds grid:

Cropping to 4:5 for social media, with the ratio presets under the photo.

Pick a ratio from the bar under the photo — Free, Original, 1:1, 4:3, 3:2, 16:9, 4:5 or 9:16 — then drag the box or its handles into place. The final size in pixels is shown next to the ratios. Press Apply (or Enter) to keep it, or Cancel (Esc).

The crop is non-destructive. It’s saved as a setting on the photo and applied when you export, so you can come back and change it later.

Step 4: Remove the background

Remove background cuts the subject out of the photo with one click. The first time you use it, Sabattier downloads the segmentation model (about 170 MB); after that it works offline.

The removed background shows as a checkerboard, like in the first screenshot of this post. Photos with the background removed are saved as PNG, so the transparency is kept. This is the saved file next to the original:

The original photo, and the PNG Sabattier saved with the background removed.

The edges are soft rather than cut with scissors, so hair and the outline of the lab coats look natural. The button turns into Restore background if you change your mind.

Step 5: Darken the background with a mask

Sometimes I don’t want the background gone, just less distracting. That’s what masks are for. Switch to the Fine-tune tab and open Masks.

A Background mask with the exposure lowered, so the two people stand out.

Click + Background. Sabattier finds the people in the photo and selects everything around them. With Show outline ticked, you can see the edge of the mask traced on the photo. Now any slider you move only affects the background. Here I lowered Exposure to -35, and the lab behind the two people went dark. This is the saved photo:

The same photo before and after darkening the background mask.

The people are untouched, and the window and shelves behind them no longer pull your eye away.

The other mask types work the same way:

  • Subject — the opposite: only the people or objects in front.
  • Linear and Radial — gradients you place with handles on the photo, for example to darken a bright sky.

Tick Tint red to see the masked area as a red overlay, or Invert to flip the mask.

Step 6: Blur the background

Another way to make the subject stand out is a shallow depth of field, like a portrait lens would give you. On the Fine-tune tab, open Lens blur and raise Blur amount:

Lens blur on the Fine-tune tab, with the focus on the person in front.

Sabattier estimates how far each part of the photo is from the camera and blurs by that distance. The first time, it downloads a small depth model. Focus is automatic and picks the nearest main subject. If it picks the wrong one, click Pick focus on the photo and click the spot you want sharp, or move Focus distance between Far and Near. Focus range sets how deep the sharp area is.

Here I used a blur amount of 55 and a focus range of 25. The person in front stays sharp, and everything behind softens gradually:

The photo before and after lens blur.

Step 7: Edit one face

Under People in the same section there are masks for Face skin, Eyes, Lips and Teeth. They work for every face in the photo, and you can pick which face to edit.

A Face skin mask on the second face only, with the exposure raised.

Click + Face skin. Sabattier numbers each face it finds on the photo. Under Faces, choose All 2 faces or a single face. In the screenshot I picked face 2 and raised its Exposure by 25, so only that face got brighter. The eyes, brows and lips are cut out of the skin mask, so they stay untouched.

Step 8: Quick portrait retouching

If you just want a nicer portrait without building masks, go back to the Quick tab and scroll down to Portrait:

The Portrait tools and simple adjustments on the Quick tab.

  • Smooth skin softens skin texture but keeps the eyes, brows and lips sharp.
  • Brighten eyes adds a little light and clarity to the eyes.
  • Whiten teeth takes the yellow out of teeth.

Each one is a single click, and each shows up in the edit list so you can turn it off again.

Step 9: Apply the same edits to every photo

This is the part that makes Sabattier a batch editor. Once one photo looks right, you have three ways to reuse the work:

  • Copy these edits to all N photos at the bottom of the panel copies the current photo’s settings to the whole batch. Masks come along too; subject masks are recomputed for each photo.
  • Auto enhance all in the top bar analyzes and corrects every photo individually, instead of giving them all the same values.
  • + Save this look under Saved looks saves the edits as a preset. Click it later to apply it to the selected photos.

Batch actions show a confirmation with an Undo button, and Ctrl+Z undoes a batch change across all photos at once.

Step 10: Rate and pick

Before saving, I go through the batch and pick the keepers. Select a photo and press a key:

Key Action
0–5 Star rating
P Pick
X Reject
U Unflag

You can also click the flag, the ✕ and the stars under the photo. Ratings show up on the filmstrip (you can see them in the screenshot in Step 2), and the All photos dropdown filters the filmstrip by picks, rejects or rating. Ratings are kept between sessions, so you can close the app and continue later.

Step 11: Save

Click Save N photos in the top bar:

The save dialog with quality presets, file format, upscaling and watermark options.

The dialog asks one question first: What are they for?

  • Best quality — full size, for printing and keeping.
  • Sharing online — resized to 2048 px, for email, chat and social media.
  • Custom — choose the quality and size yourself.

Then pick a file format (JPEG, PNG, WebP or TIFF), choose a folder, and set a filename suffix; -edited is the default, so photo1.jpg is saved as photo1-edited.jpg. Your originals are never changed, and nothing gets overwritten: if a file already exists, the new one gets a number.

Two optional extras are in the same dialog:

  • Upscale makes photos 2× or 4× larger with AI (Real-ESRGAN), which is useful for small or heavily cropped photos you want to print.
  • Watermark adds text or a logo to every photo, in a corner or the center, with its size and opacity.

The rest of the tools

The steps above cover what I use on almost every batch. The Fine-tune tab has a lot more when a photo needs it:

  • Light and color — exposure, highlights, shadows, whites, black point, temperature, tint, hue, saturation, vibrance and 3-way color wheels, all rendered on the GPU in real time with a live histogram. You can also drag directly on the histogram to brighten or darken one tonal zone.
  • Tone curve and color mixer — RGB curves and hue, saturation and luminance for eight color bands.
  • Effects — texture, clarity, dehaze, vignette, film grain and sharpening.
  • Remove spots — paint over dust, blemishes or small objects, and an inpainting model (LaMa) fills them in.
  • HDR merge — select bracketed shots and merge them into one photo.

The gear icon in the top bar opens Settings: theme (Dark, Light or System), the downloaded AI models with their sizes and licenses, and Backup & restore for your settings, presets and ratings.

Your photos stay on your computer

Every AI model runs locally with ONNX Runtime. Models are downloaded once, the first time you use the tool that needs them, and each download is checked against a pinned SHA-256 hash. After that, Sabattier works offline, and your photos never leave your computer.

Sabattier runs on Windows 10/11 and macOS on Apple Silicon. The sample photos in the screenshots are from Unsplash; credits are in the repo’s images/README.md. Issues and PRs welcome.

Sabattier is free and open source. If it saves you time, you can support its development on 💖 GitHub Sponsors.

Written by Sina Fathi-Kazerooni

Lead AI Engineer. I write about reinforcement learning, transformers, multi-agent systems, and the tools I build along the way.