September 12th, 2013
We’re intensely proud of Replichrome , our film emulation presets for Lightroom and ACR. Developing them was no walk in the park and was an intense labor of love. It took a lot of science. Not the fun drop Mentos in diet soda science, but the boring, repeat an experiment again and again kind of science. We’re not the first people to try and emulate the look of "film" in digital photography. We just wanted to be the first people to do it right. Since so much sweat, time, and even a few tears went into creating Replichrome, we asked Doug, our mad scientist and CEO here at Totally Rad! Inc., to detail the experience. We’re really letting our nerd flag fly with this one, and this post gets into the technical side. Doug talks about everything from experiment parameters to software engineering. If that’s your thing, enjoy. If you’d rather see the cliff notes, check out this snazzy infographic about the creation of Replichrome . Without further ado, here are Doug’s eleven steps if you want to create the perfect film emulation presets (complete with a few BTS iPhone photos).
Unless you’re only interested in emulating a single film for a single camera model, you need a LOT of side-by-side comparisons of the exact same scene shot on different digital cameras and film stocks. In our case, we bought 6 Nikon N65s so that we could shoot the same frame on several different stocks at once (and just bought 4 more to use for Replichrome 2). This made the process of doing test shots much faster, and had the benefit of allowing us to compare, for instance, Fuji 160S, 160C, and 400H all side-by-side. In addition to the 35mm gear, we conscripted all the other MF and digital gear we owned into service. The camera bag contained a dozen cameras at any given time.
Fuji is discontinuing films at an alarming rate, and Kodak isn’t far behind. This means that recently discontinued classics like Fuji Pro 800Z aren’t available from camera shops. Thankfully, there’s still a healthy supply of most modern films available from the secondary market. Most of this film has been in cold storage and is within or very near its expiration date. The trick is finding it. We spent a lot of time on Ebay tracking down a few of the films for Replichrome, and even more for the upcoming Replichrome 2, which will be an even deeper dive into the rare and esoteric.
Good test images aren’t just photos of anything you come across. It took a good deal of experimenting to figure out what to even shoot. Initially, we just shot color checkers in a studio, but that didn’t tell the whole story, so we moved outside and shot real-world scenes. After a few iterations, it became pretty clear that there are useful comparisons, and useless ones. To truly profile a film, you need shots in flat light, shots in contrasty light, shots of people, shots of landscapes, and shots of color charts. You need colorful and subtle, natural and man-made. In short, you can’t just take a few photos of the coffee mug on your desk and build and accurate comparison - you need a wide breadth of photos encompassing different lighting situations, different color palettes, and different textures. Learning where to find scenes that would reveal the unique characteristics of each film took some practice.
Each set of test shots typically took an entire day of shooting or more, depending on whether the weather cooperated, and almost certainly entailed driving to several locations. Every shot needed to be carefully framed, and then shot on 13 different cameras, all with the same exposure, all within as narrow a window as time as possible. To complicate matters, we’d often be shooting several different ISO ratings at the same time, which means trying to do mental exposure math at the same time (f/5.6 @ 1/500s for this film, then f/5.6 @ 1/125 for that film, etc, etc). Each scene was more of a pain in the rear to shoot than a frame of 8x10 Polaroid, and once that scene was shot, it was time to find another completely different one. Imagine trying to shoot a whole roll of 35mm where each shot was a winner, and no two shots had anything even remotely similar in terms of light or color palette. Now multiply that by 13 cameras, and repeat THAT several times
We sent film to several labs for testing, but ultimately settled on the scans from Richard Photo Lab in Hollywood to base the profiles on. Richard’s was more consistent with their processing, usually was corrected more accurately, and generally had a better “feel” than the other labs, to my eye. Waiting for film isn’t the end of world when it’s from a shoot, but in our case, every round-trip to the lab was time we were waiting to learn something important, especially in the beginning. A LOT of the time developing Replichrome was spent waiting for film to get scanned (though Richard’s, to their credit, has been VERY speedy lately).
Since we needed to keep film segregated by lab, scanner, film stock, and batch, we devised and refined our own organizational scheme to quickly pull up the scans we want and the digital we want. There were hours of work just organizing everything once the scans came in, before we could even begin looking at the film itself. By the time we finished Replichrome 1, we had 135 separate sets of scans, each with between 12 and 36 frames of film, and we needed to be able to identify each one by its filename.
To get the basic color palette of each film, we used DNG Profile Editor to compare color charts from the film and digital sets. Learning how to use (and how NOT to use) DNGPE was also a process of trial and error that involved having to completely re-do the set a couple times. The DNG profiles are the backbone of Replichrome’s emulations, but they’re only one piece of the puzzle.
Next, build the basic Lightroom Preset for a film stock. We start by applying the DNG profile, which gets us 50% of the “look” of a film. Next, we move on to the real world images, carefully comparing the digital and the film, and making slight tweaks in Lightroom to match the two as closely as possible. Sometimes, a perfect match isn’t possible, in which case we have to compromise. Metamerism is a problem, as film sees some colors as different while a camera’s sensor sees them as the same. We split hairs over 2 points of red there, and a 0.5% bump in the blue channel there until, as much as possible, the preset will match the film for EVERY set of test shots we have.
The + and - versions of our presets are meant to simulate a film stock as it would look overexposed by 2 stops, or underexposed by 2 stops. Using our test images (yes, we bracketed EVERYTHING), we’d go back and tweak the basic profile for a film to reflect the changes you’d see from a different exposure of that film. Color hue shifts, contrast and saturation changes, and grain tweaks are all necessary.
Replichrome comes with presets for 13 different films, and the color versions also have a Frontier and a Noristu version, which are treated as entirely different films, for practical purposes. So that whole process you just completed there? Do it a couple dozen more times. Then go back and check your work, finesse everything to make sure everything is consistent and predictable, ask your friends, tweak, iterate, repeat.
One of the unique things we were able to accomplish for Replichrome, that NOBODY else has done, is to make our profiles behave very similarly regardless of the camera you’re using. To accomplish that, we built our own set of command-line tools in Lua and Python to do some post-processing on the profiles and presets themselves. When we’ve built all the master presets and profiles, and committed them to the repo, our custom toolchain can go to work and auto-generate profiles for the remaining cameras, which ensures absolute consistency.
Replichrome was no walk in the park to make. There was no substitute for just plain sweat and computer time in creating this set of presets. Every test shot, every profile, every preset was a labor of love that was obsessed over, revised, revisited, and perfected. Since we weren’t the first to make film emulation tools, my motto was that we had to be the BEST, and I think we’ve accomplished exactly that.