File size: 2,088 Bytes
717222a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import os
from pathlib import Path


BASE_DIR = Path(__file__).resolve().parent
PRETRAINED_MODEL_DIR = BASE_DIR / "pretrained_model"
LOCAL_HF_MODEL_DIR = PRETRAINED_MODEL_DIR / "huggingface"
DEFAULT_IMAGE_MODEL_DIR = LOCAL_HF_MODEL_DIR / "buildborderless__CommunityForensics-DeepfakeDet-ViT"
DEFAULT_VIDEO_MODEL_DIR = LOCAL_HF_MODEL_DIR / "Vansh180__VideoMae-ffc23-deepfake-detector"


def get_bool(name, default):
    value = os.environ.get(name)
    if value is None:
        return default
    return value.strip().lower() in {"1", "true", "yes", "on"}


def get_float(name, default):
    value = os.environ.get(name)
    if value is None:
        return default
    try:
        return float(value)
    except ValueError:
        return default


def get_int(name, default):
    value = os.environ.get(name)
    if value is None:
        return default
    try:
        return int(value)
    except ValueError:
        return default


def get_csv(name, default):
    value = os.environ.get(name, default)
    return [item.strip() for item in value.split(",") if item.strip()]


DEVICE = os.environ.get("DETECTOR_DEVICE", "cpu")

IMAGE_DETECTOR_BACKEND = os.environ.get("IMAGE_DETECTOR_BACKEND", "huggingface").strip().lower()
IMAGE_HF_MODEL_IDS = get_csv(
    "IMAGE_HF_MODEL_IDS",
    str(DEFAULT_IMAGE_MODEL_DIR if DEFAULT_IMAGE_MODEL_DIR.exists() else "buildborderless/CommunityForensics-DeepfakeDet-ViT"),
)
IMAGE_FAKE_THRESHOLD = get_float("IMAGE_FAKE_THRESHOLD", 0.5)
IMAGE_UNCERTAIN_MARGIN = get_float("IMAGE_UNCERTAIN_MARGIN", 0.12)

VIDEO_DETECTOR_BACKEND = os.environ.get("VIDEO_DETECTOR_BACKEND", "huggingface").strip().lower()
VIDEO_HF_MODEL_ID = os.environ.get(
    "VIDEO_HF_MODEL_ID",
    str(DEFAULT_VIDEO_MODEL_DIR if DEFAULT_VIDEO_MODEL_DIR.exists() else "Vansh180/VideoMae-ffc23-deepfake-detector"),
).strip()
VIDEO_NUM_FRAMES = get_int("VIDEO_NUM_FRAMES", 16)
VIDEO_FAKE_THRESHOLD = get_float("VIDEO_FAKE_THRESHOLD", 0.5)
VIDEO_UNCERTAIN_MARGIN = get_float("VIDEO_UNCERTAIN_MARGIN", 0.12)
ALLOW_LOCAL_MODEL_FALLBACK = get_bool("ALLOW_LOCAL_MODEL_FALLBACK", True)