Web / Tools · 2025
Lightroom Preset Extractor
Upload a photo whose look you want to copy. The server analyses it with OpenAI Vision and gives you back the Lightroom slider settings that approximately reproduce that look — either as numbers to type into Lightroom yourself, or as a downloadable preset file.
What it is
When a photographer sees a photo they like, the natural question is "how do I make my own look like that?" In Lightroom that means moving roughly fifteen sliders — exposure, contrast, white balance, curves, and so on — until you get close. It's slow and there's no shortcut.
This tool gives you a starting point. You upload the photo you like, and a vision model reads it and returns its best guess at those slider values. You can either copy them into Lightroom by hand or download a preset file and import it directly. It's a starting point, not a finished edit.
How it works
Four-stage flow:
- Upload. Drag-and-drop or file picker on the React frontend. Multer handles the multipart write on the Node side.
- Analyse. The image goes to OpenAI Vision with a structured prompt asking for the global Lightroom values: exposure, contrast, highlights/shadows, whites/blacks, clarity, vibrance, saturation, white balance, and a first-pass tone curve.
- Render. Returned values are shown in a Lightroom-shaped panel for manual copy.
- Export. Or download an .xmp and import the preset directly into Lightroom Classic.
Stack: React + TypeScript + Tailwind on the frontend, Vite for dev. Node + Express on the backend, Multer for uploads, OpenAI SDK for the vision call. One repo, one server, one SPA. Stateless per request — nothing is stored after the response is sent.
Where it's at
Deployed prototype, used on my own shoots. The vision model output is an approximation, not a colour-accurate extraction — two reference images with the same look can produce slightly different values across runs. Lightroom Classic only; the mobile/cloud preset format isn't written. Selective adjustments (masks, radial, linear) aren't attempted; output is global-only. Pair to the Portrait Batch Analyser — that one handles the cull-and-sort half of a shoot, this one handles the look-match half.