Interesting project! I scan 35mm and medium-format film with a mirrorless camera, macro lens, and Lomography film holder, then convert with Negative Lab Pro in Lightroom. I’m happy with the results, but the Lightroom subscription has me considering writing my own converter.
Could you share more about your NumPy pipeline, or publish the code? I’m particularly curious about how you use the blank film reference and roll-level measurements to handle the orange mask, color balance, and tone curves. Do you use camera/scanner calibration profiles or film-stock-specific adjustments, or estimate everything from the scans themselves?
Also, your screenshot appears to show an OpticFilm 7400. Would you recommend it, and roughly what did you pay? Have you tried camera scanning? I’ve been considering automating film advance and capture on my setup, but consistent color conversion is the part I’m least confident about.
To reiterate, those were legit questions. I used voice dictation to my phone, with an app that transcribed and formatted my message.
You should check out the negpy project. It in my view has the best inversion process. It claims to emulate the whole analog print chain in the inversion process. They have a fold works cited.
It also automates most of the process. It works with SANE, some other legacy scanners, and camera scanning. It can even do trichrome scans automatically.
I don't have a public writeup, but the general approach for orange mask removal is: scan a blank unexposed frame from the same roll, take its per-channel mean as your reference white, then divide each pixel by that reference per channel before doing anything else. That normalizes the mask out instead of trying to subtract a fixed color. After that, a per-roll linear stretch (black point from the darkest scanned frame, white point from the lightest) gets you a rough base. Tone curve is the hard part: NLP uses a nonlinear S-curve tuned per stock, and matching that from scratch means a lot of trial and error with reference images you know the expected look of. If you want a quick win before rewriting things, Lightroom lets you write develop settings to XMP so you're not locked into the catalog even if you cancel later; the actual RAW/TIFF processing engine is what needs a subscription, not the metadata.
Can you please not post AI-generated or AI-edited comments to HN? It's not allowed here - see https://news.ycombinator.com/newsguidelines.html#generated and https://news.ycombinator.com/item?id=47340079.
Of course, it's impossible to know for sure what was LLM processed or not, but some of your posts (like this one) have been getting classified that way.
A colorist I worked with did something similar by using reference film stock of the same film that was being scanned. This was anime 16mm film prints from the 80s that had been scanned multiple times and color set on arbitrary decisions by who ever was working with the film at the time. After using the reference stock to base decisions, the director said it was the closest he had seen to what he wanted.