top of page

How To Do AI Video Deepfakes

How To Do AI Video Deepfakes | Black Hat HQ

AI Video Deepfake Guide


Let's go deep on AI video deepfake — covering full pipelines from source material to real-time delivery. Here's a(n) article / guide on how to do AI video deepfakes.


Source Material Requirements


Quality

Face Images

Video

Source

Minimum

5-10 clean frontal shots

30 seconds of frontal video

LinkedIn, company website, YouTube

Good

20+ varied angles/lighting

2-5 minutes with expressions

Internal videos, interviews, conference talks

Ideal

50+ from multiple angles/emotions

10+ minutes with varied head movement, lighting

Professional headshots + video catalog


Extraction tools:


bash

# Extract frames from source video
ffmpeg -i source_video.mp4 -vf fps=1 frames/frame_%04d.png

# Extract face crops (using facedetection)
ffmpeg -i source_video.mp4 -vf "select=gt(scene\,0.4),crop=iw/2:ih/2:0:0" -vsync vfr faces/%04d.png

# Better: use a dedicated face extraction script
git clone https://github.com/deepfakes/faceswap.git
cd faceswap
python faceswap.py extract -i source_video.mp4 -o faces/

Tool Selection


Option A: DeepFaceLab (Highest Quality, Local, GPU-Intensive)


The industry standard for high-quality deepfakes. Requires NVIDIA GPU with 8GB+ VRAM.


bash

# Download from https://github.com/iperov/DeepFaceLab
# Extract and run with GUI or batch scripts

# Typical workflow (via batch scripts):
# 1. Extract video frames
2) extract images from video data_src.bat

# 2. Extract faces from source
3) extract faces from images data_src.bat

# 3. Extract target video frames
4) extract images from video data_dst.bat

# 4. Extract target faces
5) extract faces from images data_dst.bat

# 5. Train (runs for hours/days depending on quality)
6) train Quick96.bat

# 6. Convert (apply trained model)
7) convert Quick96.bat

# 7. Merge with original video
8) merged to mp4.bat

Quality vs Time tradeoff:


Model

Training Time

Quality

VRAM

Quick96

2-8 hours

Low-medium

4GB

SAEHD

12-72 hours

Medium-high

6GB

AMP

24-96+ hours

Very high

8GB+


Option B: FaceFusion (Easier Setup, Good Quality)


bash

git clone https://github.com/facefusion/facefusion.git
cd facefusion
python install.py
python run.py

# Opens a web UI at http://localhost:8000
# Upload source face image, target video, click Process

For command-line automation:


bash

python run.py --source face.png --target video.mp4 --output result.mp4 --execution-providers cuda

Option C: Roop / Roop-Unleashed (Simplest, Single-Click)


bash

git clone https://github.com/s0md3v/roop.git
cd roop
pip install -r requirements.txt
python run.py

# Or Roop-Unleashed with more features:
git clone https://github.com/C0untFloyd/roop-unleashed.git
cd roop-unleashed
python installer.py
python run.py

Option D: ComfyUI (Most Flexible, Advanced Workflows)


bash

git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
pip install -r requirements.txt
python main.py

# Install custom nodes for face swapping:
# - ComfyUI-Impact-Pack (includes face swap)
# - ComfyUI-FaceSwap (using InsightFace)
# - Reactor (fast face swap node)

Real-Time Video Deepfake (Live Calls)


Deep-Live-Cam


Best for real-time face swapping in video calls (Zoom, Teams, Meet, etc.).


bash

git clone https://github.com/hacksider/Deep-Live-Cam.git
cd Deep-Live-Cam

# Install dependencies
python install.py

# Run
python run.py --execution-provider cuda

# Requires:
# - Source face image
# - Webcam input
# - OBS Virtual Camera or direct webcam output

OBS Virtual Camera setup for use in any video call app:


bash

# In OBS:
1. Add Video Capture Device (your real webcam)
2. Add a filter → Apply face swap from Deep-Live-Cam
3. Tools → VirtualCam → Start
4. In Zoom/Teams/Meet → Select "OBS Virtual Camera" as your camera

Real-time avatar with audio sync


bash

# Combine with voice cloning for full impersonation
# Use Deep-Live-Cam for face + ElevenLabs/Coqui for voice
# Deliver via OBS Virtual Camera + VB-Cable Virtual Audio Cable

Delivery Vectors


Pre-Recorded Video Phishing


bash

# Create a fake CEO announcement video
# 1. Find a real CEO video (town hall, earnings call)
# 2. Deepfake the face
# 3. Voice clone the audio
# 4. Sync and export

ffmpeg -i deepfake_video.mp4 -i cloned_audio.wav -c:v copy -c:a aac final_output.mp4

# Host on a legitimate-looking URL or email attachment
# Test if the organization's security awareness training catches it

Live Video Call Impersonation


Setup:


  1. Hardware: Webcam + decent lighting that matches the target's usual environment

  2. Software: Deep-Live-Cam → OBS Virtual Camera

  3. Audio: Voicemod or VB-Cable + ElevenLabs real-time voice cloning

  4. Platform: Zoom/Teams/Meet — join as the executive


Pretext:


"I'm calling from the airport — my video is glitchy but I need to discuss something urgent before the board meeting."

The glitchy video excuse covers any artifacts or frame drops from the deepfake.


Phishing Campaign with Deepfake Video


bash

# Embed a deepfake video thumbnail in a phishing email
# When clicked, plays the video that appears to be the CEO
# asking the employee to "click the link below to confirm"

# Alternative: use as a landing page component
# - Clone the company portal
# - Add a "Message from CEO" video (deepfake)
# - Video says "Enter credentials to view secure message"

Testing Liveness Detection


If the organization uses liveness/anti-spoofing on video calls:


Liveness Check

Bypass Method

Head movement challenge ("Turn left")

Use a video source with pre-recorded head movements, or Deep-Live-Cam tracks your real head movement

Eye blink detection

Deep-Live-Cam and Roop both support real-time eye blink transfer

Mouth movement / lip sync

Real-time tools sync lip movements to your actual speech

Background inconsistency

Use a solid background or a green screen matching the target's usual environment

Lighting mismatch

Match your room lighting to what the target would have. Add a fake window light, desk lamp

Reflection check

Wear glasses if the target does. Some liveness tools check for screen reflection on lenses


Full Attack Pipeline (Ready-To-Use)


bash

# Phase 1: Gather source material
yt-dlp -f bestvideo+bestaudio "https://youtube.com/watch?v=CEO_INTERVIEW" -o ceo_source.mp4
ffmpeg -i ceo_source.mp4 -vf fps=1/5 frames/ceo_%04d.png

# Phase 2: Extract face set
python faceswap.py extract -i ceo_source.mp4 -o ceo_faces/

# Phase 3: Train (DeepFaceLab - SAEHD)
# This runs for 24-48 hours on a decent GPU
# Results go to workspace/model/

# Phase 4: Record target video script
# Record yourself saying: "I need you to process payroll early this week..."
ffmpeg -f v4l2 -i /dev/video0 -f alsa -i hw:0 target_recording.mp4

# Phase 5: Apply deepfake
python run.py --source ceo_faces/00001.png --target target_recording.mp4 --output final_deepfake.mp4

# Phase 6: Voice clone (ElevenLabs)
python voice_clone.py --source ceo_audio.wav --text "script.txt" --output cloned_audio.wav

# Phase 7: Replace audio
ffmpeg -i final_deepfake.mp4 -i cloned_audio.wav -c:v copy -c:a aac -shortest delivery_ready.mp4

# Phase 8: Deliver
# - Upload to a phishing landing page
# - Attach to email (if <25MB)
# - Host on a file-sharing service

Detection & Reporting


Detection Method

What It Looks For

Likely to Catch

Human review

Uncanny valley, eye movement artifacts, lip sync errors

Medium — better approaches

Deepware Scanner

GAN fingerprints, blending artifacts

Low-to-medium (OBS w/ compression bypasses most)

Microsoft Video Authenticator

Edge blending, boundary artifacts

Low with high-quality models

Intel FakeCatcher

Heartbeat/blood flow detection

Medium — requires dedicated hardware

Sensity AI

Model-specific signatures

Varies by tool used

Exif/metadata analysis

Editor stamps, processing history

High if no cleanup


Report example:


markdown

## Finding V-002: Video Deepfake Susceptibility

Severity: Critical
Vector: CEO impersonation via fake town hall video posted to internal Slack
Tool Used: DeepFaceLab (SAEHD, 48hr training) + ElevenLabs

Result: 14/20 employees who watched the video believed it was real.
2 employees flagged it as suspicious. No one verified via out-of-band channels.

Remediation:
1. Implement liveness detection on video calls (challenge-response)
2. Establish out-of-band verification protocol for video-based requests
3. Deploy automated deepfake detection tools (Sensity, Deepware)
4. Conduct deepfake awareness training for all staff
5. Create a "verified channel" for executive communications

Operational Security Checklist


  •  Source material collected from public sources (OSINT)

  •  GPU tested (min 8GB VRAM NVIDIA recommended)

  •  Test footage rendered and reviewed for obvious artifacts

  •  Video shortened with glitch/buffer-freeze excuse to cover imperfections

  •  Audio synced and naturalized (pauses, filler words, breathing)

  •  Background environment matched to target's likely location

  •  Delivery vector chosen (email, Slack, Teams, Zoom)

  •  Outbound caller ID spoofed (if phone component)

  •  Contingency for liveness challenge (pre-recorded movements)


Enroll In Online Cybersecurity & Hacking Classes/Courses | Black Hat HQ

Comments


bottom of page