This script allows you to create a LUT model (color transformation) from a pair of images — a raw image (before) and its edited version (after, e.g. from Tezza or VSCO) — and then apply that color style to an entire folder of images.
- Loads a pair of images:
original.jpg(before editing) andtarget.jpg(after editing). - Builds a LUT model based on the color differences between them.
- Applies the LUT to every image in the
input_images/folder. - Saves the results in the
output_images/folder. - (Optional) Displays a side-by-side Before/After preview.
-
Install dependencies:
pip install -r requirements.txt
-
Prepare the following files/folders:
original.jpg— original image (unprocessed)target.jpg— edited version with your desired styleinput_images/— folder with images you want to style
-
Run the script:
python main.py
-
The styled images will appear in the
output_images/folder.
original.jpg: raw photo from your cameratarget.jpg: styled photo from Tezza or another app- The script "learns" the aesthetic from
targetand applies it to others
- Saves the LUT model to
lut_model.pkl - Reuse the LUT by loading it later with
load_lut(path) - Displays Before/After comparison with matplotlib
- Fast and customizable
Use the following requirements.txt:
numpy>=1.24
opencv-python>=4.8
matplotlib>=3.7
tqdm>=4.65
scikit-learn>=1.3
- Export to
.cubeLUT format - Support for video input
- GUI for non-programmers
Built for creative workflows and quick aesthetic color transfer between images.
Useful for automating styles inspired by apps like Instagram, Tezza, VSCO, and more.
Note: This project is in the development stage.
In addition tolut-filter.py, there are two other Python scripts in this repository that can modify your images without LUT generation:
Simple Color ShiftBrightness Contrast AdjustBoth scripts applie a Tezza-like style to images by adjusting exposure, brightness, fade, and warmth, but in different way. It processes all images in the specified input directory and saves the adjusted images to the output directory.
- Place your input images in the
input_imagesfolder. - Run the script.
- The processed images will be saved in the
output_imagesfolder.