File size: 3,577 Bytes
55bcd2b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
MAX_FILE_SIZE   = 20  * 1024 * 1024  # 20 MB
MAX_VIDEO_SIZE  = 200 * 1024 * 1024  # 200 MB

ALLOWED_IMAGE_MIMETYPES = [
    "image/jpeg", "image/png", "image/webp",
    "image/heic", "image/heif",
    "image/jfif", "image/pjpeg", "image/bmp",
    "image/gif",  "image/tiff", "image/avif",
    "image/x-jfif",
]

ALLOWED_AUDIO_MIMETYPES = [
    "audio/wav", "audio/mpeg", "audio/mp3",
    "audio/ogg", "audio/flac", "audio/x-m4a", "audio/x-wav",
]

ALLOWED_VIDEO_MIMETYPES = [
    "video/mp4", "video/quicktime", "video/x-msvideo",
    "video/webm", "video/mpeg", "video/x-matroska",
]

# ── Image models ───────────────────────────────────────────────────────────────

IMAGE_ENSEMBLE = [
    {
        "key":    "ai_vs_human",
        "name":   "Ateeqq/ai-vs-human-image-detector",
        "weight": 0.45,
        "desc":   "AI vs Human 120k (ViT)",
    },
    {
        "key":    "ai_vs_deepfake_vs_real",
        "name":   "prithivMLmods/AI-vs-Deepfake-vs-Real",
        "weight": 0.35,
        "desc":   "AI/Deepfake/Real 3-class (ViT)",
    },
    {
        "key":    "deepfake_detector",
        "name":   "prithivMLmods/Deep-Fake-Detector-Model",
        "weight": 0.20,
        "desc":   "Deepfake faces (ViT)",
    },
]

IMAGE_FAST_ENSEMBLE = [
    {
        "key":    "ai_vs_human",
        "name":   "Ateeqq/ai-vs-human-image-detector",
        "weight": 0.45,
        "desc":   "AI vs Human 120k (ViT)",
    },
    {
        "key":    "deepfake_detector",
        "name":   "prithivMLmods/Deep-Fake-Detector-Model",
        "weight": 0.55,
        "desc":   "Deepfake faces (ViT)",
    },
]

# ── Audio model ────────────────────────────────────────────────────────────────

AUDIO_MODEL = {
    "key":  "deepfake_audio_v2",
    "name": "MelodyMachine/Deepfake-audio-detection-V2",
    "desc": "Deepfake Audio Detection V2",
}

# ── Video ensemble (reuses ViT models) ────────────────────────────────────────

VIDEO_ENSEMBLE = [
    {
        "key":    "deepfake_detector",
        "name":   "prithivMLmods/Deep-Fake-Detector-Model",
        "weight": 0.40,
        "desc":   "Deepfake faces (ViT)",
    },
    {
        "key":    "ai_vs_deepfake_vs_real",
        "name":   "prithivMLmods/AI-vs-Deepfake-vs-Real",
        "weight": 0.35,
        "desc":   "AI/Deepfake/Real 3-class",
    },
    {
        "key":    "ai_vs_human",
        "name":   "Ateeqq/ai-vs-human-image-detector",
        "weight": 0.25,
        "desc":   "AI vs Human 120k",
    },
]

# ── Text models ────────────────────────────────────────────────────────────────

TEXT_MODELS = {
    "ai1": {
        "name": "fakespot-ai/roberta-base-ai-text-detection-v1",
        "desc": "RoBERTa AI text detector (Fakespot)",
    },
    "ai2": {
        "name": "Hello-SimpleAI/chatgpt-detector-roberta",
        "desc": "RoBERTa ChatGPT detector",
    },
    "fn1": {
        "name": "vikram71198/distilroberta-base-finetuned-fake-news-detection",
        "desc": "DistilRoBERTa fake news detector",
    },
    "fn2": {
        "name": "jy46604790/Fake-News-Bert-Detect",
        "desc": "BERT fake news detector",
    },
}