Deband: Fix the Stripes in Skies and Gradients
Smoothing that crosses the invisible steps of a gradient without crossing the real edges of the picture, because a band step is small by definition and an edge is not. Plus a trace of dither to hide whatever survives.
Drop images here
or click to browse · or paste with Ctrl+V
JPG · PNG · WebP · GIF · BMP · AVIF
How far to look for the true shape of the gradient. Wide bands need a wide reach.
How large a difference still counts as banding rather than as real detail. This is the control that protects your edges.
A trace of noise below the visible threshold, which hides whatever steps survive. Fixed seed, so a batch stays consistent.
Raise the threshold until the bands go, then stop. Too high and it starts treating genuine detail as banding and smoothing it away.
Presets
Your photos are never uploaded. The smoothing and the export both run inside this browser tab.
People also use
Everything this tool does
Crosses bands, not edges
Sixteen neighbours are sampled and any differing by more than the threshold is discarded. On a test image with both, the largest step down a banded gradient fell from 3 levels to 1 while a 180 level edge came through at exactly 180.
The threshold is yours
A band step is one to three levels and a real edge is tens, so the separation is easy. Exposing the threshold lets you decide exactly where the line sits for your image.
Dither for what survives
Where a gradient is gentle enough that even smoothing lands on one integer for a long run, a trace of noise breaks it up, which is the same trick a well-made gradient uses.
Deterministic noise
The dither uses a fixed seed, so the same photo and settings always give the same result and a batch stays consistent.
Adjustable reach
Wide gentle bands need a wide reach to find the gradient's true shape. If bands persist at a high threshold, the reach is usually the problem.
Drag to compare
Before and after share one frame with a slider, which is essential for judging an effect this subtle.
Six purpose-built presets
Standard, gentle, wide bands, heavy banding, no dither and dither heavy.
Batch with one ZIP
Clean up a whole set with identical settings and take everything as a single archive built in your browser.
Transparency preserved
The alpha channel is untouched for PNG and WebP output.
Nothing is uploaded
No server, no queue, nothing to delete afterwards. Close the tab and every trace of the image goes with it.
What each control does
Two controls do the work and one hides the remainder. Reach decides how far to look for the gradient's true shape, and the threshold decides what counts as a band rather than as detail.
| Setting | What it does | Try | Watch for |
|---|---|---|---|
| Reach 4-8 | narrow bands | threshold 4-8 | Bands remain |
| Reach 12-24 | wide, gentle bands | threshold 4-8 | Slower to render |
| Threshold 2-4 | very cautious | any reach | Bands remain |
| Threshold 6-10 | the usual working range | reach 8-16 | Nothing much |
| Threshold 16-24 | aggressive | reach 8-12 | Real detail smoothed |
| Dither 20-40 | hides residual steps | always | Nothing much |
| Dither 70-100 | visible grain | heavy banding | Looks noisy |
Edge
aware smoothing
16
samples per pixel
0
files uploaded
Fixed
dither seed
ZIP
batch download
Free
no account needed
FlipMyFormat vs other debanding tools
| Capability | FlipMyFormat | Typical free tool |
|---|---|---|
| Files stay in your browser | ||
| Edge-aware, so detail is not smoothed away | ||
| Adjustable step threshold | ||
| Dithering to hide residual steps | ||
| Deterministic, so a batch matches | ||
| Batch ZIP download without paying | ||
| No watermark on the output |
How to remove banding without softening the picture
Banding is the visible stripes you see in a clear sky, a studio backdrop or any long smooth gradient, and it exists because an eight bit image has only 256 levels per channel. Across a large area, the step from one level to the next is a visible edge even though the difference is a single unit, and your eye is unusually good at spotting exactly this kind of small step spread over a wide region. That tells you what the fix has to do: average across those steps so they blend, without averaging across the genuine edges in the picture, which would just be a blur. The threshold control is what separates the two, and it works because of a useful fact about the problem. A banding step is small by definition, usually one to three levels, while any real edge in a photograph is much larger. So sampling a ring of neighbours and keeping only the ones within a few levels of the centre gathers exactly the pixels on the same side of the gradient and rejects everything on the far side of an edge. Practically, raise the threshold until the bands disappear and then stop; carry on and you will start averaging real detail, which is the failure mode to watch for. Reach matters too: wide, gentle bands need a wide reach to find the gradient's true shape, and if bands persist with a high threshold it is usually the reach that is too small. Finally, add a little dither. A trace of noise below the visible threshold hides any steps that survive, which is the same trick a well-made gradient uses in the first place.
- 1
Add a photo with visible banding
Drag it in, click to browse, or paste with Ctrl+V. Skies, studio backdrops and anything with a long smooth gradient are the usual cases.
- 2
Raise the threshold until the bands go
Then stop. Too high and it starts treating genuine detail as banding and smoothing it away.
- 3
Add a little dither and export
A trace of noise hides whatever steps survive. Export PNG, since saving back to JPEG can reintroduce the problem.
Why eight bits is not enough for a sky
A single level, spread across a thousand pixels
An eight bit channel has 256 values, which is plenty for most of a photograph and not nearly enough for a large smooth gradient. Consider a sky that runs from one blue to a slightly different blue across two thousand pixels: if the total change is twenty levels, each level covers a hundred pixels, so the image contains a hundred pixel wide stripe of one exact value, then another. Individually the step is one unit and invisible; spread over that area it becomes a visible contour, because human vision is far more sensitive to a small difference across a boundary than to the same difference between two isolated patches. That is why banding appears in skies rather than in foliage, and why the fix is about restoring intermediate values rather than about removing noise.
Smoothing that stops at edges
The averaging has to cross band boundaries and not real ones, and the threshold is what makes that possible. Sixteen neighbours are sampled in two rings around each pixel, and any whose value differs from the centre by more than the threshold is discarded before averaging. Because a band step is one to three levels and a real edge is typically tens, the two are easy to separate. We measured it on a test image containing both a banded gradient and a hard edge. Down the gradient the largest step between neighbouring rows fell from 3 levels to 1, which is the difference between a visible contour and nothing at all, while the hard edge, 180 levels tall, came through at exactly 180. The threshold is genuinely the control that decides this: on a subtle 15 level edge, a threshold of 6 left all 15 levels intact while a threshold of 24, which is above the edge height, began smoothing it away. The remaining piece is the dither. Where a gradient is so gentle that even the smoothed result still lands on the same integer for a long run, a trace of noise breaks the run up, which works because your eye integrates the noise back into the intermediate value it represents.
What people use it for
Skies and sunsets
The classic case. A clear sky is a long gentle gradient, which is exactly where eight bits runs out of levels.
Studio backdrops
Seamless paper and gradient backdrops band badly, especially after any contrast adjustment.
After a strong curve or levels move
Steep adjustments stretch a few input values across many output values, which creates banding that was not visible before.
Screenshots and UI captures
Interface gradients and drop shadows band readily, particularly after being resized.
Video stills
Compressed video quantises smooth areas heavily, so extracted frames often show pronounced banding.
Preparing images for print
Print exaggerates banding in large flat areas, so cleaning it up beforehand is worth the step.
Generated and rendered images
3D renders and gradients made in design tools band for exactly the same eight bit reason.
Underwater and fog photos
Large areas of nearly uniform colour are the ideal conditions for visible contours.
Six tips worth knowing
Raise the threshold until the bands disappear, then stop. Past that point it starts treating real detail as banding.
If bands persist even at a high threshold, the reach is too small. Wide gentle gradients need a wide reach.
Always add a little dither. A trace of noise hides steps that smoothing alone cannot remove.
Deband after your tonal work, not before. A steep curve creates banding, so fixing it first achieves nothing.
Export PNG. Saving back to JPEG can reintroduce banding, because the compression quantises smooth areas.
Check at one hundred percent. Banding often looks worse in a zoomed-out preview than it is in the actual file.
Troubleshooting
The bands are still there
Either the threshold is below the step size or the reach is too small to find the gradient's shape. Raise the reach first, then the threshold.
The photo looks soft now
The threshold is too high, so real detail is being averaged along with the bands. Lower it until detail returns.
Banding came back after saving
You saved as JPEG, which quantises smooth areas and can recreate exactly the problem you just fixed. Export PNG.
It looks grainy
The dither is too high. Lower it; the idea is noise below the visible threshold, not visible grain.
Frequently asked questions
What causes colour banding?
An eight bit channel has only 256 levels. Across a large smooth gradient each level covers a wide strip of pixels, so the one unit step between them becomes a visible contour even though the difference is tiny.
Why does it show in skies and not in foliage?
Because human vision is far more sensitive to a small difference across a boundary than between isolated patches. A textured area hides the steps; a smooth one displays them.
How does the fix avoid blurring the photo?
Neighbours whose value differs from the centre by more than the threshold are discarded before averaging. A band step is one to three levels and a real edge is tens, so the two separate cleanly.
Can you show that it protects edges?
On a test image containing both, the largest step down the banded gradient fell from 3 levels to 1 while the hard edge, 180 levels tall, came through at exactly 180. The threshold is what decides it: on a subtle 15 level edge, a threshold of 6 kept all 15 while a threshold of 24 started smoothing it away.
What threshold should I use?
Raise it until the bands disappear and then stop, usually somewhere between six and ten. Past that it starts averaging genuine detail along with the bands.
The bands are still visible at a high threshold
Then the reach is too small to find the gradient's true shape. Wide gentle bands need a wide reach; raise that first.
Why add dither at all?
Where a gradient is so gentle that even the smoothed result lands on the same integer for a long run, only noise can break it up. Your eye integrates that noise back into the intermediate value it represents.
Does the dither change between runs?
No. It uses a fixed seed, so the same photo and settings always give the same result, which keeps a batch consistent.
Should I deband before or after other edits?
After. A steep curve or levels adjustment creates banding by stretching a few input values across many output ones, so debanding first achieves nothing.
Banding came back after I saved
You saved as JPEG, which quantises smooth areas and can recreate exactly the problem you just fixed. Export PNG for a debanded gradient.
Is this the same as noise reduction?
No, and in a sense it is the opposite. Noise reduction removes unwanted variation; debanding restores variation that the eight bit format could not represent, sometimes by adding a trace of noise.
Will it work on a video still?
Yes, and it is a good use. Compressed video quantises smooth areas heavily, so extracted frames often band worse than photographs.
Why does my photo look soft afterwards?
The threshold is too high, so real detail is being treated as banding. Lower it until the detail returns.
Are my photos uploaded to a server?
No. The smoothing and the export both run in your browser using the canvas API. Nothing is sent anywhere.
Which format should I export?
PNG. JPEG compression quantises smooth areas, which is the same mechanism that causes banding in the first place.
Is transparency preserved?
Yes for PNG and WebP output. The alpha channel is untouched. JPG has no alpha, so transparent areas are filled with the background colour first.
Can I process a batch?
Yes. Add as many photos as you like and the same reach, threshold and dither are applied to each.
Does it add a watermark or need an account?
No to both. No sign-up, no email wall, no daily limit and no watermark on the output.