CNN · MobileNetV2 · Deepfake Detection

Can you tell
real from
synthetic?

DeepScan uses a CNN pipeline to detect AI-generated images and deepfake videos — with confidence scores, frame-by-frame analysis, Groq AI explanations, and professional PDF reports.

Scan a file now How it works
deepscan.local — Analysis Report
⚠️
Fake — AI-generated / deepfake
fake_prob: 0.783 · threshold: 0.500 · CNN-only pipeline
FAKE PROBABILITY 78.3%
Verdict
FAKE
CNN Label
FAKE
CNN Conf.
82.4%
Threshold
50.0%
CNN
MobileNetV2 pipeline
0.50
Detection threshold
40
Frames per video
PDF
Professional reports
// how it works

Four steps to
the truth

From upload to verdict in seconds — with a full breakdown of every signal.

// 01
📎
Upload your file
Drop in any JPG, PNG, WebP image or MP4, MOV, AVI video. Max 3 MB. Drag & drop supported.
// 02
🧠
CNN inference
MobileNetV2 scores each frame. fake_prob = 1 − sigmoid — threshold is 0.50.
// 03
Threshold verdict
Any score ≥ 0.50 → FAKE. Video uses mean fake_prob across all sampled frames.
// 04
AI explanation + PDF
Groq LLM explains CNN signals in plain English. Export a professional multi-page PDF report.
// technical pipeline

CNN-only
detection

MobileNetV2 is the sole signal. No paid external APIs needed — runs fully local.

0.50
Fake threshold
40
Max frames
Local
Processing
PDF
Export
1
CNN MobileNetV2
Deepfake classifier · 100% weight · fake_prob = 1 − sigmoid
PyTorch
2
Groq LLM
llama-3.1-8b-instant · optional · plain-English explanation
Optional
Final verdict + PDF
fake_prob ≥ 0.50 → FAKE · below → REAL · export ready
Output
// features

Everything you need
in one scan

🎬
Video frame-by-frame analysis
Every frame gets an independent CNN score. A timeline chart shows fake probability across time. Top suspicious frames are highlighted with per-frame AI explanations via Groq.
20 frames sampled
REAL
FAKE
FAKE
REAL
FAKE
REAL
REAL
FAKE
0sFake probability timeline28s
📄
Professional PDF reports
Multi-page report with verdict, probability charts, frame thumbnails, signal table, and AI explanation. Built for documentation and evidence records.
🔐
Privacy-first, local processing
Flask + FastAPI runs entirely on your machine. Files are never stored permanently. No cloud uploads required — your data stays yours.
Demo mode — no setup needed
No server? DeepScan auto-switches to demo simulation so you can preview the full UI, charts, and AI explanations without any backend.
⚙️
Configurable settings
Adjust frames per video, toggle Groq, and add your API key in settings. Threshold fixed at 0.50 per model calibration.
// faq

Common
questions

Everything you need to get DeepScan running and interpreting results.

What is the detection threshold?
+
Fixed at 0.50. Any fake_prob ≥ 0.50 → FAKE. The settings slider is display-only; the model's sigmoid is calibrated for exactly this threshold.
Do I need a Groq API key?
+
No — it's optional. Without Groq, detection works fully; the AI explanation is skipped. Add your key in the ⚙️ panel or via GROQ_API_KEY=… in .env.
How do I start the backend?
+
Run python flask_app.py (port 5000) and uvicorn video_api:app --host 0.0.0.0 --port 8000. The app auto-detects both and falls back to demo mode if offline.
Can it detect all deepfakes?
+
No detector is perfect. DeepScan performs best on face-swap deepfakes and GAN portraits. Low-res, compressed, or novel synthesis may evade detection. Treat results as one signal, not ground truth.
What file formats are supported?
+
Images: JPG, JPEG, PNG, WebP. Videos: MP4, AVI, MOV, MKV, WebM, FLV. Max 3 MB per file.
Is there a keyboard shortcut?
+
Yes — press Enter in the app (when not typing in a settings field) to trigger analysis instantly. Works on desktop once a file is attached.

Ready to verify?

Start scanning images and videos in seconds. No account required. Runs fully on your machine.

Launch DeepScan Learn more
Python · Flask FastAPI PyTorch CNN MobileNetV2 Groq LLM jsPDF Vanilla JS