tropa-mini β€” open-weights AI Text Detector by wasitaigenerated

Detect AI-generated text from ChatGPT, GPT-5, Claude, Gemini, Llama and other LLMs β€” free, open weights, runs on CPU.

tropa-mini is the open-weights AI detector by wasitaigenerated.com, the small sibling of the tropa-2 model behind the hosted API. In our benchmark of every notable open-source AI text detector on public datasets, tropa-mini comes out as the strongest open-weights AI text detector available β€” best ROC-AUC and the highest detection rate at a fixed 0.5 % false-positive rate across raw, humanized and frontier-model text (full results below).

  • βœ… 93 % of raw AI text caught at a 0.5 % false-positive rate (next-best open model: 84 %)
  • βœ… The only open detector with a humanizer class β€” it flags AI text laundered through paraphrasing / "humanizer" tools
  • βœ… DeBERTa-v3-large backbone, ~1.7 GB, CPU-friendly β€” no GPU required
  • βœ… Apache-2.0, commercial use allowed

Unlike most detectors it has a 4-class head β€” it doesn't just say AI or human:

class meaning
human written by a person
ai raw LLM output (ChatGPT, Claude, Gemini, …)
ai_edited human text lightly rewritten or polished by an LLM
humanized AI text passed through a "humanizer" / paraphrasing tool

ai_score = 1 βˆ’ P(human) is the headline number in [0, 1].

How to detect AI-generated text in Python

import torch
import torch.nn as nn
from transformers import AutoConfig, AutoModel, AutoTokenizer, PreTrainedModel

class AIDetectionModel(PreTrainedModel):
    config_class = AutoConfig
    _tied_weights_keys = []          # transformers>=5 compatibility

    @property
    def all_tied_weights_keys(self):
        return {}

    def __init__(self, config):
        super().__init__(config)
        self.model = AutoModel.from_config(config)
        n = getattr(config, "detector_num_labels", 1)
        self.classifier = nn.Linear(config.hidden_size, n)

    def forward(self, input_ids, attention_mask=None, **kwargs):
        out = self.model(input_ids, attention_mask=attention_mask)
        h = out[0]                                    # (B, T, H)
        mask = attention_mask.unsqueeze(-1).float()
        pooled = (h * mask).sum(1) / mask.sum(1)      # mean pooling over real tokens
        return self.classifier(pooled)

repo = "wasitaigeneratedcom/ai-text-detector-small"
tok = AutoTokenizer.from_pretrained(repo)
model = AIDetectionModel.from_pretrained(repo).eval()

text = "Your text here..."
enc = tok(text, truncation=True, max_length=768, return_tensors="pt")
with torch.inference_mode():
    probs = torch.softmax(model(**enc), dim=-1)[0]

labels = ["human", "ai", "ai_edited", "humanized"]
ai_score = 1.0 - probs[0].item()
print({l: round(p.item(), 4) for l, p in zip(labels, probs)}, "| ai_score:", round(ai_score, 4))

For long documents, split into ≀768-token chunks (sentence-aligned) and average chunk scores weighted by length. A practical decision threshold at a 0.5 % false-positive operating point is ai_score β‰₯ 0.976 (see serving_head.json).

Prefer an API call over self-hosting? The wasitaigenerated AI Detector API runs the substantially stronger tropa-2 model (98.5 % vs 93.2 % on raw AI, 76 % vs 42 % on humanized text β€” comparison below), is one POST request, and comes with 1,000 free credits.

Benchmarks (vs. other open-weights AI detectors)

All numbers are measured on public datasets, so anyone can reproduce them:

  • Jabarian & Imas (2025) β€” 1,930 human passages, 7,683 raw generations (GPT-4.1, Claude Opus 4, Claude Sonnet 4, Gemini 2.0 Flash), 7,867 StealthGPT-humanized versions
  • Liang et al. (2023) β€” TOEFL essays by non-native writers
  • A 1,060-text frontier set: GPT-5.x, Claude Opus 5, Gemini 3.x, Grok, DeepSeek V4, …
  • 5,000 pre-LLM (2018) FineWeb web pages as a neutral human pool

Every model gets its decision threshold set to the same matched 0.5 % false-positive rate on the same 6,930 human documents. Recall is then measured per group β€” a fair, like-for-like comparison.

model ROC-AUC raw AI humanized AI frontier models
tropa-mini (this model) 0.968 93.2 % 41.6 % 33.6 %
desklib/ai-text-detector-v1.01 0.875 83.9 % 4.0 % 1.8 %
SuperAnnotate/ai-detector 0.824 0.5 % 1.4 % 0.6 %
Hello-SimpleAI/chatgpt-detector-roberta 0.571 0.8 % 0.4 % 0.2 %
yaful/MAGE 0.507 β€”* β€”* β€”*
roberta-large-openai-detector 0.313 0.0 % 0.1 % 0.0 %

* MAGE cannot reach a 0.5 % FPR at any threshold (it flags 26 % of ordinary human web text with score > 0.9999).

One honest caveat: on the Liang non-native TOEFL essays tropa-mini flags 15.6 % at that operating point β€” more than desklib's 3.3 % (which, however, detects almost nothing at the same FPR). Use conservative thresholds for learner writing.

tropa-mini vs. tropa-2 (the hosted API)

The hosted detector at wasitaigenerated.com runs tropa-2, a larger, continuously retrained system; tropa-mini is its fast, CPU-friendly sibling. API numbers below were measured through the public API endpoint (verdict β‰₯ 90) on the same public datasets β€” reproducible with any API key.

dataset tropa-mini (open) tropa-2 (hosted API)
Jabarian human passages, falsely flagged 0.5 % 0.1 %
Jabarian raw AI (4 frontier 2025 models) 93.2 % 98.5 %
StealthGPT-humanized 41.6 % 76.0 % (90 % at verdict β‰₯ 70)
2026 frontier set (GPT-5.x, Opus 5, …) 33.6 % 82.8 % (88 % at verdict β‰₯ 70)
Non-English text English-first supported (measured FPR 0.00–0.04 % across DE/FR/ES/IT/PT/NL)

FAQ

Which AI models does it detect? Text from ChatGPT (GPT-4, GPT-4o, GPT-5.x), Claude, Gemini, Llama, Mistral, DeepSeek, Grok and other large language models. Detection is strongest for the model generations it was trained against (see the frontier column above); the hosted tropa-2 API is retrained continuously as new models appear.

Can it detect humanized or paraphrased AI text? Yes β€” tropa-mini is the only open-weights detector with a dedicated humanized class, and it catches 10Γ— more humanizer output than the next-best open model (41.6 % vs 4.0 % at the same false-positive rate). The hosted API catches 76–90 %.

How accurate is it on human writing? At the recommended threshold it falsely flags about 1 in 200 human documents (0.5 % FPR), measured on 6,930 human texts. The hosted API operates at ~1 in 1,000 and below.

Does it work for essays and academic writing? Yes, with a caution: like all AI detectors it flags short, simple learner prose (e.g. non-native TOEFL essays) more often than average. For essay and thesis checking, treat scores as evidence and keep a human in the loop.

Is it free? Yes β€” Apache-2.0, free for commercial use. The hosted API has a free tier (1,000 credits).

What languages are supported? tropa-mini is English-first. The hosted detector supports multiple languages with a measured false-positive rate of 0.00–0.04 % across German, French, Spanish, Italian, Portuguese and Dutch.

Intended use

  • Optimized for English prose of 50+ words.
  • Open-weights releases are snapshots; the hosted API is retrained continuously as new generator models appear.
  • A score is evidence, not proof. Don't use it as the sole basis for accusations or academic-integrity decisions β€” combine it with process evidence and human judgment, as with every AI detector.

Attribution

Fine-tuned from desklib/ai-text-detector-v1.01 (MIT), which builds on microsoft/deberta-v3-large (MIT). Both upstream licenses permit this derivative; upstream notices are preserved in NOTICE.

Built by wasitaigenerated β€” AI content detection for text and images: AI detector Β· ChatGPT detector Β· AI essay detector Β· deepfake detector Β· AI detection API

Downloads last month
90
Safetensors
Model size
0.4B params
Tensor type
F32
Β·
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for wasitaigeneratedcom/ai-text-detector-small

Finetuned
(7)
this model