
When camera-digitizing film negatives, turning that raw capture into a beautifully balanced positive photo is the most critical post-processing step. While subscription software and proprietary plugins dominate commercial workflows, open-source image editors offer industrial-grade tools for film processing without recurring costs or vendor lock-in.
If you run Linux or prefer cross-platform open-source software, Darktable contains one of the most sophisticated film inversion tools available: Negadoctor. Based on the physics of Kodak’s Cineon film printing system, Negadoctor handles orange film base subtraction, density curves, and color balance with extraordinary control.
This guide walks you through setting up an open-source film processing pipeline in Darktable and mastering the Negadoctor module step-by-step.
1. Why Choose Open-Source Film Inversion?
Commercial film inversion tools often operate as “black boxes.” They apply automated preset curves that hide the underlying color math. While fast, this approach limits your ability to recover tricky shadow details or adjust non-standard film stocks.
- Non-Proprietary Archiving: Your edit instructions are stored in lightweight, human-readable sidecar files (.xmp). You retain total ownership of your metadata and processing pipeline indefinitely.
- Physics-Based Tone Curves: Darktable’s scene-referred workflow treats the raw capture as linear light data, preventing crushed blacks or clipped highlights during conversion.
- Cross-Platform Parity: Darktable runs natively across Linux, macOS, and Windows, allowing you to move your archival workspace freely between operating systems.
2. Pre-Inversion Prep in Darktable
Before enabling the Negadoctor module, you must prepare your raw image frame to ensure accurate light measurements.
Step 1: Set White Balance to Camera Native
Do not perform a standard white balance on the orange film base using Darktable’s primary white balance module.
- Set the white balance module to camera neutral or passthrough.
- Negadoctor is specifically engineered to handle the film base color offset internally.
Step 2: Disable Default Tone Curves
Ensure that Darktable’s automatic filmic rgb or sigmoid modules are disabled for film inversion shots. You want the raw image feeding into Negadoctor to remain strictly linear.
Step 3: Crop to the Active Image Frame
Use the crop module to frame the active image area. While you will need a small strip of unexposed film edge for calibration in the next step, cropping out room ambient light or copy stand borders prevents exposure calculation errors.
3. Step-by-Step Guide to the Negadoctor Module
Open the color tab in Darktable’s darkroom view and activate negadoctor. The module is divided into three logical tabs that mirror traditional darkroom printing: Film Properties, Correction, and Print Paper.
[ Raw Negative Capture ] || \/1. [ Film Properties ] --> Subtracts orange film base & sets D-Min / D-Max || \/2. [ Correction ] --> Fixes color casts across shadows, midtones & highlights || \/3. [ Print Paper ] --> Sets black/white points & applies print contrast curve || \/[ Reverted Positive Image ]
Tab 1: Film Properties (Establishing the Film Base)
This tab neutralizes the orange mask (film base) of color negative film and establishes the dynamic range limits of the emulsion.
- Color of the Film Stock:
- Click the color picker eye-dropper next to “color of the film stock.”
- Draw a box over a clean section of unexposed film rebate (the clear orange film edge or space between frames).
- Negadoctor will automatically calculate and subtract the exact RGB values of your film base.
- D-Min (Minimum Density):
- Use the eye-dropper to sample the darkest part of the negative (which corresponds to the brightest highlight in the final picture, such as the sky).
- D-Max (Maximum Density):
- Use the eye-dropper to sample the clearest, lightest part of the negative emulsion (which corresponds to deep shadows in the final picture).
Tab 2: Correction (Balancing Color Casts)
If your inverted positive displays a color cast in the shadows or highlights, the Correction tab allows you to adjust color balance without distorting overall exposure.
- Casts in Shadows: Use the shadows color bias slider to eliminate lingering color shifts in dark regions (for example, removing a green cast from dark jacket fabric).
- Casts in Highlights: Use the highlights color bias slider to ensure bright clouds or white paper retain natural neutral tones.
Tab 3: Print Paper (Tone Curves & Contrast)
The final tab simulates exposing the inverted image onto virtual photographic printing paper.
- Paper Black / White Points: Adjust the slider to set your absolute black point and white point, ensuring your histogram spans the full dynamic range without clipping.
- Paper Gamma (Print Contrast): Increase or decrease paper gamma to control overall midtone contrast. Lower values preserve subtle shadow detail; higher values give the image modern punch and saturation.
4. Saving Presets and Batch Processing
Once you dial in the Negadoctor settings for a specific film roll (e.g., Kodak Portra 400 or Fujifilm Superia), you do not need to repeat the manual calibration for every frame on that roll.
- Save a Roll Preset: Click the module preset menu in Negadoctor and select create preset. Name it after your film stock and lighting setup (e.g., Kodak_Gold_200_DichroicLight).
- Batch Copy & Paste: In Darktable’s lighttable view, select the calibrated frame, copy its history stack, select the remaining frames from the same roll, and paste the history stack.
- Fine-Tune Exposure Only: Because the film base color remains constant across the entire roll, you only need to make minor tweaks to individual frame exposures.
Recommended Open-Source Film Inversion Workflow Checklist
- [ ] Disable Default Tone Curves: Turn off filmic rgb or sigmoid modules to keep raw light linear.
- [ ] Sample Unexposed Rebate: Use the Film Properties eye-dropper on the clear orange film edge to subtract the film base.
- [ ] Set D-Min and D-Max: Calibrate the minimum and maximum density points using the eye-dropper tools.
- [ ] Adjust Paper Gamma: Fine-tune midtone contrast in the Print Paper tab.
- [ ] Save Roll Presets: Export settings as a preset to streamline batch processing across the entire film roll.
Was This Post Helpful?
Building this free educational archive is a labor of love! If this post helped you solve your problem today, please leave a like below to let me know you enjoyed it. Your support helps keep this site 100% free and ad-free for the archiving community.

Other posts in this new series – The Hardware & Optical Precision Loop.
Physical and Optical Precision: Masking, Alignment, and Newton’s Rings
Capturing Complex Scrapbooks, Fold-Outs, and Framed Media
Digitizing 3D History & Complex Formats
Digitizing Framed Pictures Through Glass
DNG vs. RAW: Safeguarding Your Digital Master Files
Protecting Your Archive Against Bit Rot
Sharing Your Archive with Non-Technical Family
Ethical Archiving: Handling Sensitive Secrets, Medical Records, and Personal Privacy
HOME
External Links
Here are three authoritative and relevant resources for open-source film inversion using Darktable’s Negadoctor module:
- Darktable Official User Manual: Negadoctor Module DocumentationWhy it’s relevant: The definitive technical documentation from the Darktable development team, detailing the exact controls, film density math, and Cineon-based parameters used inside the Negadoctor module.
- Pixls.us: Community Guide to Film Negative Inversion with DarktableWhy it’s relevant: A flagship tutorial and discussion thread on the primary open-source photography portal (Pixls.us), providing community-tested workflows for linear raw processing and film base calibration.
- Kodak Technical Data: Understanding the Cineon Digital Film SystemWhy it’s relevant: Official historical documentation on the Cineon printing density system upon which Negadoctor’s logarithmic tone curves and film base subtraction algorithms are modeled.
I welcome comments and questions