Tonight I tried to clean up four scanned magazine pages from
early-90s fashion editorials. Helena Christensen on every one. A
brown Hermès coat on a white background, a black Moschino jacket
against the Catherine Palace, a Fabrizio Ferri beach shot, a
French magazine spread. Soft gradient backgrounds. The kind of
photographs that should have looked clean and didn't.
I tried four things in sequence, the way you do when each one
fails. Topaz Wonder 2,
which I praised earlier this year
for finally showing some restraint, sharpened the whole image and
made the gold rope braiding on the jacket pop, but the gradient
bands behind her (vertical pinks and lavenders in the foreground
concrete) became more visible, not less. Sharper bands. Nano
Banana Pro hallucinated a "VOGUE OCTOBER 1994" stamp into the top
corner of one image and garbled the French body copy on another.
The ffmpeg gradfun filter softened the bands at strength four,
then six, then eight, with diminishing returns. Eventually I
added film grain on top of the gradfun pass and the bands
disappeared. Not because they were fixed. Because the grain hid
them.
That last move was the only thing that worked, and it didn't work
the way I wanted it to.
I sat with that for a while. The gap between what these tools say
they do and what they're actually capable of is wider than the
marketing wants you to believe. Topaz Wonder 2 promises clean,
natural, professional results. Black Forest Labs describes
FLUX.1 Kontext as
in-context image generation,
not restoration. Google ships Nano Banana Pro as image generation
and editing. None of the model makers themselves use the word
restoration in their official copy. It lives in third-party
blog posts, enthusiast tutorials, and the marketing decks of
resellers. The people who actually built these things are careful
about it. They know what they're shipping.
The reason became clearer the more I thought about it.
By the time that Vogue page reached my Desktop, three lossy steps
had already happened in series. The photographer's smooth
gradient was rasterized into CMYK halftone dots at print time.
The printed page was then scanned in 8-bit, which captures only
256 brightness levels per colour channel — a smooth gradient
needs more than a thousand intermediate values, and the other 750
were rounded away. The scan was saved as JPEG, which divides the
image into 8x8 blocks and throws out the high-frequency data that
would have hidden the quantization steps. Three quantizations in
a row, each one mathematically irreversible. By the time I opened
the file, the smooth gradient the photographer captured no longer
existed inside it. What was there was a banded approximation, and
the bands were the data.
That's the wall.
Any tool that processes the file has to look at the bands and
decide: is this region a real banded image, or is it a smooth
gradient that's been damaged? Without context, those two states
are indistinguishable. The tool has to guess. Every guess creates
new artefacts.
Audio engineers have been living with this exact mathematics for
forty years and they're more honest about it than image software
is. When you reduce a 24-bit master to 16-bit for CD release, the
quantization step destroys information nothing can recover. The
standard fix is dither — adding deliberate, low-level noise that
converts the structured quantization distortion into broadband
noise the ear is less sensitive to. No mastering engineer would
ever say dither fixes the bit reduction. They say it masks it.
The vocabulary is
precise: quantization error is irreversible; dither is a
perceptual trade.
Image restoration borrowed the tools but dropped the honesty.
Topaz markets debanding as recovery. Adobe sells Generative Fill
as reimagining. Cloud upscalers promise enhancement, which by now
means whatever the user wants it to mean. The actual operation,
in every case, is the same: invent the missing information based
on a learned prior, and hope the invention is plausible enough
that nobody notices. The
ffmpeg gradfun documentation
is unusually candid about this. It describes itself as a filter
designed for playback only and warns "do not use it prior to
lossy compression, because compression tends to lose the dither
and bring back the bands." The author of the filter is telling
you, in the official docs, that the fix is perceptual and any
subsequent compression will undo it.
Topaz's own docs are gentler. Their
generative models
"add definition and detail," the page says. Generation, not
restoration. The vocabulary just sounds nicer than what the audio
engineers say.
What worked for the Helena pages was the audio engineer's trick.
Run gradfun first to soften the gradients. Then add a layer of
controlled film grain. The grain hides the remaining bands by
giving the eye texture to focus on instead of stepped edges. The
result looks grainy instead of banded. For a 1990s magazine page,
grainy is the right answer. Actual printed pages had paper
texture, ink dot patterns, and physical grain. The artificial
grain slots into that aesthetic in a way that fake-smooth
gradients never would. It's not recovery. It's masking. It's the
same trade audio mastering has been making for decades.
The deeper thing I keep coming back to is that this was an
information loss
problem hiding inside a UX problem. The tools were doing exactly
what they were designed to do: adding plausible detail, smoothing
gradients, generating new content from priors. None of them were
designed to recover something that no longer existed. The
frustration came from believing the marketing, not from any
specific tool being broken.
Helena is still on my Desktop, eight files now. Original, four
failed attempts, plus the gradfun-and-grain version that almost
works. The gradient behind her is grainy in a way the printed
page never was. Some of her hair is a little sharper than the
source. Her eyes are slightly bluer. The text caption on the
left side is pixel-for-pixel identical to the original, because
the tool I trusted the most (ffmpeg, the dumbest one) knew it
had no business touching real detail.
Sources: