Selecting brightness instead of regions
Every selection made so far has drawn a boundary somewhere. A luminosity mask does not. It selects by tone: each pixel’s participation equals its own brightness, so the mask varies continuously across the whole frame and there is no line for a halo to form along.
The basic one is two clicks. Open the Channels panel and Ctrl/Cmd-click the RGB composite thumbnail. You now have a selection at 100 per cent in the white areas, 50 per cent in mid-grey, zero in black. Add any adjustment layer and it arrives with that as its mask.
That single move is the correct way to recover a bright sky without the halo that a hard selection produces along a roofline. It is also the correct way to add contrast to the shadows without touching the highlights, by inverting it first.
Building the levels
One luminosity mask is blunt. The standard toolkit has several, each narrower than the last, and they are built by intersecting a mask with itself.
The arithmetic from the channels lesson: multiplying two masks intersects them. Intersect the basic brightness mask with itself and the result is brightness squared: a mask that is near-zero through the midtones and only opens up in the bright areas. Do it again and it is narrower still.
The traditional naming, from the photographer Tony Kuyper who formalised this:
- Lights 1: the plain luminosity mask.
- Lights 2: Lights 1 intersected with itself. Only the brighter half of the highlights.
- Lights 3: narrower again.
- Darks 1, 2, 3: the same, built from the inverted mask.
- Midtones: the full mask minus both the lights and the darks, giving a band that peaks in the middle and falls away at both ends.
In practice: load the luminosity selection, then hold Ctrl/Cmd + Alt/Option + Shift and click the RGB thumbnail again. That modifier combination intersects the new selection with the existing one. Repeat for a narrower band. Save each one into an alpha channel as you go, because you will want them again in the same document.
Calculations (Image > Calculations) does the same thing in one dialogue: two sources, Multiply, result to a new channel. It is faster once you know what you are asking for.
What this is actually for
Recovering a sky. A Darks mask on a Curves layer lets you lift the shadows in a landscape without the sky going grey: the adjustment does not reach the bright pixels, and there is no boundary between treated and untreated regions.
Contrast that does not clip. An S-curve applied through a Midtones mask steepens the middle and leaves the ends alone, which is the thing the tone lesson said contrast normally borrows from.
Colour in one tonal band. A warm colour layer masked to Lights and a cool one masked to Darks is split toning, done properly, with control over exactly how far each reaches.
Dodging and burning that respects the subject. Burning through a Lights mask darkens only what is already bright, so a highlight is brought down without muddying the shadow beside it.
Sharpening the right part. A High Pass layer masked to Midtones sharpens texture without exaggerating noise in the shadows or halos in the highlights.
The free routes
GIMP builds these natively. Add a layer mask with the Grayscale copy of layer option and you have Lights 1 immediately. For narrower bands, duplicate the mask into a channel and use Colours > Curves on it, or use the layer mode arithmetic. GIMP’s channel arithmetic through Filters > Generic > ... and the GEGL operations covers the rest.
Photopea has the Channels panel with Ctrl-click loading and the same intersect modifiers, so the whole technique transfers directly.
Krita has Filter Masks and can copy a layer into a mask, which achieves the same thing with a different route.
Paid panels exist that automate all of this: they generate sixteen masks and give you buttons. They save clicks and teach you nothing. Build them by hand five times and you will know which one you need before you make it, which is faster than scrolling a panel of sixteen.
Where they fall down
They ignore what the picture contains. A luminosity mask selects a white shirt and a white cloud identically, because it only knows brightness. If you want the sky and not the shirt, you need to combine the luminosity mask with a region mask: load the luminosity selection, then paint black over the shirt on the resulting mask. Most real uses are this combination rather than the luminosity mask alone.
They are tone-dependent, so they move when the tone moves. Build a Lights mask, then change the exposure underneath it, and the mask no longer corresponds to the highlights. Masks are snapshots. Rebuild them after any large tonal change, or apply tonal changes above them.
Noise gets selected too. In shadows, the luminance variation that is noise becomes variation in the mask, and an adjustment applied through it can amplify the noise pattern. Blurring the mask by one or two pixels fixes this at negligible cost to the effect.
Banding, in 8-bit. A continuously varying mask in an 8-bit file has 256 steps like everything else, and a strong adjustment applied through it can show them as terracing in a smooth sky. This is the clearest everyday reason to work in 16-bit.
Every lesson here is open. Your progress is recorded once you pass the Design, before Any Software exam.
Check your understanding
A landscape photographer uses a Lights mask to bring down a bright sky, and it works well. In the same frame, a white building in the foreground also darkens, which they did not want. What is the correct reading?
Pick the one you would defend. Your answer stays private.
Stuck on something?Ask Neema, your AI tutor
