Latest Software Download share this link with anyone setting up a new booth
Controlled download link
No sign-in required. Set how many downloads it's good for and how long it stays valid — you can also stop it early below, any time.
| Link | Uses | Expires | Status | Actions |
|---|---|---|---|---|
| No links generated yet. | ||||
Generation Activity last 14 days SuccessFailed
Operators / Customers
| Name | Status | Balance | Devices | AI Provider | Templates | Created ⇅ | Sync | AI | Passport | Style Analyzer | Moderation | Grant | Actions |
|---|
API Connections provider keys registered once, assigned to operators from the Operators page
| Name | Provider | Models | Vision | Operators | Updated | Actions |
|---|---|---|---|---|---|---|
| No connections yet — add one, then assign it to operators. | ||||||
Devices — Campaign Locations every device = one physical booth spot
| Location / Label | Operator | Status | Fingerprint | Last Seen | Actions |
|---|
Locked Kiosks Easy Mode booths that hit 3 failed on-screen unlock attempts — clear here to let them resume on their next check-in (~60s)
| Location / Label | Operator | Reason | Locked At | Actions |
|---|
Kiosk Security Incidents silent photo taken locally on each failed unlock attempt
| Device | Operator | Reason | When | Photo |
|---|
Photo Library every full-res generated photo, kept indefinitely — search by operator/device/date for reference or support
Banned Machines
| Fingerprint | Reason | Banned At | Actions |
|---|
DRM Device Licenses every installation gets its own key — revoke one without touching the rest
| Label | Fingerprint | App Version | Status | Last Seen | Actions |
|---|
Fleet Status live health of every booth — auto-refreshes every 30s while this page is open
| Booth | Operator | Status | Version | Active Event | Credits | Generations Today | Last Heartbeat |
|---|
Analytics generation activity, success rates and credit consumption across the whole fleet
Provider Cost estimate from Google's public Gemini price list — each face-QC retry is a paid image; input tokens are folded in as a small overhead
| Model | Resolution | Generations | Success | Failed | Paid images | Per image | Estimated cost |
|---|
Finance credits sold vs. used, revenue at your selling price, provider cost, margin, liability — same date range as above
Provider balances live, where the provider offers it
| Connection | Provider | Remaining | Used | Limit | Note |
|---|---|---|---|---|---|
| Loading… | |||||
Generations per Day
| Date | Total | Success | Failed | Cancelled |
|---|
Generations per Week
| Week | Total | Success | Failed |
|---|
Per Operator
| Operator | Total | Success | Failed | Success Rate | Credits Consumed |
|---|
Template Popularity top 20 by attempts in the selected period
| Template | Total | Success | Failed | Failure Rate |
|---|
Guest Leads captured on booths with guest consent — filter by operator, export to CSV
| Name | Phone | Source | Operator | Booth | Captured |
|---|
Pending Templates 0 from flagged operators — hidden from guests until approved
| Name | Operator | Gender | Created | Actions |
|---|
Global Templates shared prompt library — never shipped in the app itself
| Preview | Name | Description | Gender | Category | Source | Group Photos | Promoted From | Gallery Badges | Actions |
|---|
Operator-Created Templates made in-app via Smart Style Analyzer/wizard — promote a great one into the official library
| Preview | Name | Created By | Gender | Uses | Created | Actions |
|---|
Template Health generation failure rate per template (min. 5 attempts) — catches a bad prompt before guests do
| Name | Source | Success | Failed | Failure Rate |
|---|
Duplicate Templates near-identical prompts, names or the same thumbnail image (Smart Analyzer re-saves). Generation history and pack membership move to the kept template.
Template Packs curated bundles (Eid, Weddings, PSL…) — apply pushes copies into an operator's own template pool in one click
| Name | Description | Templates | Apply To | Actions |
|---|
Idle-Screen Ads played on a booth's attract screen while nobody's using it — own promos or paid third-party spots
Max 150MB — pre-compress video (H.264 mp4) before uploading.
| Name | Advertiser | Status | Assigned Devices | Actions |
|---|
Event Galleries every operator's public photo microsites (/g/…) — deactivating instantly closes the public gallery; no delete here by design (booths manage their own)
| Event | Operator | Photos | Created | Status | Actions |
|---|
Booth Photos the original a guest kept and the looks made from it — drag any tile to compare
Loading…
Photo Overlays frames, stickers & stamps — every booth downloads active ones and caches them locally, so this works even offline mid-event
PNG, WEBP, or SVG, max 10MB — needs a transparent background for anything but a full frame. Occasion is the theme chip a guest filters by in the booth; leave it blank to show under every occasion.
| Preview | Name | Category | Occasion | Status | Actions |
|---|
Licence alerts a second account trying to start a trial on hardware that already used one, a trial attempt from a virtual machine, or hardware that cannot be identified. The trial is bound to the machine, not the email, which is what makes these visible at all.
| When | What | Operator | Previously | Detail | |
|---|---|---|---|---|---|
| Not loaded yet. | |||||
Missing media overlay and ad rows whose image file is no longer on the server. An old deploy deleted the media directories before the workflow excluded them; these rows survived and still render as 404s in booths and here. Re-upload the art under a new row, or delete the dead rows.
| Kind | Name | Missing file | Details | |
|---|---|---|---|---|
| Not checked yet. | ||||
Built-in Library the overlays that ship inside the app itself — hide, rename or re-theme one across the whole fleet without a new release. The art is never uploaded here, only these overrides.
The ID is the overlay's stable name from the shipped library manifest (client/assets/overlays/manifest.json), always starting builtin_. Booths cache these overrides, so they keep applying with the WiFi down. Clearing an override returns that overlay to how it shipped.
These act on the overrides listed below — the built-ins that already have one. There is no bulk category here: a built-in's category comes from the shipped library and no override can change it.
| Overlay ID | Hidden | Renamed to | Re-themed to | Sort | Actions |
|---|
Operator Uploads stickers & frames operators uploaded from their own booths — private to that operator until you Share it, then every booth gets it (reversible)
Deleting here removes another operator's own upload from their booth. Sharing is the reversible action; this one is not.
| Preview | Name | Category | Operator | Visibility | Actions |
|---|
Price Per Photo
Price Per Video AI Video (Veo) generation — usually costs more per generation than a photo
Visa Photo Price Visa Photo mode produces the compliant ID photo locally (no AI call) but still charges this many credits per photo
Rate-Limit Whitelist these operator emails skip the per-IP credit-request throughput limits, and may share one physical machine with another account (no “already registered to a different operator” block) — for 360 Media/testing accounts. It does NOT lift the failed-password lockout: that is 5 wrong passwords in 15 minutes and applies to every account, because this endpoint has not authenticated anyone yet and the email it would match on is supplied by the caller. Use “Clear login lockout” below instead.
Clear Login Lockout five wrong passwords in 15 minutes locks an account out. This clears that counter for one email immediately instead of waiting the window out. Audited.
Attract-Screen Idle Timeout how long a booth sits idle before showing "Touch to Begin" and playing idle-screen ads
NEW Template Badge how many days a freshly-created or newly-promoted template shows a NEW badge and sorts ahead of the usage-based order (WORKORDER A5)
Support Content shown on the booth's About page — fetched unauthenticated from /v1/public/support-content; leave a field empty to hide it
Developer Content shown on the booth's About page — fetched unauthenticated from /v1/public/developer-content; leave a field empty to hide it
Face-Preservation QC rechecks a generated photo against the original for face similarity and retries (up to 2x) if it drifts too far — costs one extra vision call per attempt (WORKORDER B4)
Scores are visible per-generation on each operator's Usage Details page.
Credit Packages bundles operators pick from on their Buy Credits screen
| Name | Credits | Price | Status | Actions |
|---|
Pending Top-up Requests
| Operator | Method | Credits | Note | Actions |
|---|
Platform API Keys shared across every operator — e.g. ElevenLabs for the booth's spoken voice guide
| Provider | Status | Updated | Actions |
|---|
Keys are encrypted at rest and never shown again after saving — only whether one is configured.
Dashboard Security 2FA — protects this panel even if the admin key leaks
Audit Log ban evasion attempts & admin actions
| Type | Operator | Device | Detail | When |
|---|
Server Tools run whitelisted maintenance scripts on this server — no SSH needed
Each card runs one approved script on the server and streams its output below the card. API-key fields are used for that run only and are never stored or logged. Every run is recorded in the Audit Log (admin_tool_run).
Loading tools…
Recent Runs this server process only — cleared on restart
| Tool | Status | Started | Finished | Exit |
|---|---|---|---|---|
| No runs yet. | ||||
Operator Usage Details
Templates Created (WORKORDER A3)
Generation Activity Log
| Status | Template | Provider / Model | Face QC | Latency | When | Reason |
|---|---|---|---|---|---|---|
| Loading usage details... | ||||||