Model
Smaug-AI-Image-Detector sets a new state of the art for open-source AI-generated image detection. It is a fine-tune of Google's EmbeddingGemma-2 by Abacus.AI and the strongest open-source detector on real-world images.
A dedicated vision model, 41% smaller than its base. We streamlined EmbeddingGemma-2 into a vision-only architecture by removing its 305M-parameter audio tower: 439M parameters instead of 744M, with no loss in accuracy.
import sys
from huggingface_hub import snapshot_download
sys.path.insert(0, snapshot_download("abacusai/Smaug-AI-Image-Detector"))
from smaug_image_detect import SmaugImageDetect # ships with this repo
detector = SmaugImageDetect.from_pretrained("abacusai/Smaug-AI-Image-Detector")
detector("photo.jpg") # 0.97 -> probability the image is AI-generated
| Model | OpenFake Reddit | OpenFake Core | CommunityForensics | Average | Real photos flagged: Reddit / Core / CF |
|---|---|---|---|---|---|
| Smaug-AI-Image-Detector | 0.9730 | 0.9909 | 0.9808 | 0.9816 | 3.0% / 1.4% / 0.4% |
| OpenFake-SwinV2 | 0.9467 | 0.9886 | 0.9512 | 0.9622 | 2.9% / 2.1% / 3.0% |
| s-gehring/detectra-openfake | 0.9359 | 0.9715 | 0.9535 | 0.9537 | 2.7% / 1.2% / 2.0% |
| Thermostatic-Frontier | 0.8935 | 0.9766 | 0.9792 | 0.9498 | 16.4% / 6.6% / 17.7% |
| Bombek1-SigLIP-DINOv2 | 0.8418 | 0.9591 | 0.9900 | 0.9303 | 34.7% / 18.4% / 5.2% |
| haywoodsloan-SwinV2 | 0.8970 | 0.9528 | 0.9011 | 0.9170 | 9.5% / 1.1% / 10.6% |
| TensorFold/detectra-v1 | 0.7483 | 0.9330 | 0.9652 | 0.8822 | 5.3% / 0.6% / 3.5% |
| CommFor-384 | 0.7441 | 0.9214 | 0.9678 | 0.8778 | 2.0% / 0.3% / 4.0% |
| Ateeqq/ai-vs-human-image-detector | 0.8665 | 0.9045 | 0.6939 | 0.8217 | 27.2% / 14.3% / 40.1% |
| Organika/sdxl-detector | 0.6625 | 0.6673 | 0.8243 |
pip install "sentence-transformers[image]" pillow
from huggingface_hub import snapshot_download
import sys
path = snapshot_download("abacusai/Smaug-AI-Image-Detector")
sys.path.insert(0, path)
from smaug_image_detect import SmaugImageDetect
detector = SmaugImageDetect.from_pretrained(path) # NVIDIA GPU, Apple Silicon (Metal) or CPU, picked automatically
detector("photo.jpg") # -> float in [0, 1]
detector(["a.jpg", "b.png", pil_image], batch_size=16) # -> list of floats
detector("photo.jpg", crops=1) # 3x faster
0.5 is a good default threshold; raise it when a false alarm is costly.
llama.cpp: use Smaug-AI-Image-Detector-GGUF. It includes the classification head and a client that applies the same crops; a GGUF of the image encoder alone returns an embedding, not a verdict.
Apache 2.0, the same license as the base model, EmbeddingGemma-2.
@misc{abacusai2026smaugaiimagedetector,
title = {Smaug-AI-Image-Detector},
author = {Abacus.AI},
year = {2026},
url = {https://huggingface.co/abacusai/Smaug-AI-Image-Detector}
}
| 0.7180 |
| 43.9% / 22.4% / 24.8% |
| umm-maybe/AI-image-detector | 0.7364 | 0.6007 | 0.6042 | 0.6471 | 13.8% / 17.3% / 15.3% |