Enlarge a picture
Photographic visual for Why A Model Face Is Not A Face

Why A Model Face Is Not A Face

Why a model's face is not a face

A face thirty pixels tall holds about as much information as a thumbnail of a thumbnail. Ask a trained enlarger for more and it will give you a face — the most likely one, not this one.

What the model is actually doing

A super-resolution network learns from pairs: a sharp picture and the same picture made small. Shown a small, soft patch, it produces what usually sat under that kind of softness in its training pictures. For bricks, leaves and fabric that is a good bet; nobody needs the original bricks.

A face is different. At thirty pixels tall the eyes are two or three pixels each. Thousands of different people reduce to the same thirty pixels. The network cannot know which of them this was, so it draws a face consistent with the pixels — sharp, convincing, and somebody else’s.

The detail a model adds to a small face is invented. It may look like the person. It is not evidence of what the person looked like.

How small is too small

There is no single line, but the arithmetic is simple: the fewer pixels between the eyes, the more of the result is the model’s guess. This site starts its caution at faces under about 48 pixels tall — roughly where the eyes stop being more than a handful of pixels.

A face's height in the source, and what a 4× model must supply
Face heightEyes, roughlyAt 4×, pixels the model supplies
24 px2–3 px across15 of every 16
48 px5–6 px across15 of every 16
200 px20+ px across15 of every 16 — but now constrained by real detail

Why the share is the same and the risk is not

A 4× enlargement always makes fifteen new pixels for every one it had. What changes with face size is how tightly the recorded pixels pin those fifteen down. On a 200-pixel face the recorded detail leaves the model little room; on a 24-pixel face it leaves it almost all of it.

What this site does about it

Before any model runs, the bench shows a caution with two equal answers: enlarge with the model anyway, or use the arithmetic result. The arithmetic result invents nothing: a small face stays a small, soft face, which is the honest picture of it. The choice is written into the enlargement record that travels with the file.

This build has no on-device face detector, so the caution is shown for every model run rather than only when a small face is found. No model here is trained to “restore” faces, and none will be: a face-restoration model renders a different person by design.

Never use a model-enlarged face to identify anyone.

Back to the picture