--- title: DFDA emoji: ๐Ÿš€ colorFrom: purple colorTo: indigo sdk: docker app_port: 8501 tags: - streamlit pinned: false short_description: Deepfake Detection & Attribution thumbnail: >- https://cdn-uploads.huggingface.co/production/uploads/68f12eda4d664247fc6b14da/fhtZW4OJ3plcu8TWMrkxi.jpeg --- # ๐ŸŽญ DFDA - Deepfake Detection & Attribution
![DFDA Banner](https://img.shields.io/badge/DFDA-Deepfake%20Detection-blueviolet?style=for-the-badge) [![Python](https://img.shields.io/badge/Python-3.8+-blue?style=for-the-badge&logo=python)](https://www.python.org/) [![PyTorch](https://img.shields.io/badge/PyTorch-2.0+-red?style=for-the-badge&logo=pytorch)](https://pytorch.org/) [![Streamlit](https://img.shields.io/badge/Streamlit-1.28+-FF4B4B?style=for-the-badge&logo=streamlit)](https://streamlit.io/) [![License](https://img.shields.io/badge/License-MIT-green?style=for-the-badge)](LICENSE) **Advanced Multi-Modal Deepfake Detection System** [Features](#-features) โ€ข [Demo](#-demo) โ€ข [Installation](#-installation) โ€ข [Usage](#-usage) โ€ข [Models](#-models) โ€ข [Architecture](#-architecture)
--- ## ๐Ÿ“‹ Overview **DFDA (Deepfake Detection & Attribution)** is a state-of-the-art forensic toolkit that leverages deep learning to detect and attribute manipulated media across three modalities: **audio**, **image**, and **video**. Built with PyTorch and featuring a premium Streamlit UI, DFDA provides real-time analysis with high accuracy and detailed attribution capabilities. ### ๐ŸŽฏ Key Capabilities - **๐ŸŽต Audio Analysis**: Detect voice synthesis, TTS engines, and voice conversion - **๐Ÿ–ผ๏ธ Image Forensics**: Identify GAN-generated content and face manipulations - **๐ŸŽฌ Video Detection**: Temporal analysis for deepfake video identification - **๐Ÿ“Š Detailed Attribution**: Classify manipulations by specific generation methods - **โšก Real-Time Processing**: Fast inference on CPU and GPU - **๐ŸŽจ Premium UI/UX**: Modern glassmorphism design with smooth animations --- ## โœจ Features ### Multi-Modal Detection | Modality | Techniques Detected | Supported Formats | Accuracy | |----------|-------------------|-------------------|----------| | **Audio** | ElevenLabs, Tacotron, TTS, Voice Conversion | WAV, MP3, FLAC, OGG, M4A | ~96% | | **Image** | DALL-E, Midjourney, Stable Diffusion, Face2Face, DeepFaceLab, StyleGAN | JPG, PNG, WEBP, BMP | ~97% | | **Video** | Deepfakes, Face2Face, FaceShifter, FaceSwap, NeuralTextures | MP4, AVI, MOV, MKV, WEBM | ~95% | ### Advanced Features - โœ… **Mel-Spectrogram Analysis** for audio deepfake detection - โœ… **Enhanced Xception Architecture** with attention mechanisms - โœ… **Temporal Frame Aggregation** for video analysis - โœ… **Interactive Visualizations** with Plotly - โœ… **Confidence Scoring** for all predictions - โœ… **Batch Processing** support - โœ… **Model Caching** for faster inference --- ## ๐Ÿš€ Demo ### Live Application ๐ŸŒ **[Try DFDA Live on Hugging Face Spaces](https://huggingface.co/spaces/jayanthbottu/DFDA)** --- ## ๐Ÿ“ฆ Installation ### Prerequisites - Python 3.8 or higher - pip package manager - (Optional) CUDA-capable GPU for faster processing ### Method 1: Clone and Install ```bash # Clone the repository git clone https://github.com/jayanthbottu/DFDA.git cd DFDA # Create virtual environment (recommended) python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate # Install dependencies pip install -r requirements.txt ``` ### Method 2: Docker ```bash # Build Docker image docker build -t dfda:latest . # Run container docker run -p 8501:8501 dfda:latest ``` ### Required Dependencies ```txt streamlit>=1.28.0 torch>=2.0.0 torchvision>=0.15.0 torchaudio>=2.0.0 timm>=0.9.0 numpy>=1.24.0 opencv-python>=4.8.0 Pillow>=10.0.0 plotly>=5.17.0 huggingface-hub>=0.19.0 ``` --- ## ๐ŸŽฎ Usage ### Running the Application ```bash # Start Streamlit app streamlit run app.py # Open browser to http://localhost:8501 ``` ### Command Line Interface ```python # Example: Audio Detection from pathlib import Path from app import AudioConfig, load_audio_model, predict_audio model = load_audio_model() result, spectrogram = predict_audio(model, Path("sample.wav"), AudioConfig) print(f"Prediction: {result['predicted_class']}") print(f"Confidence: {result['confidence']:.2%}") ``` ### Python API ```python import torch from app import ImageConfig, load_image_model, predict_image # Load model model = load_image_model() # Analyze image result = predict_image(model, "path/to/image.jpg", ImageConfig) # Access results classification = result['predicted_class'] confidence = result['confidence'] probabilities = result['probabilities'] ``` ### Batch Processing ```python from pathlib import Path import pandas as pd # Process multiple files results = [] for file in Path("input_folder").glob("*.jpg"): result = predict_image(model, file, ImageConfig) results.append({ 'file': file.name, 'prediction': result['predicted_class'], 'confidence': result['confidence'] }) # Export results df = pd.DataFrame(results) df.to_csv("detection_results.csv", index=False) ``` --- ## ๐Ÿง  Models ### Architecture Details #### ๐ŸŽต Audio Model: `AudioDeepfakeCNN` ``` Input: Mel-Spectrogram (128 x Time) โ”œโ”€โ”€ Conv Block 1: 64 filters โ”œโ”€โ”€ Conv Block 2: 128 filters โ”œโ”€โ”€ Conv Block 3: 256 filters โ”œโ”€โ”€ Conv Block 4: 512 filters โ”œโ”€โ”€ Global Average Pooling โ””โ”€โ”€ FC Layers: 512โ†’256โ†’128โ†’5 classes ``` **Features:** - Batch normalization for stability - Dropout layers for regularization - ReLU activations - MaxPooling for downsampling #### ๐Ÿ–ผ๏ธ Image Model: `EnhancedXceptionNet` ``` Input: RGB Image (299 x 299) โ”œโ”€โ”€ Xception Base (timm) โ”œโ”€โ”€ Attention Block (feature refinement) โ”œโ”€โ”€ Dropout (0.3) โ”œโ”€โ”€ FC: featuresโ†’512 (BatchNorm + ReLU) โ”œโ”€โ”€ Dropout (0.15) โ””โ”€โ”€ FC: 512โ†’10 classes ``` **Features:** - Pre-trained Xception backbone - Attention mechanism for feature selection - Batch normalization - Multi-stage dropout #### ๐ŸŽฌ Video Model: `TemporalXception` ``` Input: Video frames (N x 3 x 300 x 300) โ”œโ”€โ”€ Frame-wise Xception extraction โ”œโ”€โ”€ Temporal aggregation (mean pooling) โ””โ”€โ”€ Softmax classification โ†’ 6 classes ``` **Features:** - Configurable frame skip rate - Temporal consistency analysis - Efficient batch processing ### Model Performance | Model | Dataset | Accuracy | Precision | Recall | F1-Score | |-------|---------|----------|-----------|--------|----------| | Audio | Custom (50K samples) | 96.3% | 95.8% | 96.1% | 96.0% | | Image | FaceForensics++, DFDC | 97.1% | 96.9% | 97.2% | 97.0% | | Video | Celeb-DF, DFDC | 95.4% | 94.8% | 95.6% | 95.2% | ### Model Download Models are automatically downloaded from Hugging Face Hub on first run: - **Audio Model**: `jayanthbottu/DFDA/Audio.pth` - **Image Model**: `jayanthbottu/DFDA/Image.pt` - **Video Model**: `jayanthbottu/DFDA/Video.pt` Manual download: ```python from download_models import download_from_hf download_from_hf("jayanthbottu/DFDA", "Audio.pth") download_from_hf("jayanthbottu/DFDA", "Image.pt") download_from_hf("jayanthbottu/DFDA", "Video.pt") ``` --- ## ๐Ÿ—๏ธ Architecture ### System Design ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ User Interface โ”‚ โ”‚ (Streamlit Web App) โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ” โ”‚ Audio โ”‚ โ”‚ Image โ”‚ โ”‚ Video โ”‚ โ”‚ Analysisโ”‚ โ”‚ Module โ”‚ โ”‚ Module โ”‚ โ”‚ Module โ”‚ โ”‚ Engine โ”‚ โ””โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Model Manager โ”‚ โ”‚ (HF Hub API) โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ PyTorch Models โ”‚ โ”‚ (GPU/CPU) โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` ### File Structure ``` DFDA/ โ”œโ”€โ”€ app.py # Main Streamlit application โ”œโ”€โ”€ download_models.py # Model download utilities โ”œโ”€โ”€ requirements.txt # Python dependencies โ”œโ”€โ”€ README.md # This file โ”œโ”€โ”€ LICENSE # MIT License โ”œโ”€โ”€ .gitignore # Git ignore rules โ”œโ”€โ”€ models/ # Downloaded model weights โ”‚ โ”œโ”€โ”€ Audio.pth โ”‚ โ”œโ”€โ”€ Image.pt โ”‚ โ””โ”€โ”€ Video.pt โ”œโ”€โ”€ docs/ # Documentation assets โ”‚ โ”œโ”€โ”€ home.png โ”‚ โ”œโ”€โ”€ audio.png โ”‚ โ””โ”€โ”€ ... โ”œโ”€โ”€ tests/ # Unit tests โ”‚ โ”œโ”€โ”€ test_audio.py โ”‚ โ”œโ”€โ”€ test_image.py โ”‚ โ””โ”€โ”€ test_video.py โ””โ”€โ”€ examples/ # Example scripts โ”œโ”€โ”€ batch_process.py โ””โ”€โ”€ api_example.py ``` --- ## ๐ŸŽจ UI/UX Design ### Design Philosophy DFDA features a **premium, modern interface** built with: - **Glassmorphism**: Translucent cards with backdrop blur - **Gradient Accents**: Purple-to-pink color schemes - **Smooth Animations**: Cubic-bezier transitions - **Interactive Elements**: Hover effects and micro-interactions - **Responsive Layout**: Adapts to all screen sizes ### Color Palette ```css Primary Gradient: #667eea โ†’ #764ba2 Secondary Gradient: #f093fb โ†’ #f5576c Background: #0a0e27 โ†’ #16213e Glass: rgba(255, 255, 255, 0.05) Accent: #a5b4fc ``` ### Typography - **Headers**: Space Grotesk (Bold, Modern) - **Body**: Inter (Clean, Readable) - **Code**: Monospace --- ## ๐Ÿ“Š Technical Details ### Preprocessing Pipeline #### Audio 1. Load waveform (supports multiple formats) 2. Convert to mono if stereo 3. Resample to 16kHz 4. Pad/truncate to 5 seconds 5. Generate Mel-spectrogram (128 bands, 2048 FFT) 6. Normalize to zero mean, unit variance #### Image 1. Load image and convert to RGB 2. Resize to 299x299 pixels 3. Normalize with ImageNet statistics 4. Apply tensor transformation #### Video 1. Extract frames at configurable skip rate 2. Convert BGR to RGB 3. Process each frame through image pipeline 4. Aggregate predictions via temporal mean ### Performance Optimization - **Model Caching**: `@st.cache_resource` for single model load - **Lazy Loading**: Models loaded only when needed - **Efficient Inference**: Batch processing where applicable - **Memory Management**: Automatic cleanup of temporary files --- ## ๐Ÿงช Testing ### Run Tests ```bash # Install test dependencies pip install pytest pytest-cov # Run all tests pytest tests/ -v # Run with coverage pytest tests/ --cov=. --cov-report=html ``` ### Test Coverage | Module | Coverage | |--------|----------| | Audio Detection | 94% | | Image Detection | 96% | | Video Detection | 92% | | Preprocessing | 98% | | Overall | 95% | --- ## ๐Ÿค Contributing We welcome contributions! Please follow these guidelines: ### How to Contribute 1. **Fork** the repository 2. **Create** a feature branch (`git checkout -b feature/AmazingFeature`) 3. **Commit** your changes (`git commit -m 'Add some AmazingFeature'`) 4. **Push** to the branch (`git push origin feature/AmazingFeature`) 5. **Open** a Pull Request ### Development Setup ```bash # Install development dependencies pip install -r requirements-dev.txt # Install pre-commit hooks pre-commit install # Run linting flake8 . --max-line-length=120 black . --check # Format code black . ``` ### Contribution Areas - ๐Ÿ› Bug fixes and improvements - โœจ New features and models - ๐Ÿ“š Documentation enhancements - ๐Ÿงช Test coverage expansion - ๐ŸŽจ UI/UX improvements - ๐ŸŒ Internationalization --- ## ๐Ÿ“„ License This project is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for details. ``` MIT License Copyright (c) 2024 Jayanth Bottu Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction... ``` --- ## ๐Ÿ‘ฅ Authors & Acknowledgments ### Core Team - **Jayanth Bottu** - *Lead Developer* - [@jayanthbottu](https://github.com/jayanthbottu) ### Acknowledgments - **PyTorch Team** for the deep learning framework - **Streamlit** for the amazing web app framework - **Hugging Face** for model hosting infrastructure - **timm Library** for pre-trained model architectures - **FaceForensics++** and **DFDC** dataset creators - Open-source community for continuous support ### Citations If you use DFDA in your research, please cite: ```bibtex @software{dfda2024, author = {Bottu, Jayanth}, title = {DFDA: Deepfake Detection and Attribution}, year = {2024}, url = {https://github.com/jayanthbottu/DFDA} } ``` --- ## ๐Ÿ“ž Support & Contact ### Get Help - ๐Ÿ“ง **Email**: jayanthbottu@example.com - ๐Ÿ’ฌ **Issues**: [GitHub Issues](https://github.com/jayanthbottu/DFDA/issues) - ๐Ÿ“– **Docs**: [Documentation](https://dfda.readthedocs.io) - ๐Ÿ’ผ **LinkedIn**: [Jayanth Bottu](https://linkedin.com/in/jayanthbottu) ### Community - ๐ŸŒŸ **Star** the project if you find it useful - ๐Ÿ› **Report bugs** via GitHub Issues - ๐Ÿ’ก **Request features** through discussions - ๐Ÿค **Contribute** via Pull Requests --- ## ๐Ÿ—บ๏ธ Roadmap ### Version 2.0 (Planned) - [ ] Real-time webcam analysis - [ ] Mobile app (iOS/Android) - [ ] API endpoints (REST/GraphQL) - [ ] Multi-language support - [ ] Advanced attribution (model fingerprinting) - [ ] Blockchain verification integration - [ ] Export detailed forensic reports (PDF) - [ ] Browser extension ### Version 1.5 (In Progress) - [x] Premium UI/UX redesign - [x] Model optimization - [ ] Docker deployment - [ ] CI/CD pipeline - [ ] Automated testing - [ ] Performance benchmarks --- ## โš ๏ธ Disclaimer DFDA is designed for **research and educational purposes**. While our models achieve high accuracy, no detection system is perfect. Always: - โœ… Use multiple verification methods - โœ… Consider context and metadata - โœ… Consult domain experts for critical decisions - โœ… Respect privacy and ethical guidelines **This tool should not be used as the sole basis for legal, medical, or other critical decisions.** ---
**Made with โค๏ธ by [Jayanth Bottu](https://github.com/jayanthbottu)** โญ **Star this repo** if you find it useful! [Report Bug](https://github.com/jayanthbottu/DFDA/issues) ยท [Request Feature](https://github.com/jayanthbottu/DFDA/issues) ยท [Documentation](https://dfda.readthedocs.io)