🎨 Open source · Desktop app

Photoshop-grade edits,
at full resolution

Erase people, edit only part of a picture, reshape, curves and film looks — as easy as a phone app, but non-destructive and saved at your photo's original resolution. No downscaling, no re-compression.

⬇ Get it on GitHub 📸 Get the pro look Read the docs
🖼 Full-resolution export ↩️ Non-destructive 🔒 100% local 🐍 Python · PyQt6
image-editor — beach.jpg (6000×4000)
Exposure
Contrast
Vibrance
Feather
Selection only · edit blends into the photo · saved at 6000×4000

Serious tools, without the learning curve

The power lives under a simple, direct-on-image interface. Do a little or a lot.

🖼

Full-resolution & non-destructive

Preview is fast, but Save always renders at your photo's native resolution — real JPEG quality or lossless PNG/TIFF. Your edits stack as layers; the original pixels are never thrown away.

🖌

Edit only part of a picture

Brush a region and adjust just that area. A feather control and edge-aware masking blend the change so it never looks cut out.

🩹

Erase anything

Paint over a distraction and it's gone. Small blemishes use fast classical inpainting; larger objects use LaMa AI, which invents a matching background and colour-matches the fill.

🧍

Remove a person in one tap

Brush roughly over someone and SAM segments them precisely, then LaMa fills the gap. It runs on a background thread, so the app never freezes.

🫳

Reshape & slim

A liquify push-brush to reshape a body or object — drag an edge inward to slim. Stored as a smooth warp field, so it stays non-destructive and full-resolution.

📈

Curves & nine adjustments

Exposure, brightness, contrast, highlights, shadows, saturation, vibrance, temperature, tint — plus a draggable master and per-channel R/G/B curve. All work globally or on a selection.

🎞

30 camera & film looks

Camera profiles — Standard, Vivid, Neutral, Landscape, Portrait, Monochrome and more — alongside 20 Fujifilm-inspired film simulations.

📎

Seamless paste

Drop an object from another photo into the scene. It's Poisson-blended and colour-matched to its surroundings so the seam disappears.

💾

Re-openable projects

Save an .iedit project to reopen your whole edit — layers, masks, curves — and keep tweaking later.

Open, edit, save — nothing lost

No presets to wrangle, no cloud round-trip. Just your photo at full quality.

1

Open a photo

JPEG, PNG, TIFF, BMP, WEBP. Unicode-safe paths on Linux, macOS, and Windows.

2

Adjust — all or part

Move sliders and curves for the whole image, or brush a selection and edit just that region with a soft, blended border.

3

Retouch

Erase distractions or a whole person, reshape and slim, or paste something in — seamlessly blended.

4

Save full-res or as a project

Export at native resolution, or save an .iedit project to keep editing later.

Everything runs on your machine

A Qt-free editing core (NumPy + OpenCV) drives both the live preview and the full-resolution export from the same code, so what you see is what you save.

AdjustmentsExposure · Brightness · Contrast · Highlights · Shadows · Saturation · Vibrance · Temperature · Tint · Curves
Looks10 camera profiles + 20 film simulations (30 total)
RetouchLocal adjustments · Erase (classical + LaMa AI) · Remove person (SAM) · Reshape/liquify · Seamless paste
OutputJPEG (quality) · PNG · TIFF — always at the original resolution, saved atomically with the source date preserved
Runs100% local · CPU-only core · optional CPU AI models · no account, no telemetry, no cloud

The core editor needs no models. The AI features (Erase / Remove person) are an optional install and degrade gracefully when absent — see the install guide.

Up and running in minutes

Python 3.11+, Linux / macOS / Windows. No build step — clone and run.

# Clone and launch (first run sets up the venv + installs deps)
git clone https://github.com/mnavas/image-editor.git
cd image-editor
./launch.sh

# …or by hand
python3 -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install -r requirements.txt
python main.py

# Optional AI (CPU-only) — erase & remove-person
pip install torch torchvision --index-url https://download.pytorch.org/whl/cpu
pip install --no-deps simple-lama-inpainting fire segment-anything

For Linux system packages, the optional AI models, desktop launcher, and platform notes see docs/installation.md.

Help make it better

image-editor is open source and welcomes contributions of any size.

🐛

Report a bug

Something crash or render wrong? Open an issue with steps to reproduce and your OS / Python version.

Open an issue →
💡

Suggest a feature

Want a new tool or look? Open a feature request and describe what you'd use it for.

Request a feature →
🔧

Submit a pull request

Fork, branch, and send a PR. Read docs/architecture.md first — it maps the modules and the render pipeline.

Fork on GitHub →
📖

Improve the docs

Docs are plain Markdown in the docs/ folder — easy to edit and submit.

Browse the docs →

Keep image-editor free and actively maintained

image-editor is built and maintained as a side project. It's free and open source — but development tools, time, and motivation all have a real cost.

If it saves you from a subscription or from losing your photos' resolution, consider chipping in. Every contribution helps keep it maintained and improving.

All contributions go directly to the developer. No company, no VC behind this.

📄 Open source

Free and open source

image-editor is free to use, fork, and modify. No telemetry, no accounts, no cloud — everything runs on your machine. (Optional AI model weights carry their own licences.)

View on GitHub →