Sepia Toning with The GIMP

Before After

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 The GIMP from a Photoshop tutorial on the RetouchPRO web site.

The Procedure

Here is the original image, loaded into the GIMP. It has a bit of an old-time look, so I thought it might work well as a sepia-toned image.
You can compare the result we will get below to the 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.
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.

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 to get different tones; this is a good starting point though.)
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.
Right-click on the Sepia Mask layer and select Add Layer Mask. In the Add Mask Options dialog, choose White (Full Opacity).
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)
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.
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.
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 the GIMP had adjustment layers, like Photoshop, we’d just create one of those to experiment with further adjustments. Since the 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.

As a final touch, I ran the “Old Photo” Script-Fu without the “sepia” and “mottle” options. You could also try adding film grain to make the image look old.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. Witness:

    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.

  • Try combining this technique with simulated film grain or other techniques on this site.

Further Reading on Sepia Toning

Leave a Comment »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Blog at

%d bloggers like this: