How ID Photo works
ID Photo is a free, private passport and ID photo maker. It runs entirely in your browser as an installable PWA: an in-browser face- detection model finds your face, auto-crops it to an official spec, and a reused in-browser background-removal model swaps the background to the required colour. Your face never leaves your device.
Your photo is never uploaded
There is no server and no backend. When you load a photo, your browser runs the face-detection and background-removal models locally and produces the result on a canvas. Nothing you load is ever sent over the network — not the original photo, not the face geometry, not the finished image. The site's Content-Security-Policy (connect-src 'self', plus only the two public model CDNs) even restricts which hosts the page may contact, so the privacy guarantee is enforced by the browser itself.
The only network access is the models
On the first run, ID Photo fetches two public model files: the MediaPipe face-detection model (.tflite, from Google Cloud Storage) and the IS-Net background-removal ONNX model (from the IMG.LY CDN). Those downloads are plain GETs of generic, public files — your photo is never uploaded to them. The MediaPipe WASM runtime is served same-origin from this site. Once downloaded, all of it is cached (browser cache + the service worker's Cache Storage), so the tool keeps working with no connection at all.
WebGL/GPU when you have it, WebAssembly otherwise
When your browser supports it, the models run on your graphics card for a faster path; otherwise they fall back to CPU-based WebAssembly, which works everywhere. Either way, the processing stays on your device.
Compliance is guidance, not a guarantee
ID Photo crops to the correct official size and head/eye ratios and shows a live compliance checklist (head size, eye level, centring, background). But government photo rules change, and a human reviewer can still reject a photo for things the app can't check (lighting, expression, glasses, shadows). Treat the checklist as guidance and always confirm your issuer's current requirements.
Offline-capable PWA
Install ID Photo to your home screen or desktop. A service worker caches the app shell and the models, so making ID photos keeps working with no internet connection once the models have loaded once.
No tracking by default, no upload ever
There is no signup, and by default this build ships with zero third-party scripts: no analytics, no ads, nothing that phones home. If the owner later enables lightweight, cookieless analytics (Plausible) or ads (AdSense), they are switched on only at deploy time via environment flags — and even then they describe only coarse page usage, never your photo or your face. The on-device privacy promise for your images is never traded away: your photo is never uploaded, period, whether or not analytics/ads are on.