OpenPhotoId.

Free · open source · runs in your browser

Passport and ID photos that pass.

Pick the country and the document. Choose a photo, or take one. OpenPhotoId finds your face, separates you from whatever was behind you, paints the background the document requires, crops to the official head and eye positions, and checks the result against the rules before you download it.

There is nothing to sign up for, no watermark, no price after you have done the work, and nothing is uploaded — the whole pipeline runs inside the browser tab.

Works best on a phone, where the front camera is one tap away. On a computer, choose a photo you already have — any background at all.

Every step happens on your own device.

The core is written in Rust and compiled to WebAssembly. Two small neural networks — a face detector and a portrait matting model — run through your browser's own graphics hardware where it has any, and on the CPU where it does not. Nothing here has a server to talk to.

Find the face

Five landmarks — eyes, nose, mouth corners — locate the head, measure its tilt, and anchor every rule that follows.

Separate you from the background

A matting model produces a soft edge, then a second pass zoomed in on your head resolves hair at full resolution. Sold as an upgrade elsewhere; on by default here.

Paint the required background

White for a US passport, light grey for the UK, the exact colour each document names. Or a gradient, a studio sweep, or your own picture, for a photo that is not for a form.

Crop to the rules

Head height, eye line and centring each have an allowed band. The crop lands in the middle of every band at once, and three sliders let you move within them.

Check the result

Eleven checks run on the finished file — and the face is detected again on the output rather than trusted from the crop, so the checklist describes the photo you will actually submit.

Export for the portal or the print shop

A JPEG inside the portal's size window — 20 to 50 KB for India's PAN, under 240 KB for a US visa — a lossless PNG with the right DPI, or a 4×6, 5×7, A4 or Letter sheet tiled with cutting guides.

21Documents, 14 countries
11Checks on every photo
0Uploads, ever
0Accounts, trials, watermarks

The eleven checks, with the numbers behind them.

A checklist is only worth trusting if it says what it measured. Every check names its value and the band it was judged against, and the same eleven run on every document. This is what a US passport photo made from a typical portrait reports.

  1. Face countexactly one face in frame1 face
  2. Head heightthe document's band, as a share of the frame57.0% · band 50–69%
  3. Eye lineheight of the eyes from the bottom edge62.4% · band 56–69%
  4. Centringhow far the face sits off the vertical centre0.4% · tolerance 5%
  5. Rollhead tilt, from the line between the eyes2.7° · max 5°
  6. Inter-eye distanceenough pixels between the eyes for a machine to read98 px · min 90
  7. Blursharpness across the face regionvariance 1147 · min 80
  8. Lighting symmetryleft/right luminance difference across the face8.8% · warn from 17%
  9. Background uniformityhow flat and how close to the required colourΔE 0.0 vs #FFFFFF
  10. Resolutionthe exact pixel size the portal wants600 × 600
  11. File sizeinside the portal's window, found by search not guessed200 KB · max 240

Twenty-one documents, each checked against its official source.

Every entry carries the government page its rules came from and the date they were last checked; the app shows both. If the one you need is not here, it is not here — you should not have to find that out after making the photo.

CountryDocumentOutputFile
United StatesPassport · Visa (DV lottery)600 × 600 px · 51 × 51 mm≤ 240 KB
United KingdomPassport413 × 531 px · 35 × 45 mm≥ 50 KB
European UnionSchengen passport413 × 531 px · 35 × 45 mm
ChinaPassport · Visa online · 1-inch ID · 2-inch ID390 × 567 px · 33 × 48 mm40 – 120 KB
IndiaPassport · Passport Seva digital · PAN · OCIup to 900 × 900 px20 – 50 KB (PAN)
Canada · BrazilPassport591 × 827 px · 50 × 70 mm
Australia · Japan · Russia · South KoreaPassport413 × 531 px · 35 × 45 mm100 – 500 KB (KR)
SingaporeICA digital400 × 514 px
Saudi ArabiaeVisa200 × 200 px5 – 100 KB
United Arab EmiratesID card472 × 709 px · 40 × 60 mm

The full list, with sources and check dates, is in the app under "Documents covered". English and Simplified Chinese.

The only passport-photo tool where you can check the privacy claim yourself.

Every passport-photo site says your photo is safe with them. Here there is no "them": open your browser's developer tools, switch to the Network panel, and make a photo. After the app and its models have loaded, nothing else is requested.

Free, including the parts other apps charge for.

Hair-level edge detail, unlimited batches, backgrounds beyond a flat colour, print sharpening, a drawn jacket for a photo taken in a T-shirt: the five features this category sells by subscription are all on and all free. Every one of them runs on your own device, which costs nothing to provide — so there is nothing to meter.

The source is MIT or Apache-2.0. If that ever stopped being true, the version where it was true would still be there to fork.

Before you make one.

Will the portal accept it?
The file meets the published size, background and geometry rules, and the checklist tells you which of the eleven checks passed and by how much. A portal can still reject a photo for reasons no software can measure — an expression, a reflection on glasses — so read the checklist rather than assuming.
What should the original photo look like?
Face the camera straight on with a neutral expression, in even light — a window works, direct sun does not — with head and shoulders in frame and a little room above your hair. Any background at all; it gets replaced.
Does it work on a phone?
It is built for one. "Take a photo" opens the front camera directly. The first visit downloads the two models with a progress bar; after that they are on your device.
Can I do several at once?
Yes, with no cap. Choose any number of photos and one document; every photo gets the same rules, and a CSV report says which checks each one passed.
Why is there an account button at all?
One account works across our apps, and some of those do work on a server that costs money per use. Credits bought there can be spent there. Here there is nothing to spend them on, so the account unlocks nothing and you never need it.
Where are my photos stored?
Nowhere, unless you save them. The app holds a photo only while you work on it, in memory, and forgets it when you close the tab. Your language and your recent documents are the only things it remembers.
Is it really open source?
Yes — the whole thing, under MIT or Apache-2.0.