Emet
Is this image real? An authenticity engine for AI-era media.
- Role
- Full-Stack & ML Engineer
- Period
- 2026
- Status
- In development
- Links
- Not yet public
01
The product
Emet is a media authenticity engine. You give it an image (an upload, a URL or a social post link) and it returns AI-generated, edited and authenticity confidence scores. It also returns a verdict, a traffic-light indicator, the reason for the decision and a flag that says when a human should review the result.
02
The problem
Generative images are now hard to tell apart from photographs, and a single classifier score is brittle and hard to trust. People who review content need a confidence they can explain and a signal for when to escalate.
03
My role
Full-Stack & ML Engineer2026
- Designed and built the detection backend in FastAPI, the detection engine and its tests.
- Built a GraphQL service (Django and Strawberry) that wraps the engine, with optional hash-based caching in PostgreSQL.
- Built the Expo mobile client and containerised the stack with Docker Compose.
04
Engineering approach
- 01A hybrid pipeline runs model inference alongside independent forensic signals (noise residuals, frequency-domain artefacts and edge statistics), then fuses them into calibrated scores.
- 02Models load once, as a singleton, from either Hugging Face weights or an ONNX export, so the same API can run on a laptop or a small VPS.
- 03Inference runs asynchronously with timeouts, supports simple batching, and offers a WebSocket endpoint for real-time frame scoring.
05
Architecture
06
Key decisions
Explainable verdicts
Every result carries its decision source and reason, plus a 'manual review recommended' flag, so the system is honest about uncertainty.
Swappable model backends
One loader interface covers Transformers and ONNX Runtime, so model upgrades don't change the API contract.
Local-first
The service runs on local inference with no third-party calls, which keeps user media on infrastructure the operator controls.
07
Technologies
- Python
- FastAPI
- PyTorch
- ONNX Runtime
- Hugging Face
- OpenCV
- WebSockets
- Django
- Strawberry GraphQL
- PostgreSQL
- Docker Compose
- Expo
- React Native
08
Outcome
- Working detection API, GraphQL service and mobile client in active development. Not yet publicly deployed.
Next case study · 05
NUESA UNIJOS
The digital home of UNIJOS engineering students.