Privacy Policy
The AI Attractiveness Test processes your photo on your device, and so do the Face Symmetry Test, Golden Ratio Face Test and Canthal Tilt Calculator, which use the same on-device analysis. The Hunter Eyes Test uses temporary server processing when you choose Measure. The paid Full Face Report uploads one photo, only after you agree, to make hairstyle try-ons; its section below explains how long it is kept.
What happens to a photo
For the AI Attractiveness Test, your browser decodes your selected file in memory, checks its quality and uses a local model to estimate facial points. Those points and your result stay in memory. We do not write photos, landmarks or results to localStorage, sessionStorage, IndexedDB, Cache Storage or a service worker. Using Change photo, refreshing, leaving or closing the page discards the current session. Returning through browser history starts in the empty state rather than restoring the previous photo. Choosing Download Result creates a PNG locally and saves it through your browser.
True Mirror camera
The True Mirror asks for camera access only when you select Turn on camera. The video is shown on the page and is not recorded, uploaded or stored; the camera stops when you select Stop or leave the page. A photo you take stays in the tab's memory until you save it, and measuring it uses the same on-device analysis as the AI Attractiveness Test.
Hunter Eyes photo analysis
Selecting a photo on /hunter-eyes creates a local preview. Clicking Measure sends the complete photo through this site's API to the eye-area analysis service. The service estimates eye and brow boundaries and MediaPipe landmarks, then returns measurement values and annotated images. Temporary processing files are deleted after the response completes or fails. The request and response are marked no-store and are not written to an account or saved history. Canceling stops the browser request; server processing that has already begun may finish before its temporary files are deleted.
Hunter Eyes photos, measurement values and analysis images stay in browser memory after delivery. Clear photo, refreshing or leaving the page releases that session. Downloading an image or JSON saves a file only when you choose that action. Photo and analysis content are excluded from application analytics and logging. Hosting providers still handle connection information needed to process the request.
Full Face Report: account and payment
The free tools need no account. The paid Full Face Report does, so the report belongs to you and can be emailed to you. You sign in with Google or with a six-digit code sent to your email address; our account service keeps your email address and your sign-in session, held in your browser as an HttpOnly cookie. If you sign in with Google, your Google name and profile photo are shown in the site header; the photo loads from Google's servers. Payment is handled by Stripe, which receives your card details; we never see them. We keep the order record: your email address, the amount, and whether it was paid or refunded.
Full Face Report: your photo and try-ons
The Full Face Report is the only part of FaceCoda that uploads a photo, and only after you tick the consent box. Your photo is first measured in your browser like in the free tools. When you choose Build my report, the browser sends us the measurements as numbers and a head-and-shoulders crop of your photo, re-encoded as a JPEG so the original file's metadata, such as location, is not included.
We store the crop in a private storage bucket and give our image generation providers, SeeAPI and, if SeeAPI fails, KIE, a link to it that expires within an hour. They use it to make four AI hairstyle try-ons of you. We delete the photo as soon as the four try-ons are finished or have failed. A storage rule deletes any photo left after one day; it runs about once a day, so a leftover photo can last up to two days in the worst case.
The try-ons and the measurements are kept with your report for 30 days and then deleted the same way. You can delete the report, its try-ons and any photo still waiting at any time with Delete report on the report page. The report is reached through a private link that we email to you; anyone you share that link with can see the report, so keep it to yourself. We use the photo and try-ons only to make and show your report: never for training, advertising or anything else.
What uses the network
The site and its fixed model and WebAssembly files are delivered by Cloudflare from the same site origin. Ordinary HTTP caching may retain public application assets, never your photo. The hosting provider necessarily handles connection information such as IP addresses and requested URLs to deliver the website. A local-processing promise does not mean the page makes no network requests.
Cloudflare currently adds Network Error Logging (NEL) response headers. A supporting browser may send network-failure diagnostics, including requested URLs and connection information, to Cloudflare. This hosting-managed reporting remains enabled; it is separate from this photo analysis and application events.
Analytics and SDK metrics
We use Google Analytics 4 (GA4) to measure page visits and a strict allowlist of tool interactions, such as starting an upload, completing an analysis, retrying or downloading a result. Event details are limited to predefined categories, such as success or failure and broad timing buckets. We never send photos, pixels, landmarks, scores, file names, image hashes or result details to Google.
GA4 is optional and loads only after you choose Accept statistics. It can then set first-party analytics cookies to distinguish visits and sessions. Before a choice or after rejection, we do not load its script or send its application events. Advertising storage and personalization remain denied, and Google signals, enhanced measurement and Google Tag Manager containers remain disabled. Google receives connection and browser information when optional statistics are enabled.
Page addresses are restricted to known FaceCoda routes, with fixed page titles and no query strings, fragments or referring-page URLs. Unknown routes are reported as a generic not-found page. Automatic link, download, form, search and scroll tracking is disabled. Preview and local development visits are excluded from all analytics providers. See Google's Privacy Policy.
We also use Umami Cloud to measure visits to public pages on our production website. Umami receives only a known page path, a fixed page title and our website identifier. When you arrive from another website, it also receives that site's origin, such as https://www.google.com/, without its path or query. It receives no query strings or URL fragments from our pages. We do not send tool interactions, photos, file names, measurements or results to Umami. Automatic click tracking, performance tracking and session replay are not enabled. We do not assign a user ID or send profile data to Umami. The tracker does not set analytics cookies or write visitor identifiers to localStorage or sessionStorage; its provider still receives connection information, including your IP address and browser request headers. See Umami's Privacy Policy.
Plausible provides cookieless page counts and tool-step counts on our production website through its public Events API. Each request carries an event name, our site domain and a known canonical page address. A page count also carries the origin of an outside referring website, such as https://www.google.com/, without its path or query. Tool steps such as choosing a photo, finishing an analysis, saving a result card or following a link to a tool add only fixed labels, for example the input method, a duration range or an error category. We do not load its automatic tracking script or send photos, file names, scores, measurements or result values. It does not use analytics cookies or browser storage. Plausible still receives the IP address and User-Agent needed to process each request. See Plausible's Data Policy.
If you accept optional statistics, Microsoft Clarity can provide heatmaps and session recordings on published Blog and information pages. It never loads on our homepage or Hunter Eyes page, where photos and analysis results appear. It also stays off pages with query strings, fragments or a nonempty referring-page address. The page body is masked before recording begins, the project uses strict masking, and Clarity cookie storage remains disabled even when optional statistics are accepted. Clarity can receive page structure, pointer and scrolling activity, device characteristics and connection information on eligible pages. We do not send an identity, photo, file name, score or custom tool event to Clarity. See Microsoft's Privacy Statement.
The pinned MediaPipe package includes usage logging code; this tool blocks its outbound transport. The content security policy permits only the configured analytics script and collection endpoints in addition to local application resources. No photo-processing data is included in analytics.
Your choices
Use here or in the footer to change optional statistics at any time. Withdrawing consent stops GA4 and Clarity and removes GA4 cookies from this site. We store only your granted or denied preference under facecoda.analytics-consent.v1 in localStorage, alongside the existing theme preference. Rejecting optional statistics leaves only the minimal Plausible and Umami page counts.
Use only photos you have permission to use. Do not upload sensitive documents or someone else's photo without consent. The tool has no account or stored history to delete. A result card that you choose to download is your own file; sharing that file is separate from using this site.
Contact: [email protected]