
リアルタイムのディープフェイクツールキット。身元確認システムやビデオ会議システムのペネトレーションテスト用。フェイススワップ、画像アニメーション、レッドチーム向け仮想カメラインジェクションをサポート。
dot(Deepfake Offensive Toolkit)は、リアルタイムで制御可能なディープフェイクを生成し、仮想カメラに注入するためのツールです。dot は、セキュリティアナリスト、レッドチームメンバー、生体認証研究者による、例えば本人確認システムやビデオ会議システムに対するペネトレーションテストを目的として作成されました。
dot が業界でディープフェイクを使ったペネトレーションテストにどのように利用されているかについて詳しく知りたい場合は、The Verge や Biometric Update の記事をお読みください。
dot は研究およびデモンストレーション目的で開発されています。エンドユーザーは、本プログラムを使用する際に適用されるすべての法律を遵守する責任を負います。作者および貢献開発者は、本プログラムの使用によって生じた誤用や損害について一切の責任を負わず、これらの行為に対して責任を負いません。
簡単に言うと、dot は次のように動作します:
flowchart LR;
A(Webカメラの映像) --> 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 ボタンをクリックしてディープフェイクを開始します。各フィールドの詳細については、メニュー 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/ フォルダのソース画像を使用して、入力ビデオフィードにリアルタイムの Deepfake が生成されます。
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 で Web カメラをセットアップします。
コンテナをビルドします
docker build -t dot -f Dockerfile .
コンテナを実行します