Your photo, plainly
What happens to a photo when you reimagine it, where it goes, and what is kept.
What leaves your device
Choosing or previewing a photo happens in your browser. Nothing is uploaded until you choose a world and press Reimagine.
Before uploading, your browser makes a resized copy of the photo, at most 2048 pixels on its longest side. That copy goes to this application's server, which checks it, re-encodes it and removes metadata such as camera details and GPS location. The server then sends it to our image provider, Cloudflare Workers AI, with the instructions for the world you chose.
What Chromafy keeps
Nothing. There are no accounts, no gallery and no database of images. The server processes each photo in memory and returns the result directly to your browser. Image contents are never written to logs or sent to analytics. Chromafy has no analytics.
In your browser, the original and the result are held as temporary in-memory object URLs. They are released when you replace the photo, start again or leave the page, and they are never saved to local storage. Your downloads are yours to keep.
To prevent misuse, each person can reimagine a limited number of photos per day. The server counts uses against a one-way hash of your network address (never the address itself): a daily counter that expires within two days, and a short counter for bursts of requests that expires within minutes. In production these counters live in Upstash Redis.
If the security check is enabled, your browser also runs Cloudflare Turnstile when you press Reimagine. Cloudflare says it processes signals such as your IP address and browser details only to tell people from bots, not to identify or profile anyone. See Cloudflare's Turnstile privacy addendum.
What the provider does
Chromafy uses Cloudflare Workers AI, running the FLUX.2 [klein] image model by Black Forest Labs on Cloudflare's own infrastructure. Cloudflare's Workers AI data documentation (checked October 2026) says it does not use content processed by Workers AI to train AI models, does not keep inputs or outputs after they are no longer needed to answer the request, and keeps only operational metadata such as timings and sizes, which does not include the content.
Read Cloudflare's Workers AI data usage page and the model's terms. To fit the model's input limit, the photo it receives is under 512 pixels on its longest side.
Chromafy cannot delete anything held by the provider on your behalf.
What a result is, and is not
A result is a generative reinterpretation. The model is asked to keep your subject and composition, but details can change. Old Soul is a film-inspired mood, not a historical restoration. Please don't present a result as a factual record of a place, event or person.
The image provider may decline some photos under its safety policy. Chromafy does not try to get around those decisions.
Sharing
Share uses your device's own share sheet when it supports sharing files. Chromafy never uploads your result anywhere to create a public link.