A command-line tool to generate print-authentic Polaroid-style images using a data-driven film pipeline.
This project simulates instant film characteristics (color response, contrast, grain, optical softness) and renders images in a Polaroid-style print layout, optimized for physical printing.
- Apply Polaroid-style film looks (fresh, aged, vintage, cinematic, retro, B&W).
- Physically believable instant-film grain and softness.
- Process single images or entire directories.
- Generate all effects or random selections.
- Fully JSON-driven effects (no hard-coded values).
- Optional image compression for storage or sharing.
-
Clone the repository:
git clone https://github.com/gopaldhanve2003/polaroid.git cd polaroid -
Install dependencies:
pip install -r requirements.txt
Polaroid is always applied. Effects modify the film look before the Polaroid layout is rendered.
python3 polaroid.py --input path/to/image.jpgApplies the default polaroid_classic look and saves the output.
Apply one or more film effects:
python3 polaroid.py --input path/to/image.jpg --effects polaroid_classic_agedMultiple effects generate multiple outputs:
python3 polaroid.py --input path/to/image.jpg --effects bw_classic vintage cinematic_kodakGenerate one output per available effect:
python3 polaroid.py --input path/to/image.jpg --allGenerate a random subset of effects:
python3 polaroid.py --input path/to/image.jpg --random 5Process all images in a directory:
python3 polaroid.py --input-dir path/to/imagesWith specific effects:
python3 polaroid.py --input-dir path/to/images --effects polaroid_classic bw_softpython3 polaroid.py --list-effectsCompress images in a directory:
python3 polaroid.py --compress path/to/images --output path/to/compressedWith quality control (1–100):
python3 polaroid.py --compress path/to/images --output path/to/compressed --quality 80polaroid_classic→ fresh instant print (baseline)polaroid_classic_aged→ stored / yellowed print- B&W presets → instant-film monochrome
- Vintage / Retro / Cinematic → stylistic film interpretations
- All effects are print-first, not Instagram-style filters
Effects are defined in effects/*.json and applied before the Polaroid layout.
Contributions are welcome, especially:
- New film looks (JSON only)
- Printer calibration presets
- Documentation improvements
Please keep effects data-driven and print-authentic.
Enjoy 🌤️📸