How to use
- Drop your file(s) into the box above — or click it to browse.
- Conversion starts immediately; the tabs switch to a different output format.
- Click Download on each finished file — or Download all (.zip) for a batch. Nothing was uploaded at any point.
Why pixelation is drawn into the pixels
Screenshots of chats, photos of crowds, kids' school events, marketplace listings with bystanders, evidence photos — the common thread is that the faces are the sensitive part. Two design decisions follow. First, the blur is a destructive mosaic: the face region is downsampled to coarse blocks and stamped back, so the detail is mathematically gone from the file — unlike "redaction" done with a semi-transparent layer or a PDF annotation, which can sometimes be reversed. Second, the detection model itself is served from this site and executes in your browser via TensorFlow.js — the network tab shows the model downloading to you, and your photo going nowhere.
Detection uses BlazeFace, the short-range face detector from Google's MediaPipe stack (Apache-2.0, self-hosted here). It excels at clear, near-frontal faces — portraits, selfies, small groups. Verified against NASA's public-domain crew photos: 1/1 and 3/3 faces found and pixelated in our automated tests.
| Property | Behavior |
|---|---|
| Detector | BlazeFace (Apache-2.0) on TensorFlow.js — self-hosted, ~400 KB |
| Execution | WebGL in your browser — no cloud inference |
| Blur style | Coarse mosaic, box expanded ~30% to cover hair/forehead |
| Multiple faces | All detections pixelated, count reported |
| Reversibility | None — detail is destroyed in the output file |
Honest limits
- Tiny faces in wide crowd shots can be missed — the detector is tuned for near-range faces. Check the count in the status line and the preview before sharing.
- Extreme profiles and heavy occlusion (masks, sunglasses + cap) reduce detection; when it matters, verify visually.
- You want selective blurring — v1 pixelates every detected face; per-face opt-out is on the roadmap.