Inspiration
Portrait-editing tools are increasingly powerful, while most detection experiences reduce uncertainty to one unexplained percentage. That can create false confidence and unfair accusations. UnAI Evidence asks a more useful question: what visible editing-related signals are present, where are they, and what ordinary camera or processing effects could explain them?
What it does
A user uploads a portrait and explicitly consents to analysis. UnAI then:
- validates the image locally and creates a cost-limited 1024 px analysis copy;
- measures lightweight deterministic signals such as edge density, luminance spread, saturation and compression hints;
- sends the prepared image and measurements to GPT-5.6 Sol;
- receives a strict structured report containing an evidence index, report confidence, per-finding confidence, approximate evidence locations, measurement connections, alternative explanations and limitations;
- presents the portrait first, with thin evidence arrows and expandable explanations rather than a wall of text;
- optionally offers UnAI it, a separately consented GPT Image 2 edit that creates one clearly labeled naturalized interpretation. It never claims to recover the true original.
The evidence index is deliberately separate from confidence. High editing-related evidence is warm/red; confidence stays neutral so users do not confuse the two.
How we built it
The competition version is a TypeScript/React application built with TanStack Start, Tailwind CSS and server functions.
The browser retains the original file and sends only a resized JPEG copy. A server-only Responses API call uses GPT-5.6 Sol with low reasoning effort, high-detail image input and a strict JSON Schema. The schema requires every finding to include evidence, calibrated confidence, an approximate image anchor, a measurement link and a plausible alternative explanation.
A second, opt-in server request uses GPT Image 2 at medium quality to create a visible evidence-guided reinterpretation. Generation is disabled for low-evidence reports and permanently labeled as synthetic—not recovered truth.
We also implemented an optional service contract and transparent UI for Community Forensics, a CVPR 2025 open-source synthetic-image detector. The compute-heavy model is not continuously hosted in this cost-limited public prototype, so the interface explicitly says when it did not run. A future production version would benchmark and calibrate multiple specialist models instead of treating one detector as ground truth.
How GPT-5.6 is used in the product
GPT-5.6 is the evidence-reasoning layer, not merely a development assistant. It sees the portrait, deterministic measurements and any available specialist output, then produces the structured report used by the live interface. Its instructions forbid identity inference, sensitive-trait inference, intent claims and forensic certainty. It must surface confounds such as lighting, compression, makeup, lenses, camera processing and portrait-mode segmentation.
How Codex accelerated the build
Codex was the primary Build Week development environment. In one principal task it:
- translated the competition brief into an evidence-first architecture;
- implemented the GPT-5.6 Responses API server function and strict report schema;
- separated the evidence index from report and finding confidence;
- built image-first annotations, arrow routing, downloadable reports and the GPT Image 2 flow;
- added uncertainty safeguards, detector provenance and failure states;
- wrote and repeatedly ran unit tests and production builds;
- maintained the Build Week change log, architecture notes and submission tracker.
Human product decisions remained explicit—especially the choice to communicate evidence instead of accusation and to label generated naturalizations as interpretations.
Challenges
The hardest design problem was not calling a vision model. It was presenting uncertain evidence without turning the output into a verdict. Another challenge was making the report visually immediate while keeping explanations available: markers obscured faces, so we moved labels outside the portrait and routed thin arrows from the nearest edge.
Cost also shaped the architecture. The app downsizes images before model calls, performs only one GPT-5.6 analysis per report and generates a GPT Image 2 result only after a separate click.
Accomplishments
- A working, non-trivial GPT-5.6 multimodal product flow
- Strict structured outputs with explicit uncertainty invariants
- Clear separation of evidence and confidence
- Image-first, accessible explanation design
- Optional generated visualization with consent and permanent disclaimers
- Reproducible tests, documentation and pre-existing/new-work disclosure
What we learned
Explainability is a product behavior, not a disclaimer added at the end. The schema, prompt, color system, interaction design and failure states all have to reinforce uncertainty. We also learned that independent specialist signals should remain visibly separate until they are properly benchmarked and calibrated.
What's next
Next steps are representative benchmarking, calibrated multi-model specialist signals, abuse/rate controls, broader accessibility testing and funded hosting for the optional forensic service.
Build Week provenance
UnAI began as a Lovable interface prototype before Build Week. The GPT-5.6 analysis pipeline, deterministic measurements, strict evidence schema, uncertainty presentation, evidence map, tests, publication-backed detector integration path and rebuilt GPT Image 2 experience were added during the submission period with Codex. The repository documents the boundary and dated Git history.
Important limitation
UnAI cannot reconstruct edit history or prove that a portrait is fake. It is an explainability aid for visible and supplied signals, and its output should never be the sole basis for a consequential decision.
Built With
- codex
- gpt-5.6-sol
- gpt-image-2
- lovable
- openai-responses-api
- react
- tailwind-css
- tanstack-start
- typescript
- vitest
Log in or sign up for Devpost to join the conversation.