deepfake_filter / utils.py
alinurnuraliyev's picture
Upload 22 files
3dbd7d4 verified
import os
import shutil
from config import (
QUARANTINE_THRESHOLD_IMAGE,
QUARANTINE_THRESHOLD_AUDIO,
QUARANTINE_THRESHOLD_VIDEO
)
def ensure_dirs():
os.makedirs("approved/images", exist_ok=True)
os.makedirs("approved/audio", exist_ok=True)
os.makedirs("approved/video", exist_ok=True)
os.makedirs("quarantine/images", exist_ok=True)
os.makedirs("quarantine/audio", exist_ok=True)
os.makedirs("quarantine/video", exist_ok=True)
os.makedirs("frames", exist_ok=True)
os.makedirs("temp", exist_ok=True)
def normalize_file_type(file_type):
file_type = str(file_type).lower().strip()
if file_type in ["image", "images"]:
return "images"
if file_type in ["audio", "mic", "microphone"]:
return "audio"
if file_type in ["video", "videos"]:
return "video"
return file_type
def get_threshold(file_type):
file_type = normalize_file_type(file_type)
if file_type == "images":
return QUARANTINE_THRESHOLD_IMAGE
if file_type == "audio":
return QUARANTINE_THRESHOLD_AUDIO
return QUARANTINE_THRESHOLD_VIDEO
def is_fake_label(label):
label_lower = str(label).lower()
return (
"fake" in label_lower
or "deepfake" in label_lower
or "synthetic" in label_lower
or "suspicious" in label_lower
)
def move_file_by_result(file_path, label, score, file_type):
ensure_dirs()
normalized_type = normalize_file_type(file_type)
threshold = get_threshold(normalized_type)
filename = os.path.basename(file_path)
if is_fake_label(label) and float(score) >= float(threshold):
base_dir = os.path.join("quarantine", normalized_type)
else:
base_dir = os.path.join("approved", normalized_type)
os.makedirs(base_dir, exist_ok=True)
destination = os.path.join(base_dir, filename)
shutil.copy(file_path, destination)
return destination