Skip to content

brightleeh/hdr-studio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HDR Studio

HDR Studio is a PyQt6 desktop app for single-image and batch HDR-style tone correction. It applies LUT-driven looks, auto-selects the best preset with face-aware heuristics, and lets you compare/export the results without leaving your local workflow.

Highlights

  • Live preview GUI powered by PyQt6 and OpenCV.
  • Film-inspired LUT presets: apple, fuji, kodak, neutral.
  • Auto preset analysis that inspects brightness, saturation, warmth, and detects faces (falls back gracefully when cascades are missing).
  • Batch processor with progress, cancellation, and preset-usage summary.
  • CLI helpers for automation plus tone-curve plotting scripts.
  • Native macOS .app packaging via PyInstaller (onedir layout for fast launch).

Requirements

  • Python 3.10+ (3.13 tested).
  • macOS or Windows with system libraries required by OpenCV/rawpy.
  • pip install -r requirements.txt (PyQt6, OpenCV, rawpy, etc.).

Quick Start

git clone https://github.com/brightleeh/hdr-studio.git
cd hdr-studio
python3 -m venv .venv
source .venv/bin/activate  # or .venv\Scripts\activate on Windows
pip install --upgrade pip
pip install -r requirements.txt

With dependencies in place you can run the tools straight from the checkout—no editable install is required.

Launch the GUI without building a wheel:

python -m hdrstudio.main

Run the batch CLI (directly from the repo):

python scripts/auto_tone_batch.py --input ./examples --preset auto --quality 95

Plot LUT tone curves for documentation/tuning:

python scripts/plot_tone_curve.py

Application Overview

  • Open Image: load a single image (JPEG/PNG/BMP/TIFF/RAW) and preview the corrected result.
  • Auto Suggest: analyze the frame, select the recommended preset, and highlight it in compare view.
  • Compare View: show all presets side-by-side; double-click to save a favored look.
  • Save Preset: export the currently previewed preset override.
  • Batch Folder: process a whole directory with a fixed or auto preset, resume progress bar, and stop midway if needed.
  • About: version, license, and project links.

Supported formats are declared in hdrstudio/constants.py and include JPEG, PNG, BMP, TIFF, plus RAW types such as .arw, .cr2, .nef.

Project Layout

hdrstudio/
 ├─ gui/                # PyQt main window
 ├─ dialogs/            # Compare dialog + helpers
 ├─ workers/            # QThreadPool batch workers
 ├─ auto_tone_correct.py
 ├─ auto_preset.py
 ├─ about_dialog.py
 ├─ constants.py
 └─ utils.py
scripts/
 ├─ auto_tone_batch.py
 ├─ build_release.py
 └─ plot_tone_curve.py

Releases & Packaging

Local PyInstaller builds are handled through scripts/build_release.py. The helper:

  1. Cleans build/ and dist/.
  2. Runs PyInstaller in onedir mode on macOS (onefile on Windows/Linux).
  3. Collects OpenCV/rawpy binaries plus the cv2/data cascades and repo resources so auto preset logic works offline.
  4. Produces:
    • dist/HDR Studio.app (macOS bundle ready to run).
    • HDR-Studio-macOS-v<version>.zip for distribution.

Build steps:

pip install -r requirements.txt  # PyInstaller included here
python scripts/build_release.py

After the script finishes, launch the GUI from dist/HDR Studio.app (macOS) or the generated executable in dist/ on other platforms. Codesign/notarize the .app if you plan to distribute it publicly.

Testing Checklist

Automated tests are not yet included. For manual QA:

  • Launch the GUI, open a sample from examples/, and verify the preview + compare dialog.
  • Toggle Auto suggestions with face-containing and non-face images to confirm preset switching.
  • Run scripts/auto_tone_batch.py on a small folder and confirm outputs follow <stem>_<preset>.jpg.
  • Exercise RAW loading via a .arw/.cr2/.nef file to verify rawpy integration.

License

MIT License — see LICENSE.txt for the full text.

About

A PyQt6 desktop app for single-image and batch HDR-style tone correction, featuring face-aware auto-presets and film-inspired LUTs.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages