Privacy policy
Last updated 6 September 2026
OpenPixels is a web app that enlarges, sharpens, denoises, colourises and cuts the background out of photographs. This page describes exactly what it collects, what it stores, and what it never touches. OpenPixels is open source, so none of this has to be taken on trust — the source is at github.com/open-pixels/OpenPixels and every claim here can be checked against it.
The short version: your photo is decoded, processed and saved inside your own browser tab. It is never uploaded, because there is no server anywhere in this product that accepts an image. Nothing here needs an account, and there is no analytics and no tracking of any kind. Unless you deliberately open the Account page and sign in, the only network activity is downloading the app and its AI models — and after your first visit, not even that.
What OpenPixels never collects
- Your photographs. They are read from your device into the browser tab, processed there, and written back to your device. None of it is transmitted.
- Anything derived from your photographs — no thumbnails, no faces, no embeddings, no quality measurements. The numbers the app shows you are computed in the tab and discarded when you close it.
- Analytics, telemetry, crash reports or usage statistics. There is no analytics script on the site or in the app.
- An account, unless you deliberately create one. Nothing in OpenPixels is behind a sign-in, and none of it asks who you are. There is an optional OpenApps account — see below — and it is opt-in, unlocks nothing here, and never sees a photo.
- Advertising identifiers. OpenPixels shows no ads and contains no ad-tracking code.
- Cookies for tracking. OpenPixels sets no tracking cookies. It sets no cookies at all.
Why "we don't look at your photos" is a fact here, not a promise
Most privacy policies ask you to trust a company not to misuse data it holds. This one does not, because the data is never held. The AI models run inside your browser through WebAssembly and WebGPU, on your own processor. A tool that charges for this uploads your photo and pays for the GPU that handles it; OpenPixels has no such server, which is both why it is free and why there is nothing here to collect.
You can verify this the same way anyone can: open your browser's developer tools, switch to the Network tab, and enhance a photo. After the model files have loaded, you will see no further requests. Or simply disconnect from the network — the app keeps working.
What is stored, on your device only
These live in your browser's own storage (Cache Storage, IndexedDB and localStorage) and are never transmitted:
- The AI model files — downloaded once, on first use of the feature that needs them, and kept so the app works offline afterwards. The Downloads page lists every model stored on your device, with its size, and lets you delete any or all of them.
- The app itself — cached by a service worker so it opens with no connection.
- Your settings — the options you last used and your language choice.
None of this includes your photographs; finished results are saved only where you choose to save them. Clearing site data for openpixels.app in your browser settings removes all of it.
The one thing a web server unavoidably sees
To open OpenPixels at all, your browser has to request the page and the model files from our web server, and any web server necessarily sees the requests made to it. Ours records standard access log lines — the IP address, the time, the file requested, and the browser's user-agent string — which is what makes it possible to tell whether the site is up and whether a file is being served correctly.
These logs contain no photograph and nothing derived from one, because no photograph is ever sent. They are not used to build a profile, are not combined with anything else, are not sold or shared, and are rotated and deleted on a short cycle. This is the honest limit of the “nothing leaves your device” claim: the photo does not, but the request for the page does.
The optional OpenApps account
OpenPixels has no paid tier and nothing in it is metered, so there is nothing here to buy and nothing to unlock. Every feature works, unlimited, without ever signing in — and that is not a trial or a reduced mode, it is the whole product.
There is nonetheless an Account page, because OpenApps accounts and credits are shared across a suite of apps and some of the others do have server-side work to pay for. Signing in here lets you manage that shared balance from this app. It is entirely opt-in, and if you never open that page nothing on it ever runs — the code for it is not even downloaded.
If you do sign in, you choose one of three methods, each handled by its own provider rather than by us: Google, which shares your email address with our account server; a crypto wallet, which signs a login message so your public address identifies you; or Nostr, where your public key identifies you. Our account server is reached at auth.openpixels.app and the gateway at gateway.openpixels.app; both are our own machines. No photograph, and nothing derived from one, is ever part of these requests — there is still no server anywhere in this product that accepts an image.
If you buy credits, payment is handled by the processor on our account server's own pages — card payments via Stripe, or directly on-chain for crypto and Lightning. OpenPixels never sees or stores a card number, a seed phrase or a private key.
The site and the app load no fonts, scripts, images or stylesheets from any other origin. There is no CDN, no embedded video, no social widget and no comment system.
This is enforced rather than promised. The app is served with a Content Security Policy whose connect-src lists exactly three origins: the app itself, and the two account hosts above. A dependency that tried to phone home anywhere else would be blocked by the browser and fail loudly, rather than quietly succeeding.
Where the model files come from
The models are Real-ESRGAN, GFPGAN, DeOldify, U²-Net and YuNet, each under a licence that permits this use. They are served from openpixels.app, not from a third party, so using OpenPixels does not expose you to anyone else's servers. Every file is pinned by its sha256 checksum and the exact steps that produced it are published, so a copy can be rebuilt from the upstream weights and compared byte for byte.
Children's privacy
OpenPixels is not directed at children under 13. Since it collects no personal data from anyone, it collects none from them either.
Your rights
Regulations such as the GDPR and the CCPA give you rights to access, correct, export and delete the personal data a service holds about you.
If you have never signed in, OpenPixels holds nothing about you — there is nothing to access, export or delete, and no request you could make that would return anything. Data stored on your own device is under your control at all times, through the Downloads page or your browser's site-data settings.
If you did create an OpenApps account, that account and its credit ledger are held by our account server, and those rights apply to it in the ordinary way. Write to the address below to export or delete it. Deleting it removes the account, not anything about your photographs, because there has never been anything about your photographs to remove.
Changes to this policy
If this policy changes, the date at the top of this page will be updated. If OpenPixels ever gained a feature that sent anything anywhere, that would be described here before the feature shipped — not after.
Contact
Questions about this policy: openpixelsapp@gmail.com