--- license: mit tags: - deepfake-detection - ai-generated-image-detection - synthetic-media - image-forensics - computer-vision - clip - siglip base_model: - openai/clip-vit-large-patch14 - google/siglip2-base-patch16-512 pipeline_tag: image-classification --- ![DeepReality](https://huggingface.co/OmerKurtulus/deepreality-models/resolve/main/cover.png) # DeepReality: Layer 2 detector weights Trained weights for the Layer 2 detection core of **DeepReality**, a six-layer forensic system for detecting AI-generated and manipulated imagery. **Source code, documentation and the full pipeline:** https://github.com/OmerKurtulus/DeepReality These files are the three detectors that were trained for the project. They are not a standalone classifier: DeepReality reads them as three of fifteen independent analysis modules, and its verdict is produced by a reasoning layer that weighs them against documentary provenance, compression physics and localisation evidence. Used alone, they carry the limitations described below. ## Files | File | Pin | Size | Architecture | |---|---|---|---| | `pin_b1_clip_ln_tune_final.pt` | PIN-B1 | 1.6 GB | CLIP ViT-L/14, frozen backbone with LayerNorm tuning | | `pin_b2_siglip2_finetune_final.pt` | PIN-B2 | 1.4 GB | SigLIP2-base-patch16-512, full fine-tune | | `pin_b3_freq_cnn_final.pt` | PIN-B3 | 19 MB | Frequency CNN over DCT/DWT maps, trained from scratch | Two further models complete the detection core and are **not** hosted here. PIN-B4 is a public third-party checkpoint ([prithivMLmods/AI-vs-Deepfake-vs-Real-Siglip2](https://huggingface.co/prithivMLmods/AI-vs-Deepfake-vs-Real-Siglip2)), and the PIN-F1 XGBoost meta-learner is small enough to be tracked directly in the GitHub repository. ## Usage Download the three files into the `models/` directory of a DeepReality clone: ```bash git clone https://github.com/OmerKurtulus/DeepReality.git cd DeepReality hf download OmerKurtulus/deepreality-models --local-dir models ``` PIN-B1 and PIN-B2 additionally fetch their base architectures from the Hub on first run. Placement instructions and the remaining setup are in [`models/README.md`](https://github.com/OmerKurtulus/DeepReality/blob/main/models/README.md). ## The system these weights belong to A single image taken through all fifteen pins. Every figure is the output of one real pipeline run, not an illustration. PIN-B1, PIN-B2 and PIN-B3 are the three detectors hosted in this repository; the verdict is not theirs to make. ![Worked example](https://huggingface.co/OmerKurtulus/deepreality-models/resolve/main/preview.png) Note what happens in that run. The four detectors agree at a mean of 0.932, and the reasoning layer still decides on the C2PA manifest instead, lowers its own confidence because the signing certificate had expired, and flags that three of the four detectors share a training corpus, so their agreement is correlated rather than independent. ## Training data All three detectors were trained on **OpenDeepfake-Preview**, 20,000 images. ## Reported performance Held-out results on the training corpus: | Pin | Accuracy | ROC-AUC | |---|---|---| | PIN-B1 | 99.77% | 0.9997 | | PIN-B2 | 99.97% | 1.0000 | | PIN-B3 | 96.50% | 0.9923 | ## Limitations, and why they matter **Read the figures above as in-distribution performance. They do not survive a change of corpus.** Measured on [`ComplexDataLab/OpenFake`](https://huggingface.co/datasets/ComplexDataLab/OpenFake) the same detectors fall to 0.51 to 0.84 ROC-AUC. On [`Hemg/deepfake-and-real-images`](https://huggingface.co/datasets/Hemg/deepfake-and-real-images) all four sit at chance, and PIN-B3 is anti-correlated with the label, which is worse than noise because a downstream fusion stage learns to trust it backwards. This generalisation gap is the reason DeepReality exists. A single detector reporting 99% on its own benchmark tells you very little about an unseen generator, which is why the system combines paradigms that fail differently and subordinates all of them to documentary provenance when provenance is present. The only figure measured by cross-validation on a corpus none of these detectors saw in training is the Layer 6 meta-learner: ROC-AUC 0.8846 at an Expected Calibration Error of 0.0203. That is the conservative number, and the one to quote. **Intended use.** Research and assistive review. These weights should not be used as the sole basis for a consequential decision about a specific image or person. ## Licence and citation Released under the MIT licence. If you use this work, please cite it: ```bibtex @software{kurtulus2026deepreality, author = {Kurtulus, Omer Faruk}, title = {DeepReality: PIN Architecture for Multi-Layer AI Image Forensics}, year = {2026}, url = {https://github.com/OmerKurtulus/DeepReality}, license = {MIT} } ```