Boost or tone down image saturation, with vibrance
Saturation is how intense the colours in a picture are. A little more makes a landscape or a plate of food look lively; a little less gives a calm, film-like mood or tames an over-processed phone shot. The image saturation tool adjusts it with one slider, adds a vibrance control that protects colours that are already strong, and lets you choose the colour model the maths runs in.
The default model, OKLCH, changes colourfulness while keeping each pixel’s perceived lightness and hue, so blues don’t darken and yellows don’t glow when you boost them. A live histogram, a before/after split, full-resolution output, batch ZIP download and lossless PNG with transparency are included — and your images never leave your device.
How to use the Image Saturation
- Add one or more images: drop them, browse for them or paste.
- Move Saturation up for richer colour, or down towards black and white.
- Use Vibrance instead of, or as well as, saturation when people are in the picture: it lifts dull colours and changes skin and vivid colours less.
- Pick a Colour model. OKLCH looks the most natural; HSL and the CSS-style luma matrix are there when you need to match other software.
- Compare with the split view and download one image, or all of them as a ZIP.
Image Saturation features
Perceptual OKLCH saturation
Chroma is scaled in the OKLab colour space so lightness and hue stay put; colours that would fall outside sRGB are pulled back by reducing chroma rather than by clipping channels.
Vibrance
A colourfulness-weighted boost that changes muted colours more than saturated ones.
Three colour models
OKLCH, HSL and the luma-preserving matrix behind CSS saturate(), with the formula shown live.
Live histogram
Watch red, green and blue spread apart as colour rises, and spot channels hitting 0 or 255.
Batch processing
Apply one setting to a whole set of product or event photos and download a ZIP.
Exact, private output
Alpha is untouched, PNG is written losslessly, and nothing is uploaded.
Saturation in three colour models
With the slider value s from −100 to +100, the scale factor is t = 1 + s ÷ 100, so +40 means ×1.4 and −100 means ×0.
- OKLCH: each pixel is decoded from sRGB to linear light and converted to OKLab (lightness L plus two colour axes, a and b). Chroma
C = √(a² + b²)is multiplied by t, which keeps L and the hue angle unchanged. If the new colour cannot be shown in sRGB, its chroma is reduced step by step until it fits. - HSL: the familiar hue-saturation-lightness model, with
S′ = min(1, S × t)and H and L unchanged. It is simple and predictable, but HSL lightness is not perceived brightness: a saturated yellow looks far brighter than a saturated blue of the same L. - Luma matrix:
out = Y + t × (in − Y)withY = 0.213 R + 0.715 G + 0.072 B. This is exactly the CSSsaturate()filter from the W3C Filter Effects specification — useful when an image must match a web page.
How vibrance differs from saturation
Vibrance multiplies the factor by 1 + v × (1 − m), where v is the vibrance value ÷ 100 and m is the pixel’s colourfulness, (max − min) ÷ 255 of its red, green and blue values. A grey wall (m = 0) gets the full boost, a fully saturated red (m = 1) gets none, and moderately coloured skin gets part of it. That is why +40 vibrance makes a dull sky noticeably bluer while a red jacket hardly changes.
Negative vibrance does the reverse and quietens muted tones first; combined with a small negative saturation it gives a faded, filmic look.
Tips and common mistakes
- Skin turns orange quickly. For portraits keep saturation under about +20 and use vibrance for the rest.
- Watch the histogram for red or blue piling up at 255 — that channel is clipping, and texture in flowers or sunsets will flatten.
- Saturation does not remove a colour cast; the per-channel auto-contrast option of the contrast tool handles that better.
- To change colours rather than intensify them, rotate them with Image Hue.
- For black and white with a choice of conversion formula, use Grayscale Image; −100 here simply removes chroma in the selected colour model.
Image Saturation FAQ
How do I make the colours in a photo more vibrant?
Add the photo, raise Vibrance to around +30 to +50, then add a little Saturation if you want more. Vibrance boosts dull colours most, so the result stays natural.
What is the difference between saturation and vibrance?
Saturation scales every colour by the same factor. Vibrance scales muted colours more and already-intense colours less, which protects skin tones and avoids clipping.
Why use OKLCH instead of HSL for image saturation?
OKLCH is a perceptual colour model, so changing chroma keeps the perceived lightness and hue of each colour. In HSL, boosting saturation can make yellows glow and blues look darker.
How do I desaturate an image?
Move Saturation below zero: −30 for a muted look, −100 for no colour at all.
Can I adjust saturation for many images at once?
Yes. Drop all of them, choose the setting once and press “Download all as ZIP”.
Does the tool keep transparency?
Yes. Only colour changes; the alpha channel is copied exactly, and PNG and WebP output keep it.