Upscale and clean up images with classic resampling and Pillow's enhancement filters — no machine-learning model, no OpenCV. It resizes to a target resolution (up to 8K) using Lanczos/bicubic resampling, then optionally sharpens, adjusts contrast and saturation, and runs a light denoise/edge pass.
Comes in three forms, all built on the same Pillow pipeline:
| Entry point | What it is |
|---|---|
image enchancer/enhancer_gui.py |
Tkinter desktop app (also works as a CLI) — file/folder picker, presets, sliders, progress bar, activity log |
image enchancer/enhancer_pro.py |
Command-line tool with presets and batch mode |
image enchancer/web/app.py |
Flask web UI — upload an image, tune settings, download the result |
image enchancer/enhancer.py |
Minimal script: resize to 4K/8K, nothing else |
pip install Pillow # GUI + CLI
pip install Pillow flask flask-cors # also the web app
# desktop app
python "image enchancer/enhancer_gui.py"
# CLI: 4K, vivid preset
python "image enchancer/enhancer_pro.py" photo.jpg -r 4k --preset vivid
# batch a folder
python "image enchancer/enhancer_pro.py" ./photos --batch -r 4k
# web app → http://localhost:5000
python "image enchancer/web/app.py"- Resize — Lanczos (default), bicubic, bilinear, nearest or box, to 720p / 1080p / 2K / 4K / 8K
- Sharpen / contrast / saturation —
PIL.ImageEnhance, 0.5–3.0 - Denoise / edge enhance —
PIL.ImageFilterpasses, toggleable - Presets —
photo,artwork,text,soft,vivid,hdrbundle the above - Output — written to an
enhanced/folder next to the input, namedname_resolution_preset.jpg
Upscaling past the source resolution interpolates pixels — it will not recover detail that isn't in the original. For that you'd need a super-resolution model, which this tool deliberately doesn't ship.
See image enchancer/README.md for the full option list.