ByteScope

ID Photo Maker

Six verified sizes, guides you line yourself up with, and a 4×6 sheet to print.

Your files never leave your browser — all processing is local.

Your photo

Drop a photo here

or click to browse — JPEG, PNG, WebP or HEIC, opened in this tab

Size

Photo size

Government sizeSource

Trade conventionSource

Trade convention

Government sizeSource

Government sizeSource

Trade convention

What leaves this tab

  • Your photo does not. It is read, cropped and composited in this tab, and there is no upload endpoint to send it to — open DevTools on the Network tab and watch it stay empty while you work.
  • One file does get fetched, and only if you ask for a background swap: the MODNet portrait matting model (Apache-2.0, about 25 MB), downloaded from Hugging Face and kept in this browser's cache. It is a download, not an upload — your photo is never part of that request.

About this tool

Six sizes, each one checked against the authority that publishes it

Upload a photo or take one with the camera, pick a size, and you get a print-ready PNG at 300 DPI. The presets are Taiwan passport / ID card and the 2 inch and 1 inch photos the print trade sells, the United States 2×2 in passport and visa photo, the Japanese passport, and the photo box on a Japanese rirekisho resume form. Each one shows both units at once — 35 × 45 mm and 413 × 531 px @ 300 DPI — because the millimetres are what the office checks and the pixels are what your printer sees. Sizes published by a government are labelled as such; the ones that are only a trade convention say so instead of pretending to be law, and they carry no source link because there is no document to link to.

The guides are drawing aids, not a face detector

Turn the guides on and dashed lines appear where the crown of your head and your chin should sit, plus an eye line for the sizes whose authority publishes one. Nothing here looks at your face: you drag and zoom until you match the lines, which is the same thing a photographer does by moving the camera. That honesty matters, because a tool that claimed to auto-align would be wrong on exactly the photos where it costs you a re-application. The tool does check one thing for you — whether the crop you framed has enough pixels to print at 300 DPI — and it says the number it can actually support rather than silently upscaling.

Background replacement runs on your machine, from a model you download once

White, blue and red are one click each, and there is a colour picker for anything else. The separation is done by MODNet, an Apache-2.0 portrait matting model that is fetched from Hugging Face the first time you ask for it — about 25 MB, cached in this browser afterwards, so every photo after the first works with the network off. It runs on the graphics card through WebGPU where the browser has it and falls back to WebAssembly on the CPU where it does not, and the page tells you which path it actually took and how long it took. An edge-softness slider feathers the cut-out, because hair against a busy background is where every matting model is weakest and a pixel-hard edge is what makes a composite look fake.

Then print it the way a photo shop would

A single PNG is one download. The other is a 4 × 6 in sheet — 101.6 × 152.4 mm, the size the photo counter prints — filled with as many copies as fit, laid out in whichever orientation yields more, with cut lines drawn straight across the paper so a guillotine has something to follow. Optional bleed adds background around each photo so a slightly crooked cut still leaves you a full-size print; the dashed trim rectangle is shown on screen and is never drawn into the file. Print from this page and the browser is given the sheet alone at zero page margin. The one thing you have to get right is in your printer dialog: print at 100%, never “fit to page”, or every millimetre on this page becomes a lie.

Frequently asked questions

Is my photo uploaded anywhere?

No, and there is nowhere for it to go — this site is a static export with no upload endpoint. Your photo is read, cropped, composited and encoded in this tab. You can verify it rather than trust it: open DevTools, watch the Network tab, and make a whole photo without a single request. The one exception is a download, not an upload: asking for a background swap fetches the model file itself from Hugging Face, and your photo is not part of that request.

Will a passport office actually accept a photo I made here?

The dimensions will be right — they are taken from the issuing authority's own published specification, and the head-height guides come from the same documents. What this tool cannot do is make the rest of the photo compliant: neutral expression, both ears and the full face visible, no heavy shadows on the face or the background, no glare on glasses, no head covering except for religious reasons, and a photo taken recently. Those are on you and on your lighting. Read the requirements page linked next to your chosen size before you print twenty copies.

Where do the sizes come from?

Taiwan's 35 × 45 mm and the 32–36 mm head height come from the Bureau of Consular Affairs. The United States 2 × 2 in (51 × 51 mm), the 25–35 mm head height and the 28–35 mm eye height come from travel.state.gov. Japan's 35 × 45 mm with a 34 mm ± 2 mm head come from the Ministry of Foreign Affairs. The Taiwanese 1 inch photo and the Japanese resume box are trade conventions with no government publication behind them, so they are labelled as conventions and carry no source link. Nothing here was rounded or invented; a size that needs adding gets verified first.

Does the background removal need an internet connection?

Once, for about 25 MB. The MODNet model is downloaded the first time you press the button, with a byte counter while it goes, and then it lives in this browser's cache — after that the feature works fully offline, including on a plane. Everything else on this page never needed the network at all. If you clear site data the model is gone and the next use downloads it again.

The cut-out looks rough around my hair. Can I fix it?

Partly, with the edge-softness slider — a few pixels of feathering blends the boundary and usually reads better than a hard edge. The bigger lever is the source photo: portrait matting models struggle when the background is busy, when it is close in tone to your hair, or when the lighting is flat. Standing about a metre in front of a plain, evenly lit wall, with light coming from in front of you rather than behind, gets a cleaner cut-out than any slider will. If a result still looks wrong, keep the original background — for many offices a plain wall is already acceptable.

My printed photo came out the wrong size. What went wrong?

Almost always the printer dialog scaled it. “Fit to page”, “shrink to fit” and “scale 97%” are all on by default in various browsers and drivers, and any of them turns 45 mm into 43 mm. Set scaling to 100% or “actual size”, choose the 4 × 6 in paper you actually loaded, and print the sheet rather than a single photo — the sheet is exactly 1200 × 1800 px at 300 DPI, so it maps to the paper one to one. If it is still off, print the sheet PNG from a photo app instead of the browser.