| photography, tutorial | 59 comments

Reliably color correcting your scanned film negatives is an exercise in frustration. Not anymore! I've created a set of Photoshop actions that completely automates the process and will get your scanned images looking great with minimal effort and while preserving maximum image quality.

Anyone who scans their own C-41 color negatives at home has felt the pain of trying to get the correct color and contrast out of their photos. I too have felt this pain, and I've spent hours reading and researching different approaches to get the most reliable results with the least amount of effort all while preserving maximum image quality. I've figured it out and packaged a set of automated Photoshop actions for you to use that will get you a perfect color corrected image 99-100% of the time.

You can use any scanning software you like, as long as you save your scans as positive images in 48 bit mode (16 bit per channel) with all edits and scanning enhancement options turned off. The only other software you need is Photoshop.

Update April 19 2016: I tweaked the actions a bit because I received complaints that the resulting shadows were too grainy. I also included an action for black and white scans.

Download the Photoshop actions here. If you don't know how to install Photoshop actions, Google how to do it whether you're on OSX or Windows.

With your positive scanned image open in Photoshop, you need to crop out any frame borders before running the action. I also recommend you clone out any dust or scratches first, too, because anything pure white will throw it off. Google how to run Photoshop actions if you aren't familiar with them. 

All of the edits done by the actions are non-destructive, so you can tweak or undo changes as you desire. 

If you found this useful, consider buying anything on Amazon using my referral link. This will give me a small commission on your purchase, with no extra cost to you.

How it works

First you start with your image that's been scanned as a positive. You need to crop out the frame borders and clone out any dust or scratches first. It should look something like this.

Then an invert adjustment layer is added and you get a positive image with a heavy cyan cast.

Then the first curves adjustment layer is applied, which does 90% of the magic. It essentially removes the inverted orange mask from the film base by cutting off the ends of each color channel which contain no information (see the curves dialog in this screenshot). I should note that there is no clipping of color information performed during this step, which preserves maximum image quality. Many tutorials I've followed describe performing this step manually by moving the curves clipping points while holding down the Alt key so that you can stop and pull back once you see the color channel begin to clip. That works, but why not automate it with way more reliability?

When that's done, we're left with a mostly color corrected image, but it lacks contrast and there might still be a faint color cast that remains.

The next step applies a second curves adjustment layer on top of the first that clips the color information ever so slightly, specifically only 1% in the shadows and 0.2% in the highlights. This last step increases contrast slightly while also reliably removing any remaining color casts from the image (most of the time). What you are left with is an image that will require very little further edits, if any. 

That's it, you're done! Below are a few more examples using this process.


This is awesome! I was reaching the point of getting annoyed by all the time it took to process my film after scanning. This'll save me hours and hours of work.


Great article, and I'll be sure to try it later!
I was wondering how you might adapt that for BW film? If it's C-41 BW I guess you could run the action and then desaturate perhaps? But if it's actually BW film then do you have an action for that too? Or just invert? (hell, while I'm here, any experience getting the perfect color rendition out of scanned slide film?)

Thanks again,

You could easily adapt the actions for BW film by simply omitting the second curves adjustment layer. It should work the same for slide film too.

Hi there Jeff! And thanks for the action. It doesn't seem to work for me for one bit, it seems... When I run your action, a dialog window appears with the message 'The option 'Select' is not available at the moment'. The resulting image is quite dissapointing: very blue shadows, very yellow highlights. It doesn't come near the wonderful results I see here.

I'm probably doing something wrong...but what?

JJ, no idea. I've had many people use it with success. What version of photoshop are you using?


Thank you very much for the photoshop actions! It made converting photos a breathe

HI Jeff, think I found it. In the photos I used, there was still a bit of the negative's edge. It must've taken that as the absolute black in the pictures. I'm getting way better results now.

I still get the message 'Couldn't make selection' though. Amy idea on what that could be?


JJ, I think it might have something to do with how you crop your image. I use the marquee tool and then crop using the command in the menu. I noticed if you use the actual crop tool, it renames the background layer on you. The very last step in my action is to select the background layer, but it's possible that the action is getting confused if the background layer gets renamed.

Hey, thanks for this action! I'm trying to use it with my PC's Photoshop CS5 and it's saying it's incompatible? Any clue what the problem could be? What version Photoshop do you run it on?

Zenz, I am using the Adobe Creative Cloud subscription, so it's the latest version (CC 2015 I believe). I am not sure how far back the compatibility goes.

I use CS2 and it works perfectly, so compatibility goes pretty far

Thank you so much for this. It's going to change my life.

Thank you very much for these PS actions. I'm impressed with the quality and speed. You just saved my life ;-)
I "scan" my negatives with a camera and as the light source I use an enlarger color head to bring the colors more within a color range of the camera sensor. I try to color balance the negatives to around 5000-6000°K and as close as possible to 0 tint for the neutral colors within a frame using the color head before I get the images into ACR. Then your action does the rest.

Hello Jeff, I am impressed by the fast and stunning results. I was several days investigating the best way to positive my negatives films. However, I would like to ask you about one point. I was worried about the orange mask, that is different depending on the development process, film type etc... What do you think about that? would it be possible to take into account this factor in your method?

Thanks a lot again, your work is really helpful and encourage to continue with the hybrid analog-digitla work flow.


The action is "smart" enough to take care of variances in the orange base between film stocks. However, a slightly less automated way involves selecting the orange base as the "black point" (after inverting your colors) when setting your curves adjustment. I found this method to give more accurate results depending on the development process and the scene.

Thanks! Just wanted to say that these really do the trick - so much easier than fiddling with the curves manually.

Just use it as a batch process on my first two rolls of color negative film in 15 years: https://flickr.com/photos/phidauex/…

I fucking love you. Why havent I googled this sooner. You will save me so much time!

You are the Jeff and you are the best. Thank you so much for this. Thanks to you. I get to see the unique colours of different films that I use.

I am new to actions. I cannot see a .ATN file in the download from your link above, and so cannot install it as an action file. Am I missing something obvious, I understood these files are often zip files which are unzipped to give the correct file?
thanks, Col

Col, just drag those files into your photoshop window. They should install automatically! I can't wait to try this out when I get home!

Tested with film scanned with a D810 and works! Will be spending a few bucks on Amazon so you get some kickback.

Tested with negatives "scanned" with a D800. Works really well! Thank's!!!!

Instant bookmark thanks!

Hi. Just stumbled upon this page. Thanks for putting it in actions. An interesting alternative when using the imagemagick+negfix8 command-line is not an option.
However, I'd love to know about your sources of research. Have you perhaps found articles/books/videos that explain why this is the "correct" way of doing it ? (ie. finding darkest and brightest points for each individual channel in order to "balance" or have an initial interpretation of the negative)
I've found multiple methods but rarely have I found proofs and detailed explanations why such and such approach is valid, from a color processing standpoint.


Hell Sir;
Where can I buy this Photoshop action?

It's in the post body to download - it's free. But you can pay me if you want.

Jeff, have you ever compared your results with those obtained by the ColorPerfect plugin for PhotoShop? I'm curious if that would be worth the purchase when your action already works this good.

Hey Jeff, great job on the action, but I'm having a problem. When I run the action, it inverts the picture making it heavily cyan (as it is supposed to), but the next step doesn't really remove the cyan color. I'm wondering if CS3 would require slightly different steps?

JJ, yes I have and the results vary depending on the photo. I am not sure what secret sauce ColorPerfect uses, but they're not always the same result. Not better or worse, just different. It might depend on your preference.

Alex, I am not sure, it's possible your version of photoshop is too old (10 years at this point)

Thank you for the quick response. I am going to "fine tune" the steps in the script. If anything, this gave me an awesome starting point!

Great information, but I am a newbie to this. I am picking up film photography again, this time medium and large format. I'd like to scan color and B&W negs with an old HP flat scanner that will create a file with a lot of detail. I'm not sure which photoshop to buy. Does the Elements version have enough features to do what you have lined out here? Thanks

Smitty, I have no idea if Elements supports Photoshop actions, I would assume not.

You're a life saver! I was almost giving up on film photography until I found this. It works perfectly 90% of the times, and the other 10% it only needs some slight adjusting. Hero!

Is it really required to remove dust before running this action? A lot of times I like to see what it looks like before commuting to dust removal.

J, it is not crucial but it does help in some cases when there is very very large spots of dust that are pure black or white.

Hi Jeff, I have Photoshop CC 2015. So I open my scan in PS, apply your action, but the result is a positive image with a cyan color cast. Do you have any advice on what I should do after the action? How do I subtract the color cast using curves or levels? Thanks!

Calvin, that usually happens when you haven't cropped out the frame borders from your image first.

Holy crap. Such a simple solution. Thanks for the quick reply! I'll be using your referral link for a long time.

Holy crap. Such a simple solution. Thanks for the quick reply! I'll be using your referral link for a long time.

Its not working for me. I'm using a dutch version of photoshop. Therefore it doesn't recognize de layer-names. Is there anyway to adjust that?

sorry for my bad English

Jeff, I have the exact same problem as Jac here: in my Dutch version of Photoshop the layer "Background" is called "Achtergrond" (just threw in your first free Dutch lesson). How can we change that to make this action work the way it should?

P.s. I've tried your action on the RAW-files you can get out of Vuescan as well. Those results are too contrasty and some colours tend to oversaturate. In particular the reds in skin and the greens of foliage.

Would you suggest simply not using RAW's or trying a different approach?

Thank you for sharing this!
I really want to automate my workflow, i take lots of time trying to adjust scanned images in lightroom...
However, I am having some trouble also with this method.
I am scanning Fuji Industrial 100 film with PrimeFilm XA scanner and Vuescan, set as slide film. I got a negative image similar to your sample here, but when using the actions, all i get is a very washed-out image.
There is almost no color cast, i think... But the photo is really washed out, almost without color (very low contrast & saturation).
I think i am doing something wrong, but what do you think it is?

1.I am already cutting the frame edges.
2. I've got similar results with Fuji Natura 1600 and Lomography Color Negative 100 films, so it's something wrong here, i think.

I'm the same person who asked the question above, and i've already figured out the solution.

To those using vuescan: Don't use the RAW file straight out the way because it has a gamma setting of 1.0.
Use the raw file to export a 48 bits TIFF file, and set in the "color" tab:
Curve low: 0.001
Curve High: 0.001
Brightness: 2.2 (This is the gamma value... You can use 1.8 depending on yout system, I think. i use the standard 2.2).

Set it up as a generic COLOR SLIDE (not negative), and do the process above.

If you get washed out colors, try to clip out more highlights and shadows by:
1. Flatten the image after running the actions of this page
2. Image -> Adjustments - > Levels
3. Options
4. Find dark and light colors
5. Try higher percentages of clipping

This was all by trial and error, so maybe it's not the best method.

Thanks a bunch Ricardo! Works like a charm :)

Wow, this is just awesome, I really like the look of vintage films in my digital photography work. I often use PsdFilm, have you ever heard?

Nice article, but there is much easier and much more natural way to convert color negatives i PS.
1) Scan your negative to RAW 16bit file (or hold them in front of your monitor with white background color and take snap with DSLR) Do it without any corrections or enhancements by the scanner software.
2) Scan or take snap of (small) piece of film without picture (gap between the pictures or the piece of the film on the beginning or the end). You will need it to find color of your orange mask, so do it without any color corrections or enhancements.
3) Open both pictures in PS.
4) Open color picker dialogue and use eyedroper tool with big averaging setting to pick the color of the pure orange mask. Now you can close the image with the orange mask sample.
5) Convert Background of the scanned negative to normal Layer (doubleclick on it in layers window) and create new empty layer and place it below the negative layer.
6) Use paint bucket tool to fill the new empty layer with the orange mask color.
7) And now is the trick! Change mode of the upper (negative image layer) to Subtract. the result is more or less perfect positive, because color values of pixels are subctracted from the value of orange mask which makes them inverted and simultaneously removes orange mask cast by the most natural way.

After that step I usualy merge this two layers, convert the merged layer to smart object and aply Camera Raw filter to tune up the color, contrast and denoise settings of the image.

Really appreciate the steps tutorial. I've been getting far better quality images with my epson v370 now. The only thing that keeps bothering me is the unshark option... Some of my images aren't as sharp as they supposed to be. Could you tell a thing or two about this step?

having problem with download, expected a "atn" file but got [AdjLUsngObjcAdjLTypeObjcCurvesCrvs presetKindenumpresetKindType] text only. What am I not doing correctly

Just freaking awesome. Works works works !!!

Thank you very much, this is great! Saves me a lot of time and is very consistent. I'm using a dutch version of photoshop, so I had to change "achtergrond" to "background" and "Omkeren 1" to "Invert 1". After that it works like a charm. As a side note... I'm using a dslr for scanning and did a test with different 5 White Balance settings. The differences in the end result, after your action, are neglisable.

Don't want to spam, but for those who are interested, this is one of the results:



Do you think this action would translate to another program like Affinity Photo?

Best, JJ

Thank you so much for sharing this. It cut my editing time down drastically and with better results. The rest is up to my taste. Cheers!

im making contact sheets - basically using D850 with 60mm macro nikkor lens for sharpness. so there are a lot of gaps - i shoot on strobed lightable, invert, go to curves point black eyedrop at clearest neg edge for max black of orange neg base, then find darkest neg point for white dropper tool to get bright white - its the closest i can get then i tweek over all color for average ---i haven't come up with anything other ideas

Awesome stuff, thank you!

I have to say this is the best and simplest approach I’ve tried, and good on you for making the action available for free. I hope you don’t mind that I’ve linked this article to the Dslr scanners FB page. https://m.facebook.com/groups/287716734970881
Jeff and Anybody else interested in scanning film with a Dslr should check it out As we’re trying to build a community that she is it’s knowledge, experience and understanding.

Thanks so much! This works amazing for me!