Privacy
NoAdsPhotos processes images entirely in your browser. Image files never leave your device — there is no upload, no server-side rendering, and no cloud round-trip.
What this site fetches (from this origin only)
- HTML, CSS, JavaScript, and self-hosted Onest fonts.
- The JSZip library (~97 KB) — ONLY when you click "Export queue (ZIP)" for the first time. Vendored from stuk.github.io/jszip, served from this origin. Used to package your batch exports into a single ZIP locally — no network traffic.
- The jsPDF library (~420 KB) — ONLY when you click PDF export for the first time. Vendored from github.com/parallax/jsPDF (npm), served from this origin. Used to build PDF files from your images locally — no network traffic.
- The libheif HEIC/HEIF decoder (~1.1 MB JavaScript + WebAssembly) — ONLY when you first import a
.heicor.heiffile. Vendored from github.com/catdad-experiments/libheif-js (which packages strukturag/libheif), served from this origin. Cached by your browser thereafter. - Self-hosted ML model files for background removal (the @imgly/background-removal ISNET fp16 model + ONNX Runtime Web WASM kernels — both the CPU SIMD path and the WebGPU/JSEP path so the model can run on the GPU when available). These files (~118 MB total) are part of the site code, shipped from this repository — they are NOT a separate first-use download from a third party. Your browser fetches them only the first time you click "Remove background", from this origin, and caches them thereafter. The browser pulls only the kernels it actually needs — CPU-only browsers never download the WebGPU variant, and vice versa.
- Self-hosted ML model file for face auto-detection (a MediaPipe BlazeFace ONNX export, re-distributed by Qualcomm AI Hub Models, Apache-2.0). The graph (~78 KB) + external weights (~517 KB) are part of the site code, shipped from this repository. Your browser fetches them only the first time you click "Auto-detect faces" in the redact tool, from this origin, after a one-time consent prompt. Cached by your browser thereafter. Inference uses the same ONNX Runtime Web bundle already vendored for background removal — no additional runtime download.
- Self-hosted OCR engine for text auto-detection (Tesseract.js v7 + tesseract.js-core v7, both Apache-2.0, plus the English
eng.traineddataLSTM model from tessdata_fast, Apache-2.0). The library (~174 KB JS + ~20 MB of LSTM-only WebAssembly variants; your browser only downloads the single variant matching its SIMD support) plus the gzipped English model (~1.9 MB) are part of the site code, shipped from this repository. Your browser fetches them only the first time you click "Detect text" in the redact tool, from this origin, after a one-time consent prompt. Cached by your browser thereafter. OCR runs entirely in your browser — recognized text never leaves your device. - The favicon and logo SVG.
What this site does NOT do
- No third-party CDNs (no Google Fonts, no jsDelivr, no cdnjs, no Cloudflare-served libraries).
- No analytics or telemetry (no Google Analytics, Plausible, Fathom, Mixpanel, gtag, fbq, or similar).
- No cookies. No fingerprinting. No localStorage data shared off-device.
- No upload of your images, masks, or edits. No "save to cloud" feature exists.
- When you share images to NoAdsPhotos from your phone's share sheet (Android only), those images stream directly into the in-browser queue. They are not uploaded; no network request is made with the image content.
External links that open on click
- GitHub source repository — only if you click the "Source" link in the footer.
- Ko-fi tip page — only if you click "Tip" or "Support this site".
- Nothing else; verify in DevTools → Network.
Local storage
Your preferences (language, theme, default export format and quality, overlay outline visibility, brush smoothing, thumbnail auto-refresh, and which topbar controls are visible) are saved in your browser's localStorage. You can clear them anytime via your browser's site-data tools.
The keys we set are: noadsimages_lang, noadsimages_settings, noadsimages_bgremove_consent, noadsimages_heic_consent, noadsimages_face_detect_consent, and noadsimages_text_detect_consent_v1. None of them contain image data.
AI translations
The UI is structured to support 15 languages, but only English has shipped so far. AI-assisted translations for the other 14 are planned for a follow-up release.
Open source
Licensed under GNU AGPL v3.0. Source repository: https://github.com/Dan512/noadsphotos.
Support this site
If this is useful, tip via Ko-fi.