dot(即深度伪造攻击工具包)可制作实时、可控的深度伪造视频,并用于虚拟摄像头注入。dot 专为安全分析师、红队成员和生物识别研究人员设计,用于对身份验证和视频会议系统等进行渗透测试。
如果你想了解 dot 如何在行业中被用于深度伪造渗透测试,请阅读 The Verge 和 Biometric Update 的相关文章。
dot 是为研究和演示目的而开发的。作为最终用户,你有责任在使用本程序时遵守所有适用法律。作者和贡献开发者不承担任何责任,也不对因使用本程序造成的任何误用或损害负责。
简而言之,dot 的工作方式如下:
flowchart LR;
A(your webcam feed) --> B(suite of realtime deepfakes);
B(suite of realtime deepfakes) --> C(virtual camera injection);
dot 支持的所有深度伪造方法均无需额外训练。它们可以在运行时实时使用,以一张照片作为人脸冒充的目标。支持的方法:
224 和 512
256 和 512下载并运行适用于你操作系统的 dot 可执行文件:
Windows(已在 Windows 10 和 11 上测试):
dot.zip,解压后运行 dot.exeUbuntu:
Mac(已在 Apple M2 Sonoma 14.0 上测试):
dot-m2.zip 并解压xattr -cr dot-executable.app 以移除所有扩展属性Contents/MacOS 文件夹中执行 dot-executable使用示例:
source 字段中指定源图像。target 字段中指定摄像头 ID 号。大多数情况下,0 是正确的摄像头 ID。config_file 字段中指定配置文件。从下拉列表中选择默认配置,或使用自定义文件。use_gpu 字段以使用 GPU。RUN 按钮启动深度伪造。关于每个字段的更多信息,请点击菜单 Help/Usage。
观看以下演示视频以更好地了解界面:
Linux
sudo apt install ffmpeg cmake
MacOS
brew install ffmpeg cmake
Windows
以下说明假设你的机器上已安装 Miniconda。如果尚未安装,可参考此 链接 进行安装。
conda env create -f envs/environment-gpu.yaml
conda activate dot
根据你机器上安装的 CUDA 版本安装 torch 和 torchvision 依赖:
从 链接 安装 CUDA 11.8
从 conda 安装 cudatoolkit:conda install cudatoolkit=<cuda_version_no>(将 <cuda_version_no> 替换为你机器上的版本号)
安装 torch 和 torchvision 依赖:pip install torch==2.0.1+<cuda_tag> torchvision==0.15.2+<cuda_tag> torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118,其中 <cuda_tag> 是 PyTorch 定义的 CUDA 标签。例如,对于 CUDA 11.8,使用 pip install torch==2.0.1+cu118 torchvision==0.15.2+cu118 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118。
注意:也可以使用 torch1.9.0+cu111。
要检查 torch 和 torchvision 是否正确安装,请运行以下命令:python -c "import torch; print(torch.cuda.is_available())"。如果输出为 True,则依赖已安装并支持 CUDA。
conda env create -f envs/environment-apple-m2.yaml
conda activate dot
要检查 torch 和 torchvision 是否正确安装,请运行以下命令:python -c "import torch; print(torch.backends.mps.is_available())"。如果输出为 True,则依赖已安装并支持 Metal 编程框架。
conda env create -f envs/environment-cpu.yaml
conda activate dot
pip install -e .
运行 dot --help 可获取所有可用选项的完整列表。
Simswap
dot -c ./configs/simswap.yaml --target 0 --source "./data" --use_gpu
SimSwapHQ
dot -c ./configs/simswaphq.yaml --target 0 --source "./data" --use_gpu
FOMM
dot -c ./configs/fomm.yaml --target 0 --source "./data" --use_gpu
FaceSwap CV2
dot -c ./configs/faceswap_cv2.yaml --target 0 --source "./data" --use_gpu
注意:要启用面部超分辨率,请使用 --gpen_type gpen_256 或 --gpen_type gpen_512 标志。要在 CPU 上使用 dot(不推荐),请不要传递 --use_gpu 标志。
免责声明:以下演示使用
SimSwap技术。
通过上述任何一种方法运行 dot 都会使用 data/ 文件夹中的源图像,在输入视频流上生成实时深度伪造。
运行 dot 时,终端窗口会显示可用控制选项列表,如上所示。你可以通过按下相关的控制键来切换和选择不同的源图像。
观看以下演示视频以更好地了解控制选项:
构建容器
docker-compose up --build -d
进入容器
docker-compose exec dot "/bin/bash"
构建容器
docker build -t dot -f Dockerfile .
运行容器
xhost +
docker run -ti --gpus all \
-e NVIDIA_DRIVER_CAPABILITIES=compute,utility \
-e NVIDIA_VISIBLE_DEVICES=all \
-e PYTHONUNBUFFERED=1 \
-e DISPLAY \
-v .:/dot \
-v /tmp/.X11-unix:/tmp/.X11-unix:rw \
--runtime nvidia \
--entrypoint /bin/bash \
-p 8080:8080 \
--device=/dev/video0:/dev/video0 \
dot
按照 此处 Windows 下的说明设置摄像头与 docker 的连接。
构建容器
docker build -t dot -f Dockerfile .
运行容器
docker run -ti --gpus all \
-e NVIDIA_DRIVER_CAPABILITIES=compute,utility \
-e NVIDIA_VISIBLE_DEVICES=all \
-e PYTHONUNBUFFERED=1 \
-e DISPLAY=192.168.99.1:0 \
-v .:/dot \
--runtime nvidia \
--entrypoint /bin/bash \
-p 8080:8080 \
--device=/dev/video0:/dev/video0 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
dot
按照 此处 的说明设置摄像头与 docker 的连接。
构建容器
docker build -t dot -f Dockerfile .
运行容器
docker run -ti --gpus all \
-e NVIDIA_DRIVER_CAPABILITIES=compute,utility \
-e NVIDIA_VISIBLE_DEVICES=all \
-e PYTHONUNBUFFERED=1 \
-e DISPLAY=$IP:0 \
-v .:/dot \
-v /tmp/.X11-unix:/tmp/.X11-unix \
--runtime nvidia \
--entrypoint /bin/bash \
-p 8080:8080 \
--device=/dev/video0:/dev/video0 \
dot
不同操作系统的说明有所不同。
安装 OBS Studio。
运行 OBS Studio。
在“来源”部分,点击“添加”按钮(“+”号),