Privacy policy
Last updated 14 October 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 gitlab.com/openpixelsapp/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. The site counts page views with software running on our own server — which sees which pages are opened, never what is in them — and there is no third party involved at all. 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.
About this website
This website counts page views. The software doing it is self-hosted — it runs on the same server that serves this page, so the count never leaves our own machine and no third party is involved. It sets no cookies, collects no personal information, and cannot follow you to any other site.
What it records is the kind of thing a web server log holds anyway: which page was opened, roughly when, the referring page and a coarse country. It records nothing about what you did on the page — no buttons, no clicks, no features used.
What it does not receive, and cannot: your photographs, or anything derived from them. This is not a policy promise but a property of how the app is built — an image goes from the file picker into a canvas and then into WebAssembly, and never reaches the network layer at all. The content security policy served with every page lists the origins the page is permitted to contact, so a script that tried to send an image would be refused by the browser rather than trusted not to.
Turning it off. Any content blocker stops it, and the app is built to work identically without it — nothing about enlarging or restoring a photograph depends on it loading.
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.
- Crash reports, telemetry, or anything about what you did to a photograph. No error reporter, no session recorder, and no record of which features you used or what you produced. Page views are counted — see About this website below — and that is the whole of it.
- 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 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. OpenPixels sets none, and neither does the page-view count — it works without them, which is one of the reasons it is self-hosted.
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, the site that linked here (its name only, not the full address), 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 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 accounts and credits are shared across our 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 names every origin the page is allowed to contact: the app itself and the two account hosts above — the page-view count is served from this same origin, so it needs no entry of its own. A dependency that tried to phone home anywhere else would be blocked by the browser and fail loudly, rather than quietly succeeding — and none of the listed origins accepts an image, which is why the policy is worth reading rather than taking on trust.
Where the model files come from
The models are Real-ESRGAN, GFPGAN, DDColor, 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 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: hello@openpixels.app