Start a design
Home › Photo privacy

What Happens to the Photo You Upload

This page traces one photo through the code that runs on the site: what stays in the browser, what is sent to the server, and what the published retention window is. The legal policy is the Privacy Policy; this is the walkthrough.

Quick answer: the four style previews and the try-on are drawn on a canvas in your browser and never sent. Asking for AI line art sends the photo to /api/stencil. The original upload is not stored, the finished design is cached for up to 3 days so you can re-download it, and neither is used for training or sold. The stencil PDF sends the rendered design, not the original photo.

Checked against the live site’s js/studio.js, t.js and the in-page analytics wrapper on 2026-10-30.

What leaves your device

You do thisWhat is sentWhere it goesWhat is kept
Open any pageA page-view event: event name, a short label, the page path, the referring host, and campaign tags if the URL has them. No photo.POST /api/e from the site’s own t.jsClick/page event log on the site’s server; the policy does not state a separate retention period. The photo is not involved.
Choose a photoNothing. The file is read into the tab with FileReader.Your browser onlysessionStorage copy only if the data URL is under 1.5 MB; cleared when the tab closes.
Style previews (fine-line, blackwork, watercolor, minimal)NothingCanvas in your browserNothing
Try-on / placement previewNothingCanvas in your browserNothing
Generate AI line artThe photo as a base64 data URL, plus detail, thickness and your unlock code if one is saved.POST /api/stencil → the image model named in the privacy policyOriginal upload not stored; finished design cached up to 3 days for re-download, then deleted. Automated safety filter first.
Download PNGNothingCanvas → your file systemNothing on the server
Get print-ready PDFThe rendered design as a JPEG, the paper size, the physical width in millimetres and your unlock code.POST /api/stencil.pdfNo separate retention statement in the policy; the PDF is built from the rendered design.
Check remaining designsYour unlock code, as a query parameter: /api/balance?token=…APIQuota record tied to the code.
CheckoutThe package id and a channel label. No photo.POST /api/checkout → Dodo PaymentsOrder record at the merchant of record.

“Original upload not stored” and the 3-day cache are the commitments in the Privacy Policy and the homepage FAQ, not something a browser can observe. That is the number to hold the site to.

What stays in your browser

WhereKeyWhat it holdsLifetime
localStoragept_tokenYour unlock code, so you stay unlockedUntil you clear it
localStoragefq_idFunctional id mirrored from the fq_id cookie; counts the included previewCookie 30 days; mirror until cleared
localStoragevt_chChannel label returned at checkoutUntil you clear it
sessionStoragetf_photoThe last photo as a data URL, only under 1.5 MBUntil the tab closes
sessionStoragevt_attr, ai_refReferring site, campaign tags, AI referrerUntil the tab closes
Cookiefq_idFunctional id used to count the included preview30 days (per the privacy policy)

The unlock code is not a password and does not contain your photo. Clearing site data removes it; keep the code somewhere safe if you want to re-download later.

Audit it yourself

  1. Open the browser’s developer tools, then the Network tab, and filter for stencil.
  2. Choose a photo and click through the four style previews. No request carries the image — the styles are drawn by canvas code in js/studio.js.
  3. Click “Generate AI line art”. A POST /api/stencil appears with the image in the JSON body. That is the upload.
  4. Request the print-ready PDF. A POST /api/stencil.pdf carries the rendered design, not the original file.

If a step does not match what is described here, the code changed. The support address is the right place to ask about it.

Using the site without uploading a photo

The four style previews, the placement try-on and the photo check all run locally. The two actions that need the server are AI line art and the print-ready PDF. If you want zero upload, use the local previews and show the original photo to your artist in person.

Scripts on the page

Every page loads /t.js, a first-party script that records the page view and clicks described above. The site also loads a script from jt-collect.moonhop.workers.dev. It is separate from the first-party code described here; the Privacy Policy’s analytics paragraph — page views, referring site, campaign tags and clicks, no photo — is the description that covers it.

The processors named in the policy are Cloudflare (hosting), fal.ai (image generation and moderation) and Dodo Payments (checkout). The cookies set by this code are the functional fq_id cookie and a test-only _qa cookie.

Frequently asked

Is my photo used to train a model?
The privacy policy says no: neither the upload nor the result is used for training or sold. The AI request carries the photo to the image model only to produce the line art.
How long is my photo kept?
The original upload is not stored. The finished design is cached for up to 3 days so you can re-download it, then deleted. That is the published window; deletion happens on the server, not in your browser.
Can I use the site without uploading?
Yes for the four style previews, the try-on and the photo check — those run in the browser. AI line art and the print-ready PDF need the server, because that is where the image model and the PDF builder run.
Does the site use cookies?
A functional fq_id cookie that counts the included preview for 30 days, and a _qa cookie only when a test flag is in the URL. The policy states that there are no advertising cookies.