/ Модель

Характеристики

Лицензия
Apache 2.0
Архитектура
siglip · dense
Библиотека
transformers
Опубликована
30 мар 2025

ai-vs-human-image-detector

Классификация изображенийИзображение → label5 профессий

Классификатор на базе SigLIP 2 определяет, создано ли изображение человеком или ИИ.

13 339скачиваний за 30 дней67лайковвеса обновлены24 дек 2025

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Ateeqq/ai-vs-human-image-detector — модель классификации изображений, дообученная на базе SigLIP 2 для различения изображений, созданных ИИ, и изображений, созданных человеком. Для обучения использовалось по 60 000 изображений каждого типа; в карточке сообщается точность 99,23% и F1 99,23% на тестовом наборе. Модель подходит для предварительной проверки изображений в пользовательских загрузках, модерации и исследовательского анализа происхождения изображений.

Модель использует архитектуру SigLIP для классификации изображений и распространяется в формате Safetensors через Transformers. В README пользователи сообщают о случаях переобучения, поэтому результаты на тестовом наборе не гарантируют такую же точность на новых источниках изображений. Лицензия — Apache-2.0.

Сценарии применения

  • проверка изображений на признаки генерации ИИ
  • фильтрация пользовательских загрузок по происхождению изображения
  • предварительная модерация изображений в онлайн-сервисе
  • анализ изображений для исследований генеративного ИИ

Ограничения

В README сообщается о случаях переобучения; заявленные метрики получены на тестовом наборе и могут не переноситься на изображения из других источников.

Для каких профессий подходит5

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

AI and Human Image Classification Model - v1

A fine-tuned model trained on 60,000 AI-generated and 60,000 human images. Detailed Training Code is available here: blog/ai/fine-tuning-siglip2

Evaluation Metrics

Training Results

🏋️‍♂️ Train Metrics

  • Epoch: 5.0
  • Total FLOPs: 51,652,280,821 GF
  • Train Loss: 0.0799
  • Train Runtime: 2:39:49.46
  • Train Samples/Sec: 69.053
  • Train Steps/Sec: 4.316

📊 Evaluation Metrics (Fine-Tuned Model on Test Set)

  • Epoch: 5.0
  • Eval Accuracy: 0.9923
  • Eval Loss: 0.0551
  • Eval Runtime: 0:02:35.78
  • Eval Samples/Sec: 212.533
  • Eval Steps/Sec: 6.644

NOTE: Users report

Some users reported overfitting issues

🔦 Prediction Metrics (on test set):

{
  "test_loss": 0.05508904904127121,
  "test_accuracy": 0.9923283699296264,
  "test_runtime": 167.1844,
  "test_samples_per_second": 198.039,
  "test_steps_per_second": 6.191
}
  • Final Test Accuracy: 0.9923
  • Final Test F1 Score (Macro): 0.9923
  • Final Test F1 Score (Weighted): 0.9923

Usage

pip install -q transformers torch Pillow accelerate
import torch
from PIL import Image as PILImage
from transformers import AutoImageProcessor, SiglipForImageClassification

MODEL_IDENTIFIER = r"Ateeqq/ai-vs-human-image-detector"

# Device: Use GPU if available, otherwise CPU
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
print(f"Using device: {device}")

# Load Model and Processor
try:
    print(f"Loading processor from: {MODEL_IDENTIFIER}")
    processor = AutoImageProcessor.from_pretrained(MODEL_IDENTIFIER)

    print(f"Loading model from: {MODEL_IDENTIFIER}")
    model = SiglipForImageClassification.from_pretrained(MODEL_IDENTIFIER)
    model.to(device)
    model.eval()
    print("Model and processor loaded successfully.")

except Exception as e:
    print(f"Error loading model or processor: {e}")
    exit()

# Load and Preprocess the Image

IMAGE_PATH = r"/content/images.jpg" 
try:
    print(f"Loading image: {IMAGE_PATH}")
    image = PILImage.open(IMAGE_PATH).convert("RGB")
except FileNotFoundError:
    print(f"Error: Image file not found at {IMAGE_PATH}")
    exit()
except Exception as e:
    print(f"Error opening image: {e}")
    exit()

print("Preprocessing image...")
# Use the processor to prepare the image for the model
inputs = processor(images=image, return_tensors="pt").to(device)

# Perform Inference
print("Running inference...")
with torch.no_grad(): # Disable gradient calculations for inference
    outputs = model(**inputs)
    logits = outputs.logits

# Interpret the Results
# Get the index of the highest logit score -> this is the predicted class ID
predicted_class_idx = logits.argmax(-1).item()

# Use the model's config to map the ID back to the label string ('ai' or 'hum')
predicted_label = model.config.id2label[predicted_class_idx]

# Optional: Get probabilities using softmax
probabilities = torch.softmax(logits, dim=-1)
predicted_prob = probabilities[0, predicted_class_idx].item()

print("-" * 30)
print(f"Image: {IMAGE_PATH}")
print(f"Predicted Label: {predicted_label}")
print(f"Confidence Score: {predicted_prob:.4f}")
print("-" * 30)

# You can also print the scores for all classes:
print("Scores per class:")
for i, label in model.config.id2label.items():
    print(f"  - {label}: {probabilities[0, i].item():.4f}")

Output

Using device: cpu
Model and processor loaded successfully.
Loading image: /content/images.jpg
Preprocessing image...
Running inference...
------------------------------
Image: /content/images.jpg
Predicted Label: ai
Confidence Score: 0.9996
------------------------------
Scores per class:
  - ai: 0.9996
  - hum: 0.0004

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · transformers · image-classification

Можно запустить

Подбираем GPU…

Класс архитектуры
SiglipForImageClassification
Ревизия весов
60e8240

0 моделей