A privacy-first background removal tool designed to run entirely in the browser. Select a portrait, remove its background automatically, preview the result, and download a same-size PNG with smooth transparent edges—without uploading the image to a server.
Project status: Specification and implementation planning are complete. Application code has not been implemented yet. See the task backlog for the planned delivery sequence.
- Process static JPG and PNG portraits locally in the browser.
- Preserve source dimensions and foreground colours in RGBA PNG output.
- Produce soft alpha boundaries for hair and other fine details.
- Preview results on a transparency grid and choose a safe output filename.
- Process nested directories sequentially without stopping after one failed image.
- Download batch results as a ZIP that mirrors the input directory tree.
- Resolve JPG/PNG naming collisions deterministically without overwriting files.
- Support current Chrome, Edge, Safari, and Firefox desktop releases.
Image decoding, person matting, alpha composition, PNG encoding, and ZIP creation will happen on the user's device. Images, masks, filenames, metadata, and derived output must not be sent to an inference service or analytics endpoint. Only static application, runtime, and model assets may be downloaded.
The implementation uses a TypeScript 6.0, Yarn, and Turborepo workspace. Every application or
library package belongs under packages/:
| Package | Responsibility |
|---|---|
web |
React/Vite interface and processing worker |
image-core |
JPG/PNG validation, decoding, alpha composition, encoding, and naming |
inference |
Model provenance, preprocessing, ONNX Runtime Web, and matte normalization |
batch |
Recursive scheduling, collision planning, failure isolation, and ZIP generation |
test-fixtures |
Licensed/generated fixtures, expected manifests, and artifact verification |
The initial model candidate is BiRefNet Lite Matting with WebAssembly as the universal execution path and optional WebGPU acceleration. It must pass the repository's browser, memory, performance, and image-quality benchmark against MODNet before release.
- Feature specification
- Implementation plan
- Technical research
- Data model
- Package and worker contracts
- Validation guide
- Implementation tasks
- Project constitution
The following commands describe the planned development workflow. They become available after the workspace setup tasks are implemented:
corepack enable
yarn install --immutable
yarn devPlanned quality gates:
yarn lint
yarn format:check
yarn typecheck
yarn test
yarn test:browser
yarn build
yarn test:e2eRead AGENTS.md for repository structure, coding conventions, TDD expectations, commit style, and privacy requirements. Work through tasks.md in dependency order. Each behavior change must begin with a failing test, and tasks should be marked complete only after fresh verification.
Do not commit private photographs or unverified model binaries. Model changes must record their source revision, checksum, license, and benchmark evidence.
A repository license has not been selected yet. Public access does not grant permission to reuse, modify, or distribute the code until a license is added.