A mild green cast and a heavily stylized photo are different product problems.
For lighter cases, I wanted the default path to be deterministic and private, so Low and Medium correction run locally in the browser. The photo does not need to leave the device.
For difficult cases, Matcha Filter Remover offers an optional AI-assisted High mode. The important constraint is that the result is described as an edit, not a recovered original. Generative processing may change faces, hands, text, clothing, objects, lighting, or background details.
The workflow keeps a before/after comparison visible before download and refuses face reveal, hidden-content recovery, nudification, and non-consensual uses.
The hardest part was deciding where product copy must stop saying “correction” and start explaining reconstruction risk.
I would appreciate feedback on two things:
The current version supports JPEG, PNG, and WebP up to 10 MB. It is independent and not affiliated with TikTok or any filter platform.
The split between deterministic local correction and an optional AI path is a thoughtful trust decision, not just an implementation detail. I’d make that visible in the first-run UX: show exactly which operations stay on-device, preserve the original by default, and let people compare before/after at 100% crop. A small “why this result may differ from the original” explainer could also prevent users from treating a correction as restoration. Have you found that privacy messaging or the instant browser workflow is the stronger acquisition hook?
The local-versus-AI distinction is clear conceptually, but the harder test seems to be trust in the output. Have early users consistently judged the before/after result good enough to use, or are you still figuring out what threshold makes them comfortable downloading it?