metadata
license: apache-2.0
datasets:
- drveronika/x_fake_profile_detection
language:
- en
base_model:
- google/siglip2-base-patch16-224
pipeline_tag: image-classification
library_name: transformers
tags:
- bot-detection
- x
- twitter
- experimental
x-bot-profile-detection
x-bot-profile-detection is a SigLIP2-based classification model designed to detect profile authenticity types on social media platforms (such as X/Twitter). It categorizes a profile image into four classes: bot, cyborg, real, or verified. Built on
google/siglip2-base-patch16-224
, the model leverages advanced vision-language pretraining for robust image classification.
Classification Report:
precision recall f1-score support
bot 0.9912 0.9960 0.9936 2500
cyborg 0.9940 0.9880 0.9910 2500
real 0.8634 0.9936 0.9239 2500
verified 0.9948 0.8460 0.9144 2500
accuracy 0.9559 10000
macro avg 0.9609 0.9559 0.9557 10000
weighted avg 0.9609 0.9559 0.9557 10000
Label Classes
The model predicts one of the following profile types:
0: bot → Automated accounts
1: cyborg → Partially automated or suspiciously mixed behavior
2: real → Genuine human users
3: verified → Verified accounts or official profiles
Installation
pip install transformers torch pillow gradio
Example Inference Code
import gradio as gr
from transformers import AutoImageProcessor, SiglipForImageClassification
from PIL import Image
import torch
# Load model and processor
model_name = "prithivMLmods/x-bot-profile-detection"
model = SiglipForImageClassification.from_pretrained(model_name)
processor = AutoImageProcessor.from_pretrained(model_name)
# Define class mapping
id2label = {
"0": "bot",
"1": "cyborg",
"2": "real",
"3": "verified"
}
def detect_profile_type(image):
image = Image.fromarray(image).convert("RGB")
inputs = processor(images=image, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs)
logits = outputs.logits
probs = torch.nn.functional.softmax(logits, dim=1).squeeze().tolist()
prediction = {
id2label[str(i)]: round(probs[i], 3) for i in range(len(probs))
}
return prediction
# Create Gradio UI
iface = gr.Interface(
fn=detect_profile_type,
inputs=gr.Image(type="numpy"),
outputs=gr.Label(num_top_classes=4, label="Predicted Profile Type"),
title="x-bot-profile-detection",
description="Upload a social media profile picture to classify it as Bot, Cyborg, Real, or Verified using a SigLIP2 model."
)
if __name__ == "__main__":
iface.launch()
Use Cases
- Social media moderation and automation detection
- Anomaly detection in public discourse
- Botnet analysis and influence operation research
- Platform integrity and trust verification