Sepia Toning

Text and images Copyright (C) 2002 Eric R. Jeschke and may not be used without permission of the author.


before.jpg after.jpg

In this tutorial I’ll show you how to sepia tone a color or black and white image. This technique is modeled on the traditional darkroom method of sepia toning in that the sepia color is applied “unevenly” to areas of different tonality. It works much better than most of the simple methods I’ve seen for image editors and provides great control! The basic technique is to create a “Sepia Mask” that will apply a sepia color layer according to a layer mask that is based on the tonality of the image. Giving credit where credit is due: I did not come up with this method. I adapted it for GIMP from a Photoshop tutorial on the RetouchPRO web site.

The Procedure


Here is the original image, loaded into GIMP. It has a bit of an old-time look, so I thought it might work well as a sepia-toned image.

Step 1

decor.jpg image-wdecorfu.jpg

You can compare the result we will get below to GIMP’s built-in Script-Fu for sepia toning ( Script-Fu -> Decor -> Old Photo) as shown at right. Come back and compare to this when you get to the end of the tutorial.

Step 2


Duplicate the original image ( Image -> Duplicate or Ctrl+D). You may want to minimize the original now (or close it) so you don’t choose it by mistake.

Using whatever technique you like best, convert the duplicate to B&W. I recommend the channel mixer for best results, but you can also convert to grayscale ( Image -> Mode -> Grayscale) or desaturate ( Image -> Colors -> Desaturate).

Whatever technique you use, convert the B&W image back into RGB mode when you’re done ( Image -> Mode -> RGB). In this case I simply did a mode change to grayscale, then back to RGB mode.

Step 3

colorselection.jpg toolbox2.jpg

Double-click on the foreground color swatch to bring up the Color Selection dialog. Dial in the color RED=162, GREEN=138 and BLUE=101 (you can experiment with this color too; this is a good starting point though.)

Step 4

layers1.jpg newlayeroptions.jpg newlayeroptions.jpg

Bring up the Layers dialog (Ctrl+L) and click on the button for a new layer. Give it the name “Sepia Mask” and choose the option to fill it with the foreground color. Click OK. You should see nothing but the color now in the image window, since it obscures the image in the layer below. We are going to selectively apply this color to the image.

Step 5

addmaskoptions.jpg layers3.jpg

Right-click on the Sepia Mask layer and select Add Layer Mask. In the Add Mask Options dialog, choose White (Full Opacity).

Step 6

layers4.jpg image3.jpg

In the Layers dialog, click on (select) the Background layer. Go up to the image window, select all and copy (Ctrl+A then Ctrl+C). In the Layers dialog, click on the layer mask icon in the Sepia Mask layer (the little white square). Then go back up to the image window and paste (Ctrl+V)

Step 7

layers5.jpg image4.jpg

In the Layers dialog, click the Anchor button to anchor the pasted image into the layer mask. In the image window, invert the color ( Image -> Colors -> Invert). This layer mask insures that the shadow parts of the image receive most of the color, the mid-tones a little less, and the highlights little to none, much the way a print sepia-toned the traditional way would be.

Step 8

layers6.jpg image5.jpg

In the Layers dialog, change the Mode (blending mode) of the layer to “Color”. This applies the color from the Sepia Mask layer according to the layer mask to the image. You now have your base result. It might be a good idea to save this under a new name at this point.

Step 9

curves.jpg image-curves.jpg

Once you’ve got the base image, you can duplicate it (Ctrl+D), flatten the duplicate ( Layers -> Flatten Image) and then experiment with:

  • Hue and Saturation ( Image -> Colors -> Hue..Saturation)
  • Color Balance ( Image -> Colors -> Color Balance)
  • Levels or Curves ( Image -> Colors -> Levels|Curves)
  • etc. etc!

You can always compare the result to the base image. If you want to start over, just duplicate the base image again and off you go.

Hint: if GIMP had adjustment layers, like Photoshop, we’d just create one of those to experiment with further adjustments. Since GIMP does not have those, we have to flatten the image to apply some of the standard controls and filters. Ergo, work on a duplicate or save the base image..

Here I decided that the image was a little flat and so I punched up the contrast using curves.

Step 10

decor2.jpg final.jpg

As a final touch, I ran the “Old Photo” Script-Fu without the “sepia” and “mottle” options. Here is the final image.

Tips and Tweaks

  • You can reduce the effect of the sepia toning by adjusting the opacity of the Sepia Mask layer.
  • Try adding some grain or noise to the image (probably before you desaturate).
  • We used a single, flat color for the sepia color. Experiment with different colors, multiple colors or a color gradient for the Sepia Mask layer.
  • You can apply levels, curves or other adjustments to the contrast mask to increase or decrease “absorbency” of the sepia color into different areas of the image.
  • The method by which you get a black and white image makes a big difference in how the sepia toning comes out.
grayscale-final-446x512.jpg desaturate-final-446x512.jpg

The one on the left was from a grayscale conversion ( Image -> Mode -> Grayscale); the one on the right started as a desaturate ( Image -> Colors -> Desaturate). Notice that there is a lot more blue-channel noise in the right-hand one. This can add a nice “grain” effect (see tip above also) if that is what you are looking for. For this particular image, I prefer the smoother tonality and darker contrast of the left-hand image.

Further Reading on Sepia Toning

The original tutorial used to appear on gimpguru.