warlord123456
Deploy HF fix MediaPipe Segfault
30a8d46
|
Raw
History Blame Contribute Delete
28.3 kB
metadata
title: Deepfake Forensics API
emoji: 🚀
colorFrom: purple
colorTo: blue
sdk: docker
pinned: false

Deepfake Forensics & Explainable AI (XAI) Engine

An Enterprise-Grade, Multi-Modal Ensemble System for Detecting AI-Generated Media, Digital Manipulation, and Deepfakes.

Python Version FastAPI React PyTorch OpenCV


Executive Summary

As generative AI models (GANs, Diffusion Models, and sophisticated deepfake pipelines like Wav2Lip and Roop) approach total photorealism, human visual inspection is no longer a mathematically reliable metric for media authenticity.

The Deepfake Forensics Platform operates as a state-of-the-art digital forensics laboratory. Rather than relying on a monolithic "black-box" classifier, the system implements a Multi-Modal Ensemble Architecture. By dissecting media across biological, physical, frequency, and spectral dimensions in real-time, it achieves highly robust detection against out-of-distribution adversarial examples. Furthermore, it integrates Explainable AI (XAI) to generate court-grade PDF reports that mathematically justify its verdicts with interpretable visual evidence, heatmaps, and signal plots.


Datasets & Model Training Methodology

This platform relies on a combination of foundational academic weights and custom-trained models tuned specifically for robust deepfake detection.

1. Spatial Image Forensics (EfficientNet-B4)

  • Datasets Utilized: Deepfake Detection Challenge (DFDC), FaceForensics++ (FF++), Celeb-DF, and StyleGAN.
  • Training Methodology: The core frame-by-frame visual detector utilizes an EfficientNet-B4 backbone. Instead of a simple binary classification approach, the model was fine-tuned using Contrastive Learning. By employing a Triplet Loss function, the network was forced to map authentic faces and GAN-generated faces into widely separated clusters in the latent embedding space. It was then capped with a binary cross-entropy classifier. The final convolutional layers (_conv_head) are preserved specifically to generate bounding-box localized Grad-CAM heatmaps for XAI tracking.
  • Performance: Achieved a peak Validation Accuracy of 99.37% (ROC-AUC 0.998) on a heavily imbalanced dataset of 53,000+ extracted frames.

2. Acoustic Anti-Spoofing (Voice Liveness 2D-CNN)

  • Dataset Utilized: ASVspoof 2019 (Automatic Speaker Verification Spoofing and Countermeasures Challenge) Logical Access (LA) database.
  • Training Methodology: The voice_spoofing.pth model was trained from scratch using the kaggle_scripts/kaggle_voice_training.py pipeline. The ASVspoof audio tracks were converted into 128-channel Mel-Frequency Spectrograms, effectively treating audio spoofing as an image classification problem. A lightweight PyTorch 2D-CNN was trained to detect the invisible high-frequency spectral rolloffs and vocoder artifacts left behind by TTS engines like ElevenLabs and VITS.

3. Native Audio-Visual SyncNet

  • Datasets Utilized: LRS2 (Lip Reading Sentences 2) and VoxCeleb2.
  • Training Methodology: This module imports the heavy syncnet_v2.model weights originally trained for the Wav2Lip architecture. The model employs a dual-stream 3D-CNN. During training, millions of 5-frame video mouth crops and corresponding 0.2-second audio MFCCs were fed into the network. The network was optimized using contrastive loss to minimize the L2 distance (LSE-D) for synchronized audio-visual pairs, and maximize the distance for artificially shifted, out-of-sync pairs.

4. Meta-Classifier Ensemble MLP

  • Dataset Utilized: A procedurally generated synthetic dataset of 500,000 multi-dimensional anomaly scores (via kaggle_scripts/kaggle_meta_training.py).
  • Training Methodology: Because real-world deepfakes vary wildly (e.g., an authentic video with cloned audio, or a synthesized face with authentic audio), a 3-layer Multi-Layer Perceptron (MLP) was trained to aggregate the 15 forensic dimensions. It was trained using Soft Labels (0.15 for Real, 0.85 for Fake) using Binary Cross-Entropy Loss to prevent overconfidence. The synthetic dataset injects advanced probabilistic rules, teaching the Meta-Classifier to flag a video if biological sensors (like rPPG or Geometry) spike, even if the primary Neural Network is successfully fooled by a highly realistic GAN.

15-Dimensional Detection Architecture

The platform executes a massive parallel processing pipeline, routing visual and auditory streams through rigorous forensic methodologies that feed into the final Meta-Classifier Ensemble.

1. Neural Network Attention (EfficientNet-B4 + XAI)

  • Grad-CAM Heatmaps: Reverse-engineers the network's spatial attention to generate heatmaps, isolating the exact pixels (e.g., blending boundaries, unnatural eye-reflections) that triggered the synthetic classification.
  • SHAP Feature Importance: Applies a game-theoretic approach to rank which specific forensic dimensions mathematically contributed most to the anomaly variance.

2. Spectral & Frequency Analysis

Generative AI inherently struggles to perfectly reconstruct the high-frequency macroscopic details inherent to physical camera sensors.

  • FFT & 2D DCT Spectrum: Maps two-dimensional frequency coefficients to detect synthetic frequency-domain smoothing.
  • PCA (Principal Component Analysis): Extracts the 3rd Principal Component (PC3) to reveal hidden periodic GAN artifacts.
  • Switching Noise (SWN): Isolates high-frequency noise by finding zero-crossings in mathematical gradients, illuminating deepfake splicing seams.

3. Biological Face Geometry & Temporal Consistency

Maps 468 3D facial landmarks utilizing MediaPipe Face Mesh to evaluate biological impossibility.

  • Temporal Geometric Jitter: Detects micro-stutters and physically impossible inter-frame vertex shifts, which are common in temporal GAN generation.
  • Proportional Asymmetry: Analyzes structural interocular proportions against the facial Golden Ratio using normalized Euclidian distance equations.

4. Eye Movement & Dynamic Blink Analysis

  • EAR (Eye Aspect Ratio): Computes EAR continuously over time to detect unnaturally low blink rates or extreme glitching.
  • Dynamic Median Thresholding: Unlike hard-coded systems, this pipeline uses dynamic median-based thresholding (80% of resting state) to calculate accurate blink sequences irrespective of diverse human facial structures or camera angles.
  • Gaze Asymmetry: Detects "lazy eye" artifacts characteristic of poorly rendered generative faces.

5. Physical Optics & Sensor Artifacts (CFA & Corneal)

Generative models struggle to accurately simulate physical optics and camera sensor hardware properties.

  • Corneal Specular Highlights: Maps the reflection of light sources on the eyes. Computes Intersection-over-Union (IoU) and Structural Similarity (SSIM) between the left and right eye reflections. AI models frequently render impossible, mismatched 3D reflections.
  • Color Filter Array (CFA) Artifacts: Analyzes the Bayer filter interpolation. Genuine digital photos possess distinct periodic demosaicing patterns that AI generators overwrite or fail to produce.

6. Native 3D-CNN Audio-Visual Desynchronization (SyncNet)

Armed with the official architecture from Wav2Lip/SyncNet, the system catches synthetic "lip-sync" deepfakes by extracting raw audio embeddings and visual lip movements.

  • Deep Embedding L2 Distance: Extracts 13 MFCC features from the audio and isolated 224x224 visual mouth crops across 5 consecutive frames. Both are passed through independent 3D-CNN encoders.
  • LSE-D & LSE-C: Mathematically computes the absolute Lip Sync Error Distance (LSE-D). Authentic videos score below 8.0, while Lip-Sync AI fails to maintain this perfect synchronization, causing the distance to radically diverge.

7. Acoustic Anti-Spoofing (Voice Liveness)

Analyzes an audio track for synthetic artifacts common in AI voice clones (e.g. ElevenLabs, VITS) by evaluating Mel-Frequency Spectrograms.

  • Pre-Processing Pipelines: Handles real-world audio corruption via Cubic Spline De-Clipping and Spectral Gating Denoising prior to inference.
  • Spectral Rolloff & High-Frequency Ratios: Measures the unnatural high-frequency energy decay often left by generative vocoders.

8. Physiological Forensics (rPPG)

Deepfakes frequently fail to synthesize the microscopic, heartbeat-induced color changes in human skin.

  • Remote Photoplethysmography (rPPG): Extracts subtle volumetric blood flow signals from facial regions of interest using spatial pooling. Applies Fast Fourier Transforms (FFT) to detect if a physiological pulse exists. Generates an anomaly score based on the physiological impossibility of the detected BPM.

9. Error Level Analysis (ELA)

Detects heterogeneous compression signatures. When a fake face is spliced onto a real body, the manipulated region possesses a different JPEG compression quality than the original background. Re-saves the image at 95% quality and calculates the absolute pixel-wise difference.

10. Temporal Optical Flow & Jitter Analysis

Analyzes temporal consistency using Farneback Dense Optical Flow to detect mask jittering, blocky motion vectors, and frame-by-frame flickering common in temporal deepfakes.

11. Sensor Noise (PRNU/SRM)

  • Spatial Rich Model (SRM): Applies high-pass linear filtering to strip away primary image content, isolating the raw noise map. AI-generated face swaps violently disrupt this continuous noise matrix.

12. Chrominance Color Space Mapping

Identifies mathematical anomalies in the YCbCr (Chrominance separation) and LAB (a* channel) spaces, as GANs frequently produce statistical aberrations in human-vision color spaces that are invisible in RGB.

13. Cryptographic Metadata Integrity (EXIF)

Analyzes file headers to detect stripped EXIF data or specific cryptographic signatures left behind by generative manipulation software.


Court-Ready PDF Reporting

All automated analyses are compiled into a comprehensive, multi-page PDF report. The document is strictly formatted to provide an interpretable chain-of-evidence:

  1. Executive Verdict: The overall ensemble confidence score and binary classification.
  2. Detailed Module Breakdown: Isolated confidence metrics across all analytical engines.
  3. Visual Evidence Gallery: Embedded high-resolution heatmaps, gradient maps, and XAI overlays.
  4. Metadata Integrity: Secure UUID assignment and ISO-8601 timestamping.

(Disclaimer: Reports are generated by automated diagnostic algorithms and should be independently peer-reviewed by a certified forensic analyst prior to legal admission.)


Getting Started

Prerequisites

  • Python 3.10+
  • Node.js (v18+)
  • ffmpeg installed and globally accessible via the system PATH.

1. Initialize the Backend (FastAPI / PyTorch)

The backend is architected for maximum throughput, utilizing a concurrent ThreadPoolExecutor to execute heavy OpenCV computations in parallel, bypassing the Python Global Interpreter Lock (GIL).

It is highly recommended to use a Virtual Environment to avoid cluttering your global system drive with PyTorch and OpenCV binaries.

cd backend
python -m venv venv
.\venv\Scripts\Activate.ps1
pip install -r requirements.txt
uvicorn main:app --reload

The REST API will initialize and bind to http://127.0.0.1:8000

2. Initialize the Frontend Dashboard (React / Vite)

The user interface is a responsive, modern React application styled with custom CSS, featuring dark-mode glassmorphism and subtle micro-animations.

cd frontend
npm install
npm run dev

The analytical dashboard will be accessible at http://localhost:5173


Configuration & Constraints

Before deploying the platform, be aware of the following system constraints and configurations:

  • File Upload Limits: For memory protection during tensor allocations, the API enforces a strict 100 MB upload limit. Video analysis is capped at the first 60 seconds of playback. Supported extensions include mp4, avi, mov, mkv, webm, png, jpg, and jpeg.
  • API Security: The FastAPI backend is secured via an API Key. By default, it expects the x-api-key header to equal deepforensics-dev-key. You can override this by setting the API_KEY environment variable in the backend, and configuring a .env file in the frontend with VITE_API_KEY=your-key.
  • Required Model Weights: Ensure the following pre-trained models are downloaded into the backend/weights/ directory:
    • improved_finetuned_model.pth (EfficientNet Backbone)
    • ensemble_mlp.pth (Meta-Classifier)
    • voice_spoofing.pth (Audio Anti-Spoofing CNN)
    • syncnet_v2.model (Wav2Lip Audio-Visual Sync)

System Architecture

graph TD
    %% Styling Definitions
    classDef frontend fill:#3b82f6,stroke:#2563eb,stroke-width:2px,color:#fff,rx:8px,ry:8px;
    classDef backend fill:#8b5cf6,stroke:#7c3aed,stroke-width:2px,color:#fff,rx:8px,ry:8px;
    classDef processor fill:#10b981,stroke:#059669,stroke-width:2px,color:#fff;
    classDef module fill:#1e293b,stroke:#475569,stroke-width:1px,color:#f8fafc;
    classDef meta fill:#ef4444,stroke:#dc2626,stroke-width:2px,color:#fff,rx:8px,ry:8px;
    classDef output fill:#f59e0b,stroke:#d97706,stroke-width:2px,color:#fff,rx:8px,ry:8px;

    %% Client & API Layer
    UI[React/Vite Glassmorphic Dashboard]:::frontend -->|Multipart Media Upload| API[FastAPI High-Performance Gateway]:::backend
    API --> VP[Video Processor: Frame Extraction & Audio Split]:::processor
    VP --> TP[Concurrent Thread Pool Executor]:::processor
    
    %% The 15-Dimensional Forensic Engines
    subgraph Core_Neural_Analysis["🧠 Core Neural Analysis"]
        NN[EfficientNet-B4 + GradCAM XAI]:::module
    end
    
    subgraph Biological_Physiological["🫀 Biological & Physiological"]
        GEO[Face Geometry & Asymmetry]:::module
        EYE[Dynamic Blink & Gaze Analysis]:::module
        PHYS[rPPG Volumetric Heartbeat]:::module
    end
    
    subgraph Digital_Physical_Optics["📸 Physical Optics & Sensors"]
        NOISE[Sensor Noise: PRNU & SRM]:::module
        CFA[Bayer CFA Interpolation]:::module
        CORNEAL[Corneal Specular Highlights]:::module
        LIGHT[Lighting Consistency]:::module
        COLOR[Chrominance YCbCr/LAB Mapping]:::module
    end
    
    subgraph Temporal_Artifacts["⏱️ Temporal & Compression"]
        ELA[Error Level Analysis]:::module
        FLOW[Dense Optical Flow & Jitter]:::module
    end
    
    subgraph Audio_Forensics["🎙️ Acoustic Forensics"]
        SYNC[Native 3D-CNN A/V SyncNet]:::module
        VOICE[Voice Liveness Anti-Spoofing]:::module
    end

    subgraph Spectral_Integrity["📡 Spectral & Integrity"]
        FA[Frequency: 2D-DCT & FFT]:::module
        META[Cryptographic Metadata & EXIF]:::module
    end

    %% Routing to modules
    TP --> NN
    TP --> GEO
    TP --> EYE
    TP --> PHYS
    TP --> NOISE
    TP --> CFA
    TP --> CORNEAL
    TP --> LIGHT
    TP --> COLOR
    TP --> ELA
    TP --> FLOW
    TP --> SYNC
    TP --> VOICE
    TP --> FA
    TP --> META

    %% Meta-Classifier Aggregation
    NN --> AGG
    GEO --> AGG
    EYE --> AGG
    PHYS --> AGG
    NOISE --> AGG
    CFA --> AGG
    CORNEAL --> AGG
    LIGHT --> AGG
    COLOR --> AGG
    ELA --> AGG
    FLOW --> AGG
    SYNC --> AGG
    VOICE --> AGG
    FA --> AGG
    META --> AGG

    AGG{Meta-Classifier Ensemble MLP}:::meta
    
    %% Outputs
    AGG -->|Inference Complete| PDF[Court-Ready PDF Report Generator]:::output
    AGG -->|JSON Response| JSON[REST API JSON Payload]:::output
    
    JSON -->|State Update| UI
    PDF -->|Download| UI

Codebase Architecture (File Map)

The following diagram maps the high-level logical architecture directly to the underlying physical files and Python/React modules powering the platform:

flowchart TD

subgraph group_frontend["Frontend"]
  node_ui["UI<br/>React app<br/>[App.jsx]"]
  node_dashboard["Report view<br/>React component"]
  node_models_ui["Models view<br/>React component<br/>[ModelsOverview.jsx]"]
end

subgraph group_backend["Backend"]
  node_api["API<br/>[main.py]"]
  node_processor["Video prep<br/>media ingestion<br/>[video_processor.py]"]
  node_pipeline["Pipeline<br/>forensic workflow<br/>[__init__.py]"]
  node_models["Core NN<br/>EfficientNet-B4<br/>[models.py]"]
  node_face["Face signals<br/>visual analysis<br/>[face_geometry.py]"]
  node_eye["Eye dynamics<br/>blink analysis<br/>[eye_analysis.py]"]
  node_image_artifacts["Image cues<br/>artifact analysis<br/>[lighting_analysis.py]"]
  node_motion["Motion cues<br/>temporal analysis<br/>[optical_flow.py]"]
  node_audio["Audio cues<br/>audio analysis<br/>[audio_sync.py]"]
  node_metadata["Metadata<br/>file analysis<br/>[metadata_analysis.py]"]
  node_freq["Spectral analysis<br/>frequency domain<br/>[frequency_analysis.py]"]
  node_ela["Compression analysis<br/>error level<br/>[ela_analysis.py]"]
  node_noise["Sensor noise<br/>rich model<br/>[noise_analysis.py]"]
  node_color["Color space<br/>chrominance<br/>[color_analysis.py]"]
  node_rppg["Physiological cues<br/>heartbeat<br/>[rppg_analysis.py]"]
  node_voice_spoof["Acoustic spoofing<br/>voice analysis<br/>[voice_spoofing.py]"]
  node_cfa["Optics analysis<br/>bayer filter<br/>[cfa_analysis.py]"]
  node_corneal["Optics analysis<br/>corneal reflections<br/>[corneal_analysis.py]"]
  node_ensemble["Fusion<br/>ensemble classifier<br/>[ensemble_classifier.py]"]
  node_xai["Explainability<br/>XAI output<br/>[xai_explainer.py]"]
  node_report["PDF report<br/>report generator<br/>[pdf_reporter.py]"]
  node_syncnet["SyncNet<br/>AV model<br/>[SyncNetModel.py]"]
  node_voice_model["Voice model<br/>spoof model<br/>[voice_model.py]"]
end

subgraph group_training["Offline training"]
  node_train_scripts["Training scripts<br/>offline training"]
end

subgraph group_assets["Model assets"]
  node_weights[("Weights<br/>model assets")]
end

node_ui -->|"uploads"| node_api
node_dashboard -->|"fetches results"| node_api
node_models_ui -->|"shows signals"| node_api
node_api -->|"ingests"| node_processor
node_processor -->|"hands off"| node_pipeline

node_pipeline -->|"routes"| node_models
node_pipeline -->|"routes"| node_face
node_pipeline -->|"routes"| node_eye
node_pipeline -->|"routes"| node_image_artifacts
node_pipeline -->|"routes"| node_motion
node_pipeline -->|"routes"| node_audio
node_pipeline -->|"routes"| node_metadata
node_pipeline -->|"routes"| node_freq
node_pipeline -->|"routes"| node_ela
node_pipeline -->|"routes"| node_noise
node_pipeline -->|"routes"| node_color
node_pipeline -->|"routes"| node_rppg
node_pipeline -->|"routes"| node_voice_spoof
node_pipeline -->|"routes"| node_cfa
node_pipeline -->|"routes"| node_corneal

node_models -->|"scores"| node_ensemble
node_face -->|"scores"| node_ensemble
node_eye -->|"scores"| node_ensemble
node_image_artifacts -->|"scores"| node_ensemble
node_motion -->|"scores"| node_ensemble
node_audio -->|"scores"| node_ensemble
node_metadata -->|"scores"| node_ensemble
node_freq -->|"scores"| node_ensemble
node_ela -->|"scores"| node_ensemble
node_noise -->|"scores"| node_ensemble
node_color -->|"scores"| node_ensemble
node_rppg -->|"scores"| node_ensemble
node_voice_spoof -->|"scores"| node_ensemble
node_cfa -->|"scores"| node_ensemble
node_corneal -->|"scores"| node_ensemble

node_syncnet -->|"powers"| node_audio
node_voice_model -->|"powers"| node_voice_spoof

node_weights -.->|"loads"| node_syncnet
node_weights -.->|"loads"| node_voice_model
node_weights -.->|"loads"| node_ensemble
node_weights -.->|"loads"| node_models

node_pipeline -->|"explains"| node_xai
node_models -->|"exposes targets"| node_xai
node_ensemble -->|"exposes"| node_xai
node_pipeline -->|"packages"| node_report
node_ensemble -->|"summarizes"| node_report
node_train_scripts -.->|"produces"| node_weights
node_api -->|"returns"| node_report

click node_ui "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/frontend/src/App.jsx"
click node_dashboard "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/frontend/src/components/ReportDashboard.jsx"
click node_models_ui "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/frontend/src/components/ModelsOverview.jsx"
click node_api "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/main.py"
click node_processor "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/video_processor.py"
click node_pipeline "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/__init__.py"
click node_models "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/models.py"
click node_face "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/face_geometry.py"
click node_eye "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/eye_analysis.py"
click node_image_artifacts "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/lighting_analysis.py"
click node_motion "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/optical_flow.py"
click node_audio "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/audio_sync.py"
click node_metadata "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/metadata_analysis.py"
click node_freq "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/frequency_analysis.py"
click node_ela "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/ela_analysis.py"
click node_noise "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/noise_analysis.py"
click node_color "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/color_analysis.py"
click node_rppg "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/rppg_analysis.py"
click node_voice_spoof "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/voice_spoofing.py"
click node_cfa "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/cfa_analysis.py"
click node_corneal "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/corneal_analysis.py"
click node_ensemble "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/ensemble_classifier.py"
click node_xai "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/xai_explainer.py"
click node_report "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/pdf_reporter.py"
click node_syncnet "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/SyncNetModel.py"
click node_voice_model "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/pipeline/voice_model.py"
click node_weights "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/tree/main/backend/weights"
click node_train_scripts "https://github.com/saksham-dev07/deepfake-forensics-with-explainable-ai/blob/main/backend/kaggle_scripts/kaggle_efficientnet_training.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_ui,node_dashboard,node_models_ui toneBlue
class node_api,node_processor,node_pipeline,node_face,node_eye,node_image_artifacts,node_motion,node_audio,node_metadata,node_freq,node_ela,node_noise,node_color,node_rppg,node_voice_spoof,node_cfa,node_corneal,node_models,node_ensemble,node_xai,node_report,node_syncnet,node_voice_model toneAmber
class node_train_scripts toneMint
class node_weights toneRose

Academic References & Citations

  • EfficientNet: Tan, M., & Le, Q. (2019). EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks. ICML. (Link)
  • Grad-CAM: Selvaraju, R. R., et al. (2017). Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization. ICCV. (Link)
  • SyncNet / Lip-Sync Analysis: Chung, J. S., & Zisserman, A. (2016). Out of time: automated lip sync in the wild. ACCV. (Link)
  • Sensor Noise (SRM): Fridrich, J., & Kodovsky, J. (2012). Rich Models for Steganalysis of Digital Images. IEEE Transactions on Information Forensics and Security. (Link)
  • DFDC: Dolhansky, B., et al. (2020). The Deepfake Detection Challenge (DFDC) Dataset. (Link)
  • Face Mesh: Grishchenko, I., et al. (2020). Attention Mesh: High-fidelity Face Mesh Prediction in Real-time. CVPR Workshop. (Link)
  • ELA: Krawetz, N. (2007). A Picture's Worth: Digital Image Analysis and Forensics. Black Hat. (Link)

Academic & Technical Deepfake Forensics References

  • Wav2Lip Audio-Visual Sync: Prajwal, K. R., et al. (2020). A Lip Sync Expert Is All You Need for Speech to Lip Generation In the Wild. ACM Multimedia. (Link)
  • Frequency Domain Discrepancies: Dzanic, T., et al. (2020). Fourier Spectrum Discrepancies in Deep Network Generated Images. NeurIPS. (Link)
  • CNN Spatial Artifacts: Wang, S. Y., et al. (2020). CNN-generated images are surprisingly easy to spot... for now. CVPR. (Link)
  • Face Warping Artifacts: Li, Y., & Lyu, S. (2018). Exposing DeepFake Videos By Detecting Face Warping Artifacts. IEEE CVPRW. (Link)
  • Switching Noise Filter (SWN): Ranjbaran, M., et al. (2015). A New Method for Impulse Noise Detection in Digital Images. (Link)

License & Ethical Use

This software is strictly provided for research, digital forensics, and investigative journalism purposes. Any malicious use, or utilizing these analytical pipelines to reverse-engineer and train adversary deepfake generators, is fundamentally prohibited.

Deepfake Forensics Platform © 2026