What the tool does to a face
Three layers ship, and each of them is a different kind of work. The skin layer splits the picture into a band that carries tone and a band that carries texture, evens the first and reduces the second by a percentage you set. The heal brush replaces a spot with skin sampled from the ring around it, matched to the tone of where it lands. The red-eye layer finds pupils that have gone red under a flash and takes the red out of them without touching the reflection of the flash itself.
Every layer is confined to that working region, and the gate described above the tool decides which pixels inside it are skin. Press Show what it calls skin and the mask is drawn over the picture with the share of the region it covers printed beside the control.
Every tonal operation on skin runs on luminance with the region’s colour held exactly as it was found. That is the one rule this build treats as non-negotiable, and there is a gate in the build that measures it rather than a comment that asserts it. A few tools sit outside that sentence on purpose and are named rather than hidden: red-eye replaces the colour of a pupil, which is the whole operation; the teeth layer moves colour because taking a cast off a tooth is a colour operation by definition; the Colour brush moves whatever colour you paint it over; Clone copies whatever it copies; and the folder surface’s white-balance match shifts a whole frame’s cast by a capped amount. Each says so where its control is.
The order to work in
Settle the region first. Press Find the face and it lands on the face by itself with the eyes and the mouth cut out of it, or drag it over the face and set its width and height by hand; either way press Show what it calls skin before anything else — if the mask is covering the hairline or leaving half a cheek out, no setting further down the rail will behave the way you expect. Widen the tone tolerance until the mask covers the face and stops at its edge.
Then the discrete marks, because a spot removed now leaves no low-frequency shadow for the smoothing pass to spread into a soft grey patch. Choose Heal on the rail, size the brush so the ring is a little larger than the mark, and click once. Square brackets resize it; every stroke lands in the ledger, where any one of them can be switched off or struck out on its own, and undo walks back a hundred and twenty steps.
Red-eye next, since it is colour work and should be judged against luminance that has not yet moved. Then skin, last, so it settles over the healed areas rather than under them. Then hold Space and look at what you have done in the loupe at 200 per cent before you export — the figure beside it says how far the result has moved from the source, measured where something actually changed.
- Face finder
- YuNet, 229,738 bytes, MIT
- Where it runs
- your processor, single-threaded WASM
- What it returns
- a box, a score and five points per face
- Split scale
- region width ÷ 220
- Skin texture reduction
- 0 to 80%, default 25%
- Texture surviving at the default
- 75%
- Working copy for the screen
- 2560 px long edge
- Copy a slider drag is judged on
- 820 px long edge
- Heal strokes kept
- 30
- Chroma drift allowed by the build gate
- 1.5° hue, 3% chroma
- Export
- full resolution, JPG at 95 or PNG
Files it opens
Two things are fetched on demand and nothing else is. The face finder is one: 229,738 bytes from our model file server, the first time you press the control that names that figure, cached afterwards so a second visit makes no request at all and can run offline. The WebAssembly runtime that executes it is 13.3 MB and comes from this domain; it is fetched at the same moment and cached the same way. Both travel to you. Nothing about the photograph travels the other way, and the rail carries a control that deletes the model from this browser again.
JPG, PNG, WebP, AVIF, BMP and ICO all go through the browser’s own decoder, and TIFF does where the browser has a decoder for it, which today means Safari. HEIC — what a recent iPhone writes unless it has been told otherwise, and therefore a large share of the portraits that arrive here — needs a WebAssembly decoder that is fetched the first time one appears and is absent from the page until then.
Orientation is settled before anything else happens. A two-pixel test image is decoded with the orientation hint switched off, and one pixel is read to find out whether this browser honoured it; the rotation is applied by hand only if the browser did not. A sideways portrait is not a cosmetic problem here — it is a face the gate has to find in the wrong place.
Past 32 megapixels, 16 on iOS, you are offered a lighter working copy and asked, because that is a choice rather than an error. Past 100 megapixels, 40 on iOS, or 120 MB, the file is declined with the figure that caused it. A JPEG carrying four colour components is CMYK and is converted to sRGB on the way in; the working space is sRGB at eight bits, so a Display P3 source is flattened into it and comes back flattened.
What comes back out
JPG and PNG leave here everywhere, and WebP where the browser really writes it; Save options adds a KB limit for forms and a square frame for headshots. JPG and PNG are not interchangeable. JPG at quality 95 is the default because a retouched portrait is a photograph, and continuous tone with grain in it is exactly what that encoder was designed around. PNG is lossless, which sounds like the careful choice and is usually the wrong one: lossless compression has almost nothing to exploit in skin, so the same frame comes out several times heavier for a difference you will not find by looking. Take PNG when this file is an intermediate that will be re-encoded later, and JPG when it is the thing you are sending.
- JPG at 95
- roughly 8 to 12 MB
- PNG
- roughly 40 to 70 MB
- Pixel dimensions
- identical to the source
- Colour written
- sRGB, 8 bits a channel
- Camera metadata kept
- none
That last row is a real loss and not a privacy feature dressed up as one. The export is drawn through a canvas, and a canvas has no metadata block at all, so the file that lands carries no camera, no lens, no exposure, no capture time — and no orientation tag, which is why the rotation is settled into the pixels on the way in rather than described in a header on the way out. For a photograph of a person there is a case that this is the better default, since the block that goes is also the block that would have held the location. It is still a loss, it is not currently optional, and you should know about it before you overwrite an original.
What it will not do
Two limits are worth knowing before you spend twenty minutes on a picture, and one decision is worth knowing before you go looking for a control that is not here.
- The face finder finds faces; it does not trace features. What comes back is a box and five points — both eyes, the nose tip, the two mouth corners — so the region is an ellipse over the box and the eyes and mouth are excluded as circles rather than as outlines. A brow, an eyelid and a lip line would need a 468-point mesh, and that is not in this release. On a group portrait every face found gets its own numbered region and skin layer.
- Smoothing a photograph taken in low light removes grain along with pore texture. Sensor noise sits in the same band as skin detail and nothing at this scale distinguishes them. On a noisy source, work at a low setting and heal the marks individually, or accept that the two go together.
- Nothing here reshapes anybody. No jaw slimming, no eye enlargement, no nose narrowing, no waist and no height. That is a decision rather than a gap in the roadmap, and it has a page of its own.
Every control on this page is capped, and the caps are not a limitation we intend to lift. A retouch that removes the lines, the pores and the shadow under an eye does not produce a better photograph of someone — it produces a photograph of someone else. This tool is built to be used at settings you would be willing to disclose.
What people ask
Why does the skin slider stop at 80 per cent?
How does it know where the face is?
What does the face finder send, and what does it keep?
Can it lighten skin by accident?
The preview looks right. Will the saved file look the same?
It smoothed the grain out of a photograph taken indoors. Is that a fault?
Is this suitable for a passport or visa photograph?
Read next
- Skin smoothingOpens with the skin layer at 25 per cent, which leaves three-quarters of the texture.
- Spots and blemishesOpens with the heal brush in hand and the region already over the face.
- Flash red-eyeLooks for red pupils as soon as a picture opens, in the eyes it found, and asks first.
- WrittenThe three arguments the rail has no room for, at the length each one needs.
The three pieces behind that last card, if you would rather go straight to one: what a frequency split actually separates, where every ceiling in the rail was set and by whom, and why a warp mesh is absent rather than capped.























