v0.3.1 — Now available

Fast image compression and background removal — CLI and GUI. Zero ML, instant results.

Natalie is a native desktop tool that compresses images and removes backgrounds. No cloud, no GPU, no model downloads. Just a ~5 MB binary.

Batch-convert JPEG, PNG, BMP, GIF, TIFF, and WebP to WebP/JPEG/PNG with parallel processing across all CPU cores. Remove backgrounds using a custom k-means + edge-detection algorithm that handles subjects touching the frame. Dark-themed native GUI with live progress, cancel support, and checkerboard/color background replacement — or use the CLI in scripts and CI pipelines.

Rust
~5 MB binary (release, stripped)

Features

Compression

  • Lossy/lossless WebP, JPEG, PNG with quality 0–100
  • Smart sharpening — unsharp-mask with adjustable threshold
  • Parallel processing across all CPU cores
  • Magic-byte validation — rejects files renamed to fake extensions

Background Removal

  • k-means border-color clustering avoids the "subject-touching-edge-erased" problem
  • Background fill — solid hex, checkerboard pattern, or true transparency
  • Adjustable smoothing, feathering, and edge-shift
  • ~100–300 ms per image

UX

  • Dark-themed native GUI with live progress and cancel support
  • CLI for scripts and CI pipelines — animated progress bar
  • Cross-platform — Linux .deb/.rpm, Windows .msi/.exe
  • Binary size ~5 MB — no cloud, no GPU, no model downloads

How Background Removal Works

No machine learning. Just computer vision fundamentals combined into a robust pipeline.

1

Canny edge detection

finds boundaries

2

k-means (k=2) clusters border pixels

the larger cluster is the background

3

Color-aware flood-fill

propagates through background-colored, non-edge pixels

4

Adaptive threshold from cluster variance

tight for uniform backgrounds, loose for textured

5

Morphological close, Gaussian feather, dilate/erode

for edge tuning

How Natalie Compares

Natalieremove.bgPhotoRoom
Offline✗ (API)✗ (cloud)
No GPU neededn/an/a
CLI scripting✓ (curl)
Handles border-touching subjects✓ (k-means)✓ (ML)✓ (ML)
Compression built in
Binary size~5 MBn/an/a
CostFree~€0.05/image~$13/mo

CLI Usage

Use Natalie in scripts, CI pipelines, or just from the terminal.

Compress a folder to WebP at quality 85

natalie ./photos --quality 85 --output ./out/

Remove background, replace with white

natalie product.jpg --remove-bg --bg-color "#FFFFFF"

Remove background, checkerboard fill, JPEG output

natalie photo.jpg --remove-bg --bg-checkerboard --format jpeg

Lossless WebP with sharpening

natalie photo.jpg --lossless --sharpen 1.2 --verbose

Install

Linux (deb)

sudo dpkg -i natalie-0.3.1-x86_64.deb

Linux (rpm)

sudo rpm -i natalie-0.3.1-x86_64.rpm

Windows

# Run natalie-0.3.1-x86_64.msi installer

Technical Details

Language

Rust

Binary size

~5 MB (release, stripped)

Minimum Rust

1.85

Dependencies

image, webp, clap, rayon, indicatif, slint, imageproc

GUI framework

Slint 1.17 (femtovg renderer)

Compression speed

~50–200 ms / image

BG removal speed

~100–300 ms / image