Saturation Masks 2: How to make and use “true” 16-bit saturation masks

The first blog in this saturation masks series reviewed why Photoshop’s HSB/HSL filter is NOT a good way to create saturation masks because it consistently overstates the saturation of dark colors in the image. This post will review the method to make “true” 16-bit saturation masks that accurately map saturation in both light and dark colors. This results in perfectly feathered saturation masks for all colors in the image at all brightness levels. The best methods for using these true saturation masks, and their vibrance mask counterparts, will also be discussed. The video at the bottom of this blog reviews all the information on saturation and vibrance masks in this and the previous blog.

The image below is from the video. To see its true saturation mask, roll the mouse over the image. (The mask may take a couple of seconds to load and the rollover might not be visible in the email feed.) Notice how just the most saturated colors (orange clouds) are light in the mask. Unsaturated and dark colors are dark in the mask. Colors of intermediate saturation (blue in the sky) are shades of gray. This is a very accurate saturation mask, and it’s the starting point for making adjustments to control saturation that are equally precise. NOTE: The Granger Chart image will also be used in this blog. Copies of these images are included in the assets download folder for this blog.

There are good reasons for wanting to make saturation masks better than those created by the HSB/HSL filter. The primary one is accuracy. Creating saturation masks that properly reflect pixel-based saturation makes it very easy to use them to modify saturation in the image. Increasing or decreasing saturation, either globally or locally, can be precisely controlled once an accurate saturation mask is available. Many people have found HSB/HSL saturation masks less than useful because they end up with masks that include too many unsaturated dark colors. Inaccurate masks lead to flawed adjustments. Once a precision saturation mask is available, though, saturation adjustments become a standard part of the workflow since they offer consistent, predictable results. Another reason to make a better saturation masks is to aid in decision making. An HSB/HSL saturation mask is so obviously inaccurate that it’s hard to decide whether or even how to modify it to make it work. Once true saturation masks are available, it’s easy to quickly look at them and decide which one to use or how to make an adjustment to the mask to make it fit the image.

True saturation masks are actually quite easy to make, though the method is not entirely obvious. Start with a Selective Color adjustment layer and set the color change to “Absolute” in order to make sure the necessary adjustments are independent of the amount of color actually present in each pixel. Then for all the colors in the “Colors:” drop-down menu (Reds, Yellows, Greens, Cyans, Blues, Magentas), move the “Blacks” slider all the way left to -100%.

Selective color adjustment

For all the non-colors in the “Colors” drop-down menu (Whites, Neutrals, Blacks), move the “Blacks” slider all the way right to +100%.

Selective color adjustment

This Selective Color adjustment drains all the color from the image. So it’s now essentially a gray-scale image even though it’s still in RGB Color mode. But this gray-scale image is what the true saturation mask looks like. In order to make an actual mask of it, simply duplicate any of the color channels on the Channels panel since they’re all identical at this point. Once the duplicate channel is available, the actual Selective Color adjustment layer used to create it can be deleted. A Photoshop action to complete these steps is included in the assets download for this tutorial.

This duplicate channel is the true 16-bit saturation mask. This is the process carried out in the background when the RapidMask2 module creates a saturation mask. It results in a very accurate saturation mask that can be further modified using the buttons on the panel if adjustments are needed to better target specific colors or parts of the image.

The image below shows the Granger chart with its true saturation mask. Notice the smooth transition from saturated to unsaturated colors in both the light and dark tones in the image.

Granger chart plus saturation mask

Saturation masks, however, are really only half the story. Just like there are two main types of luminosity masks, lights and darks, there are also two types of saturation masks: saturation and vibrance. And, again, just like with luminosity masks, they are the inverse of each. Inverting a saturation mask creates the vibrance masks, and both masks are useful when balancing saturation in an image.

Granger chart plus saturation mask

Armed with these two types of saturation masks that accurately reflect true saturation in the image, it’s quite easy to become a saturation ninja, expertly controlling image saturation to your liking. There are just two main techniques to master:

  • Saturation painting through a saturation mask, and
  • Using vibrance masks as a layer masks on a Hue/Saturation adjustment layer

However, knowing which technique to use is important.

SITUATION #1: OVER-saturation

TECHNIQUE TO USE: Saturation painting through a saturation mask.

RATIONALE: Usually there are just isolated areas of over-saturation in an image, often as a result of aggressive processing. Rather than making a global saturation change to correct this, it’s often easier, and more precise, to simply paint it away with saturation painting. This is the equivalent of dodging using luminosity painting and is described in more detail in this tutorial.

HOW TO DO IT:

  1. Create a blank pixel layer set to Saturation blend mode.
  2. Create a true saturation mask and load it as a selection.
  3. Select the brush tool and set the foreground color to gray and the opacity of 5 to 10%.
  4. Paint through the active selection on the over-saturated parts of the image. The active selection of the true saturation mask will restrict the paint to landing on just the most saturated areas of the image, partially removing saturation in the process.
  5. Add additional brushstrokes until the desired level of saturation is achieved.

WHY IT WORKS: Saturation blend mode combines the saturation of the saturation painting layer with the hue and luminosity of the underlying layers. Gray paint has a saturation of 0%. So if gray paint is painted on the saturation painting layer at 100% opacity, the result would be that the underlying color would now be 0% saturated. In other words, all color would be removed. Painting with a brush opacity of 5 to 10% means that the saturation of the underlying colors will be decreased proportionally. A true saturation selection can be used to expertly confine the paint to just the most saturated colors in the images. Painting through a saturation selection with a low opacity brush and multiple brush strokes then provides a very controlled method for lowering the saturation of just the over-saturated parts of the image, which are defined by the active saturation mask selection.

SITUATION #2: UNDER-saturation

TECHNIQUE TO USE: Use a Hue/Saturation adjustment layer with a vibrance mask as the layer mask.

RATIONALE: Under-saturation in an image is often more global. The image simply looks dull when it doesn’t have enough color. While additional saturation could be painted in with saturation painting (by painting with saturated red instead of gray through a vibrance mask), large parts of most images can usually benefit from a global increase in saturation as long it’s restricted to less saturated colors, which is exactly what a vibrance mask does. So it’s often better to do a global adjustment with an adjustment layer rather than a precision adjustment with a paintbrush.

HOW TO DO IT:

  1. Create a true vibrance mask. The initial vibrance mask will usually be too revealing, so narrow the range. I like using a Zone 8-½ or Zone 9 vibrance mask as my starting point for enhancing under-saturated colors.
  2. Create a Hue/Saturation adjustment layer with the chosen vibrance mask as the layer mask.
  3. Open the Hue/Saturation properties and drag the saturation slider to the right to achieve the desired degree of saturation across the image.

WHY IT WORKS: The vibrance layer mask insures that the adjustment only targets the less saturated tones in the image. More saturated colors will NOT receive the adjustment so they won’t over-saturate with this process. The saturation boost only affects dull colors in the image because the vibrance mask controls which pixels are affected.

SUMMARY: True 16-bit saturation masks are easy to create with a Selective Color adjustment layer. Once the initial saturation mask is created, it can be inverted to create a vibrance mask. With these two masks, there are two main methods for balancing image saturation.

  1. Saturation painting with gray paint through a saturation mask is a precision method for addressing over-saturation of specific colors or elements in an image.
  2. A Hue/Saturation adjustment through a vibrance mask is a great way to bring additional saturation to under-saturated tones while sparing more-saturate colors from the adjustment.

Saturation changes to an image can be subtle, but I usually experiment with both techniques when the image is nearing completion. It’s often surprising how specifically addressing saturation in this manner can improve the image.

It’s worth remembering that saturation and vibrance masks made with the Selective Color adjustment are pixel-based masks, which makes them completely self-feathering. This means that any change you make using these techniques always blends seamlessly into the final image.

The video below reviews and demonstrates all this information about saturation masks. If you would like to practice along, a jpg of the image used in the video is located in the assets download.

Saturation Masks 1: The problem with Photoshop’s HSB/HSL filter

In addition to my work advancing luminosity masks, I’ve also been a big proponent of saturation masks. I’ve used them since 2007 when I first started writing about saturation masks and saturation painting. The way I originally recommended making them was Adobe’s HSB/HSL filter. However, Adobe stopped including the filter in Photoshop for a number of years, so I changed to a different and ultimately better method to make saturation masks. Adobe has again included the HSB/HSL filter in the Filter menu of Photoshop CC. Now that it’s returned, this is probably a good time to review why it should NOT be used to make saturation masks.

TK Basic V6 panel

The way to run the HSB/HSL filter is to create a stamp-visible layer of the image and then convert it to HSL (Hue, Saturation, Lightness) with the filter. Once this is done, the new “Green” channel is used as a saturation mask. Sounds easy, but it’s flawed. A saturation mask created by this process poorly matches the saturation in the image, especially for dark colors.

This first blog covering saturation masks will take a closer look at the HSL/HSB filter and the asymmetry problem associated with it. It’s helpful to understand the problem before moving on to the solution. To do this, I’ll use a Granger Chart, shown below, for illustration since it makes the HSB/HSL problem quite obvious. A copy can be downloaded here. (NOTE: There are some color artifacts in the image on this blog as a result of converting from ProPhoto to sRGB for display on the web.)

TK Basic V6 panel

In the Granger Chart, the most saturated colors zigzag across the vertical center of the image. Saturation will vary somewhat depending on hue, but moving vertically, either up or down away from the center, leads to colors with decreased saturation. The saturated colors in the middle gradually transition to 100% white on the top and 100% black at the very bottom. Black and white have no color at all and so, by definition, are completely unsaturated (saturation = 0%). In other words, pixels close to the center are highly saturated, and saturation decreases in a gradual manner as you move towards the top and bottom edges.

And this is indeed what happens according to Photoshop’s Color Picker when moving vertically from the center to the top edge. The image below shows saturation values from the Color Picker at evenly spaced points along the vertical axis. As you move up from the center (Saturation = 100%), saturation values decrease progressively as distance from the center increases. Exactly as expected.

TK Basic V6 panel

But look what happens as colors get darker. Saturation values, again extracted from the Color Picker, do NOT decrease when moving downward from the center. As colors get more black and contain less color, saturation values don’t change. Saturation remains at 100% even though the amount of color present is gradually decreasing. Even the very bottom pixel of the Granger Chart still has a saturation value of 98% according to the Adobe Color Picker. Strange, huh? Why does saturation remain unchanged as color intensity decreases and black increases? And why are the dark colors different than the light colors?

The actual saturation mask produced using the HSB/HSL filter (the “Green” channel after converting to HSL) matches values from the Color Picker. It is shown below. As a quick review, a saturation mask shows white or light gray in saturated colors and shows black or dark gray in unsaturated colors. For light colors, the HSB/HSL-produced saturation mask shows a smooth decrease in saturation, fading from white to black when moving from the center towards the top edge. This is exactly as expected. The central intensely colored pixels are highly saturated and show as white in the saturation mask. When moving towards the top, saturation decreases, so the mask turns gradually darker gray until it is entirely black at the top border, which is white in the image (and therefore 0% saturated).

TK Basic V6 panel

But look what happens with this HSL mask in the dark colors. The dark colors in the image remain pure white in the mask (indicating very high saturation) even though they contain less and less color when moving from the center towards the bottom. Yes, this matches the saturation values derived from the Color Picker, but it ignores the obvious fact that color saturation actually decreases gradually as you move lower from the center of the Granger Chart. There is no corresponding smooth transition in the saturation mask of the dark colors like in the light colors as would be expected.

This is the asymmetry problem that comes from using the HSB/HSL filter to produce saturation masks. Light colors show appropriate saturation and feathering in the HSB/HSL saturation mask, but dark colors show exaggerated saturation and no feathering at all.

The important thing to take away in all this is that a saturation masks created using the HSB/HSL filter significantly (and sometimes grossly) overstate saturation in dark colors of the image. Dark colors end up being mapped as more saturated than they really are. This is also demonstrated in the image below. Its HSB/HSL saturation mask is shown beside it. Notice how the letters and numbers, even though they are nearly black, are showing as a very light gray in the saturation mask created using the HSB/HSL filter. This indicates they contain highly saturated colors. But this is obviously wrong. No way does a color this dark have the degree of color saturation indicated by the mask. Black is 100% UNsaturated, and any colors approaching black should be very dark in a mask that accurately maps color saturation. But in this mask, the characters in “OPEN” and “7 TO 7” are very light. Based on these tones in the mask, their color saturation in the image should exceed that of the deep blue sky (which is a darker gray) and approach that of the reds and yellows in “GRILL” (which are also very light gray). Even worse, the black word “GEARHART” is mapped in the mask as being more saturated than the magenta background behind the hamburger bun. These characters are clearly less saturated than this. So this isn’t just a theoretical concern that happens in a mathematical image like the Granger Chart. The same problem of the mask showing over-saturation of dark colors is also quite obvious and quite extreme in an actual image.

TK Basic V6 panel

NOTES:

  1. The question can fairly be asked as to why these dark colors aren’t actually pure white in this saturation mask of the image as the dark colors are in the Granger Chart? I’m not entirely sure, but I think this probably relates to the way the Granger Chart is created. It’s made from two gradients: one of completely saturated colors and the other of black-to-white tones. I have a feeling that the colors it produces are only a subset of all colors (even though it creates what appears to be a spectrum of all color) and it’s these specific dark colors that get mapped to 100% saturation by Adobe’s Color Picker. Although, it may also be related to how Photoshop converts from RGB to HSL. Or it could be some other reason entirely. The Granger Chart happened to be what I was using when experimenting with saturation masks, and was what tipped me off to the HSB/HSL problem of dark colors appearing more saturated than they really are. But the over-saturation of dark colors has been apparent in all “real” photos that I’ve made saturation masks for using the HSB/HSL filter. The over-saturation of dark colors is seldom 100%, like with the Granger Chart, but it is always very obvious once you’re aware of it and start comparing the saturation of dark colors with other, truly more saturated colors in the image.
  2. It is also worth noting that there is still some self-feathering of the of the over-saturation in HSB/HSL-produced saturation masks in “real” images. There is no abrupt cutoff like with the Granger Chart HSB/HSL saturation mask. So using these HSB/HSL masks would still lead to a smooth blending of whatever is adjusted through such a mask. However, visually evaluating these HSB/HSL-created masks to decide where saturation is truly present in the image is nearly impossible since the dark colors end up being so light in the mask that they frequently outshine actual saturated colors. The bottom line is that any adjustment through such a mask intended to affect actual saturated colors in the image disproportionately affect darker colors in the image instead.

SAT mask menuWith the problem described, the question becomes how to make a more accurate saturation mask, one that treats light and dark colors equally so that the saturation in darker colors gradually tapers off as saturated colors are replaced with unsaturated black. What that mask looks like for the Granger Chart is shown below and was generated using the “SAT” mask option in the TK RapidMask2 panel. It shows perfect saturation feathering in both light and dark tones. This is easily achieved when using a better method than HSB/HSL to generate TRUE saturation masks.

TK Basic V6 panel

Below is the test image along with the more accurate saturation mask generated from the RapidMask2 panel. The most colorful areas are now the brightest shades of gray in the mask and elements with little or no color (the words “OPEN”, “7 to 7”, and “GEAHART”) are very dark gray. This is exactly the way it should be in a pixel-based mask that accurately maps color saturation.

TK Basic V6 panel

I’ve been using this more advanced method for making saturation (and vibrance) masks in my panels and developing workflow for close to a decade and wouldn’t return to using the old HSB/HSL filter at this point even though Adobe once again makes it available. I’ll explain how to create these TRUE saturation masks in an upcoming blog.

SUMMARY: Saturation masks produced using Photoshop’s HSB/HSL filter display asymmetrical saturation when comparing light and dark colors. Light colors show a perfectly feathered saturation transition as colors get lighter and less saturated while dark colors get mapped as being more saturated than their color would suggest. A better method for making saturation masks would take into account pixel brightness as well as saturation.

FINAL NOTE: I’m not an expert in color models and do not know why the HSL/HSB filter maps saturation the way it does or why the Saturation values in the Color Picker remain at 100% for dark colors. I just know that pixel-based masks need to accurately display the pixel-based values I’m looking to adjust if they are to be useful. That way I can properly evaluate the mask and modify it, if need be, to match my image. In the case of saturation masks, the HSB/HSL filter is definitely substandard for creating the type of masks I want to use.