Skip to content

The model behind Authini

A compact classifier built to tell real camera footage from Sora 2 and Veo 3 video, after the kind of re‑encoding social platforms apply.

Architecture

Two stages. A frozen feature extractor turns each frame into numbers, and a small classifier decides which source those numbers look like.

Feature extractor
EfficientNet-B0 with ImageNet weights, classification head removed
Features
1280 values per frame
Video
15 frames, evenly spaced from first to last; features averaged into one vector
Images
One frame
Classifier
Support-vector machine with probability outputs

Preprocessing

Before analysis every frame is degraded to look like a video that has been through a social platform, so that a clean upload and a re-encoded TikTok are judged the same way.

  1. Resize to 360 px high, keeping the aspect ratio.
  2. Apply a 3 × 3 Gaussian blur.
  3. Encode as JPEG at quality 55 and decode again.
  4. Resize to 224 × 224. The frame is squeezed, not cropped.

Classes and output

Classes
Real, Sora 2, Veo 3
Result
The class with the highest probability
Confidence
That class's probability, from 0 to 1
API response
Result, confidence, the probabilities for all three classes and the number of frames analyzed
Inconclusive
The web app shows any confidence under 0.6 as inconclusive

Known limitations

  • The model only knows Sora 2 and Veo 3. Video from other generators can come out as Real, or as whichever of the two it is closer to.
  • Real footage that looks unlike the real video it was trained on, such as polished stock footage, is often classed as generated.
  • Fifteen frames are averaged into one prediction, so a clip that mixes real and generated shots gets a single, blended answer.
  • Confidence is the classifier's probability, not a measured accuracy. A high number means the clip is far from the other classes, not that the answer is certain.
  • Squeezing every frame to a square changes the proportions of tall and wide video.

Related research