A desktop image processing application built with Python, PyEdifice, and PySide6. Apply real-time effects like hue, saturation, brightness, and sharpness to your images with an intuitive interface.
- Batch Image Processing: Load entire directories of images
- Real-time Preview: See effects applied instantly with adjustable quality modes
- Image Effects:
- Hue shift (-180° to +180°)
- Saturation adjustment (0x to 4x)
- Brightness/Value adjustment (0x to 4x)
- Sharpness enhancement (0x to 4x)
- Navigation: Browse through multiple images with prev/next controls
- Toggle View: Compare original vs. processed images
- Supported Formats: PNG, JPG, JPEG, BMP, GIF, TIFF, WebP
- I learn about development tools of www.pyedifice.org in this flake and follow guides of uv2nix
- I start with project development setup in this ./flake.nix
- Just make it done - Read Commits History
- Python 3.12 or higher
- pip or uv package manager
nix run github:r17x/desi-
Clone the repository:
git clone https://github.com/r17x/desi.git cd desi -
Install dependencies:
Using uv:
uv sync uv run python src/main.py
Using pip:
pip install -r requirements.txt python src/main.py
Note: You may need to generate
requirements.txtfrompyproject.toml:pip install build python -m build
$ python -m edifice --inspect src/main.py Desi
- Clone this project
- Go to project directory and run
nix developto load project dependencies innix-shell(development environment) - Run the application:
python src/main.py
- Clone this project
- Go to project directory
- Install dependencies (see Run This Application section)
- Run the application:
python src/main.py
desi/
├── src/
│ └── main.py # Main application with UI components
├── flake.nix # Nix flake configuration
├── flake.lock # Nix flake lock file
├── pyproject.toml # Python project configuration
└── README.md # This file
- pyedifice: Declarative UI framework
- PySide6: Qt6 bindings for Python
- watchdog: File system event monitoring (hot reload - development mode)
- PySide6: Qt6 bindings for Python
- Pillow: Image processing library
- Select Source Directory: Click "Pick Source Dir" to choose a folder containing images
- Adjust Effects: Use sliders to modify hue, saturation, value, and sharpness
- Preview Changes: Toggle "Show Original" to compare before/after
- Navigate Images: Use "Prev" and "Next" buttons to browse through images
- Select Output Directory: Click "Pick Output Dir" to choose where to save processed images
- Save: Click "Save Processed" to export the edited images
The application uses:
- Async Processing: Non-blocking image loading and effect application
- Debounced Updates: Smooth slider interaction with 150ms debounce
- Quality Modes: Fast (768px), Low (1024px), and HQ (1280px) preview rendering
- HSV Color Space: For accurate hue/saturation adjustments
- Pillow Effects: ImageEnhance for professional-grade sharpness control