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.
No machine learning. Just computer vision fundamentals combined into a robust pipeline.
finds boundaries
the larger cluster is the background
propagates through background-colored, non-edge pixels
tight for uniform backgrounds, loose for textured
for edge tuning
| Natalie | remove.bg | PhotoRoom | |
|---|---|---|---|
| Offline | ✓ | ✗ (API) | ✗ (cloud) |
| No GPU needed | ✓ | n/a | n/a |
| CLI scripting | ✓ | ✓ (curl) | ✗ |
| Handles border-touching subjects | ✓ (k-means) | ✓ (ML) | ✓ (ML) |
| Compression built in | ✓ | ✗ | ✗ |
| Binary size | ~5 MB | n/a | n/a |
| Cost | Free | ~€0.05/image | ~$13/mo |
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 jpegLossless WebP with sharpening
natalie photo.jpg --lossless --sharpen 1.2 --verbosesudo dpkg -i natalie-0.3.1-x86_64.debsudo rpm -i natalie-0.3.1-x86_64.rpm# Run natalie-0.3.1-x86_64.msi installerLanguage
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