
신원 확인 및 화상 회의 시스템의 침투 테스트를 위한 실시간 딥페이크 툴킷입니다. 레드팀 운영을 위해 얼굴 교체, 이미지 애니메이션 및 가상 카메라 주입을 지원합니다.
dot(딥페이크 공격 도구 키트)는 가상 카메라 주입을 통해 실시간으로 제어 가능한 딥페이크를 생성합니다. dot은 보안 분석가, 레드 팀 구성원, 생체 인식 연구자들이 신원 확인 및 화상 회의 시스템 등에 대한 침투 테스트를 수행할 수 있도록 설계되었습니다.
업계에서 dot이 딥페이크를 이용한 침투 테스트에 어떻게 활용되는지 더 알고 싶다면 The Verge 및 Biometric Update의 기사를 참조하세요.
dot은 연구 및 데모 목적으로 개발되었습니다. 최종 사용자는 이 프로그램을 사용할 때 모든 관련 법률을 준수할 책임이 있습니다. 저자 및 기여 개발자는 이 프로그램 사용으로 인한 오용이나 손해에 대해 어떠한 책임도 지지 않습니다.
간단히 말해 dot은 다음과 같이 작동합니다.
flowchart LR;
A(사용자 웹캠 피드) --> B(실시간 딥페이크 제품군);
B(실시간 딥페이크 제품군) --> C(가상 카메라 주입);
dot이 지원하는 모든 딥페이크는 추가 학습이 필요하지 않습니다. 얼굴을 가장할 대상 사진만 있으면 실시간으로 바로 사용할 수 있습니다. 지원 방법:
224 및 512
256 및 512해당 OS용 dot 실행 파일을 다운로드하여 실행하세요.
Windows (Windows 10 및 11에서 테스트 완료):
dot.zip을 다운로드하고 압축을 푼 후 dot.exe를 실행하세요.Ubuntu:
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 버튼을 클릭하여 딥페이크를 시작하세요.각 필드에 대한 자세한 내용은 도움말/사용법 메뉴를 클릭하세요.
인터페이스를 더 잘 이해하려면 다음 데모 비디오를 시청하세요.
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