OriGenID embeds an invisible, tamper-resistant watermark into AI-generated images — so the origin can always be proven, even after screenshots, crops, or resharing.
Any model, any platform. The image exists with no origin proof and no accountability trail.
A visual fingerprint is computed and 6 invisible identity markers are embedded — pixel-level changes imperceptible to the human eye. Your creator ID is hashed. The image looks identical.
Upload any copy — screenshot, repost, or download. OriGenID matches the fingerprint and checks the identity markers. A confidence score tells you exactly how close the match is.
Standard LSB watermarks embed data in individual pixel values. JPEG compression averages nearby pixels — destroying the hidden data completely. OriGenID uses a hybrid approach: perceptual fingerprinting for robust identification, plus invisible micro-markers at deterministic positions for confidence verification. The fingerprint survives any re-encoding; the markers provide graduated confidence tiers.
Embedded in the image itself. Reveals pattern, not person.
The image carries no raw identity. Only the registry holds it, encrypted.
Computing fingerprint and embedding markers...
Analyzing image for OriGenID registration...
| Score | Markers | What it means |
|---|---|---|
| 0.90 – 1.00 | 6 / 6 | Verified — original or lightly re-encoded copy |
| 0.75 – 0.90 | 4–5 / 6 | High — screenshot or JPEG compression |
| 0.60 – 0.75 | 2–3 / 6 | Medium — cropped or edited copy |
| 0.50 – 0.60 | 0–1 / 6 | Low — visual match only, markers not confirmed |
multipart/form-data
image File PNG or JPEG
creator_input string Any identifier
→ 200 OK
{
"record_id": "uuid",
"public_meta": { creator_token, country,
platform, timestamp },
"markers_embedded": 6,
"image_base64": "base64-encoded PNG"
}
multipart/form-data
image File Image to check
→ 200 OK
{
"is_ai_generated": true,
"confidence": 0.95,
"confidence_label": "verified",
"markers_matched": 6,
"markers_total": 6,
"record_id": "uuid",
"public_meta": { creator_token, country,
platform, timestamp }
}