Skip to content
Goat head chess knight pieceA theme-aware monochrome engraving-style illustration of a chess knight piece with a goat head.Sam Ananias Cases
Back to Lab
Lab · ID Photo Studio

ID Photo Studio

Upload a portrait, cut out the background on your device, frame the face in a 2x2 or 1x1 square, and export a print-ready file. Nothing is uploaded — the photo never leaves this browser.

Studio

Choose a portrait to begin. JPEG or PNG, up to 8 MB.

choose

JPEG or PNG up to 8 MB. The file stays on this device — nothing is uploaded. You can also drag a photo here, paste one from the clipboard, or use the camera.

waiting for a photo

No portrait yet. Choose a photo first.

waiting for a photo

Waiting for a photo — export unlocks after a portrait loads.

How it works

Every number below comes from the shipped code — the same presets file the tool imports. The evidence lives here, next to the artifact.

data

The presets

PresetPrint sizePixels at 300 DPI
2x2 (PH ID)2 by 2 in (51 by 51 mm)600 by 600 px
1x1 (PH ID)1 by 1 in (25 by 25 mm)300 by 300 px
contract

The export contract

  • Accepts JPEG or PNG up to 8 MB, longest side up to 4000 px.
  • Exports at 300 DPI as PNG (transparency preserved) or JPEG (flattened onto white) — every file is generated in this browser from the framed preview.
  • The export targets are fixed: 600 by 600 px for 2x2, 300 by 300 px for 1x1 — the frame never scales the promise to fit a photo.
on-device

The privacy model

  • Removal runs on this device via @imgly/background-removal-js (AGPL-3.0, WASM + ONNX, runs fully in the browser).
  • The model download (~40 MB, first run only) is disclosed and confirmed before it starts, and can be cancelled while it runs.
  • No image bytes ever reach the server. Telemetry is metadata only: an event name, the preset, and elapsed milliseconds.
sources

Where the evidence lives

The Lab note records the decisions behind this tool — the thin backend, the on-device removal model, and what was learned building it. Just want a transparent cutout without the framing step? TheBackground Remover is the sibling tool.

Read the Lab notes

Looking for the write-up? Read the Lab notesfor the privacy model and backend contract.