DeepFuze は、ComfyUI とシームレスに統合され、顔の変換、リップシンク、ビデオ生成、音声クローン、顔の交換、リップシンク翻訳に革命をもたらす最先端の深層学習ツールです。 DeepFuze は、高度なアルゴリズムを活用して、ユーザーが比類のないリアリズムでオーディオとビデオを組み合わせ、完全に同期した顔の動きを保証できるようにします。この革新的なソリューションは、コンテンツ クリエーター、アニメーター、開発者、および高度な AI 主導の機能でビデオ編集プロジェクトを向上させたいと考えている人にとって理想的です。
Visual Studio をインストールする必要があります。コミュニティ バージョンまたは VS C++ ビルド ツールで動作し、[ワークロード -> デスクトップとモバイル] で [C++ によるデスクトップ開発] を選択します。
ComfyUI-Manager から DeepFuze を検索し、ノードをインストールします。 ComfyUI を再起動し、ターミナル ウィンドウを見てエラーがないことを確認するか、ComfyUI マネージャーからインストールし、[GIT URL 経由でインストール] を選択し、以下をコピーします。
https://github.com/SamKhoze/CompfyUI-DeepFuze.git
ComfyUI を再起動します
YOUTUBE リンクのステップバイステップの説明
深層学習用に Nvidia CUDA Toolkit==11.8 と cuDNN (CUDA Deep Neural Network) をインストールします。NVIDIA DEVELOPER cuDNN アーカイブからcuDNN バージョン 8.9.2.26 をダウンロードする必要があります。開発者アカウントをお持ちでない場合は、GoogleDrive から直接ダウンロードできます。 。 Cuda1 1.8 を必ずインストールしてください。この YOUTUBE ビデオがインストールに役立つことがわかりました。別のバージョンの CUDA をお持ちの場合は、CUDA をアンインストールする方法を説明する YOUTUBE リンクを参照してください。 YOUTUBE VIDEO の説明に従って、必ず環境変数にパスを作成してください。パスを作成した後、コンピューターを再起動してください。 Cuda のインストールを確認し、このコードをターミナル ウィンドウnvcc --version
に貼り付けます。次のような応答が得られます。
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:41:10_Pacific_Daylight_Time_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0`
ComfyUI-Manager 経由でインストールしないと機能しません。手動でインストールし、以下の手順に従う必要があります。
仮想環境、Conda または Venv をアクティブ化します。
PyTorch をインストールしてテストする方法は次のとおりです。
この方法は M1 および M3 Mac でテストされています。Mac のターミナル ウィンドウで以下のコードを実行する必要があります。 Metal Performance Shaders (MPS) デバイス上での高性能 GPU プログラミングのための Apple の特殊なソリューション。 Metal フレームワークと密接に統合された MPS は、グラフィックスおよびコンピューティング タスク向けに高度に最適化された一連のシェーダーを提供します。これは、機械学習アプリケーションで特に有益です。
以下のコマンドをコピーしてターミナル ウィンドウに貼り付けます。
export PYTORCH_ENABLE_MPS_FALLBACK=1
Mac ユーザーは、onnxruntime-gpu の代わりに ONNX RUNTIME CPU をインストールする必要があります
pip install onnxruntime
macOS はオリジナルの dlib をインストールする必要があります。
pip install dlib
音声クローン作成ノード用の Text to Speech をインストールする
pip install TTS
custom_nodes
フォルダーに移動します
cd custom_nodes
git clone https://github.com/SamKhoze/CompfyUI-DeepFuze.git
CompfyUI-DeepFuze
フォルダーに移動し、 requirements.txt
ファイルをインストールします。
cd CompfyUI-DeepFuze
pip install -r requirements.txt
音声クローンとリップシンクの前提条件
以下は、ビデオとオーディオを読み込むために必要な 2 つの ComfyUI リポジトリです。これらをcustom_nodes
フォルダーにインストールします。
リポジトリのクローンを作成します。
cd custom_nodes
git clone https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite.git
CV エラー: 「ComfyUI_windows_portableComfyUIoutputdeepfuzefaceswap_file.mp4 を cv でロードできませんでした」というエラーが発生した場合は、 onnxruntime
がインストールされていないことを意味します。これを修正するには、CPU にはonnxruntime
、Windows にはonnxruntime-gpu
インストールしてください。 Mac ユーザーは、仮想環境でコマンドpip install --upgrade opencv-python-headless
使用して OpenCV をアップグレードする必要があります。 Windows ユーザーの場合は、ComfyUI Manager に移動し、「pip install」をクリックし、 --upgrade opencv-python-headless
を貼り付け、「OK」をクリックして、ComfyUI を再起動します。
zlibwapi.dll が見つからないエラー: NVIDIA zlibwapi.dll ファイルを検索し、ダウンロードして C:Program FilesNVIDIA GPU Computing ToolkitCUDAv11.8binzlibwapi.dll にコピーします。
TTS のインストール中にエラーが発生した場合は、Python のバージョンが異なることが原因である可能性が高く、正しいバージョンをインストールしていることを確認してください。
エラーが発生した場合: ImportError: 名前 'get_full_repo_name' を 'huggingface_hub' からインポートできません 端末で以下のコードを実行すると問題が解決します
conda install chardet
pip install --upgrade transformers==4.39.2
いずれかのパッケージでエラーが発生した場合は、テキスト エディターでrequirements.txtファイルを開き、パッケージ名の先頭からバージョンを削除し、requirments.txtを再度インストールしてください。
GoogleDrive からモデルを直接ダウンロードし、モデルを PATH ./ComfyUI/models/deepfuze/
に配置できます。各モデルを 1 つずつ手動でダウンロードして配置してください。モデルのサイズにより、一部のモデルはダウンロードされません。環境変数を準備するフォルダーをダウンロードします。custom_nodes フォルダーに移動して git clone するか、コードを手動でダウンロードして、custom_nodes フォルダーに抽出します。
音声クローン作成ダイアログに「Openai LLM」ノードを使用するには、OpenAI API キーが必要です。このキーを取得し、OpenAI Developer クイックスタート ガイドの手順に従ってセットアップできます。 「Openai LLM」ノードは API キーを保存しないことに注意してください。ノードを閉じるたびに、API キーを手動でコピーして貼り付ける必要があります。次のコマンドを使用して API キーを環境変数として追加することもできます: Windows の場合: setx OPENAI_API_KEY "your-api-key-here"
、Mac の場合: export OPENAI_API_KEY='your-api-key-here'
。次回、API キーをコピーして LLM ノードに貼り付ける必要があるときは、ターミナルにコマンドecho $OPENAI_API_KEY
入力すると、API キーが出力され、コピーして Openai LLM に貼り付けることができます。ノード。
このノードは、ビデオ、画像、オーディオ ファイルからリップシンク ビデオを生成します。より高品質にエクスポートするには、ビデオを結合するのではなく画像バッチとしてイメージ出力をエクスポートし、最大 4K 品質の画像サイズを取得できます。重要: VideoHelperSuit ノードから「VHS ロードオーディオ」ノードを使用してオーディオをロードする必要があります。
入力タイプ:
images
: PyTorch テンソルとして抽出されたフレーム画像。audio
: ロードされたオーディオ データのインスタンス。mata_batch
: Meta Batch Manager ノードを介してバッチ番号をロードします。出力タイプ:
IMAGES
: PyTorch tensor として抽出されたフレーム画像。frame_count
: 出力フレーム数 int。audio
: 音声を出力します。video_info
: ビデオメタデータを出力します。DeepFuze リップシンクの機能:
enhancer
: 顔エンハンサーを追加して、顔復元ネットワーク経由で生成されたビデオの品質を向上させることができます。frame_enhancer
: ビデオのフレーム全体にエンハンスを追加できます。face_mask_padding_left
: リップシンク中に顔の左側にパディングします。face_mask_padding_right
: リップシンク中の顔の右側のパディング。face_mask_padding_bottom
: リップシンク中に顔の下部にパディングします。face_mask_padding_top
: リップシンク中に顔の上部にパディングします。device
: [CPU、GPU]frame_rate
: フレームレートを設定します。loop_count
: ビデオをさらに何回繰り返すか。filename_prefix
: 出力ビデオのプレフィックス命名。pingpong
: 入力を逆再生してクリーンなループを作成します。save_output
: 出力を出力フォルダーに保存します。 このノードは、ビデオ、画像の顔を交換、強化、復元します。またはそれ以上の品質で画像出力をビデオを結合するのではなく画像バッチとしてエクスポートすると、最大 4K 品質の画像サイズを取得できます。
入力タイプ:
source_images
: スワップ用に PyTorch テンソルとして抽出されたフレーム イメージ。target_images
: ソースビデオ/画像を入力するために、フレーム画像を PyTorch テンソルとして抽出しました。mata_batch
: Meta Batch Manager ノードを介してバッチ番号をロードします。出力タイプ:
IMAGES
: PyTorch tensor として抽出されたフレーム画像。frame_count
: 出力フレーム数 int。audio
: 音声を出力します。video_info
: ビデオメタデータを出力します。DeepFuze FaceSwap の機能:
enhancer
: 顔エンハンサーを追加して、顔復元ネットワーク経由で生成されたビデオの品質を向上させることができます。faceswap_model
: スワップするさまざまなモデルを選択できます。frame_enhancer
: ビデオのフレーム全体にエンハンスを追加できます。face_detector_model
: 顔検出用にさまざまなモデルを選択できます。face_mask_padding_left
: リップシンク中に顔の左にパディングします。face_mask_padding_right
: リップシンク中に顔の右にパディングします。face_mask_padding_bottom
: リップシンク中に顔の下部にパディングします。face_mask_padding_top
: リップシンク中に顔の上にパディングします。device
: [CPU、GPU]frame_rate
: フレームレートを設定します。loop_count
: ビデオをさらに何回繰り返すか。filename_prefix
: 出力ビデオのプレフィックス命名。pingpong
: 入力を逆再生してクリーンなループを作成します。save_output
: 出力を出力フォルダーに保存します。顔検出器モデルの概要表(RetinaFace は、顔の周囲のコンテキスト情報を組み込むことで高品質を提供します。これは、オクルージョン、さまざまなスケール、ポーズなどのさまざまな条件下で顔を検出するのに役立ちます。
特徴 | ヨロフェイス | 網膜顔 | SCRFD | ゆうネット |
---|---|---|---|---|
建築 | 単発YOLO | シングルステージRetinaNet | 単段カスケード | ライトウェイトカスタム |
スピード | 非常に速い | 適度 | 速い | 非常に速い |
正確さ | 良い | 非常に高い | 高い | 良い |
堅牢性 | 適度 | 非常に高い | 高い | 適度 |
計算効率 | 高い | 適度 | 高い | 非常に高い |
使用例 | リアルタイムのそれほど複雑ではないシーン | 高精度で堅牢なニーズ | バランスの取れたモバイル/エッジ デバイス | モバイル、組み込み、リアルタイム |
長所 | スピード | 精度、堅牢性 | 効率、正確さ | 軽量で効率的 |
短所 | 精度のトレードオフ | 計算量が多い | 最速ではない | 複雑なシーンでは堅牢性が低下する |
言語:
DeepFuze_TTS 音声クローン作成は 17 の言語をサポートしています: 英語 (en)、スペイン語 (es)、フランス語 (fr)、ドイツ語 (de)、イタリア語 (it)、ポルトガル語 (pt)、ポーランド語 (pl)、トルコ語 (tr)、ロシア語 (ru) )、オランダ語 (nl)、チェコ語 (cs)、アラビア語 (ar)、中国語 (zh-cn)、日本語 (ja)、ハンガリー語 (hu)、韓国語 (ko) ヒンディー語 (こんにちは)。
このノードは、入力された入力から音声を複製するために使用されます。より良い結果を得るには、オーディオ ファイルの長さは 10 ~ 15 秒にする必要があり、ノイズが多くないことが必要です。サンプル レート エラーを回避するには、MP3 オーディオをロードし、AudioScheduler ノードのみを使用してください。私たちはこの問題を解決するコンバータノードの開発に取り組んでいます。
入力タイプ:
audio
: ロードされたオーディオ データのインスタンス。text
: クローン音声オーディオを生成するためのテキスト。出力タイプ:
audio
: ロードされたオーディオ データのインスタンス。「LLM Integration」ノードは、LLM (言語モデル) を音声クローン作成プロセスに組み込むために使用されます。ダイアログを入力してパラメータを設定すると、AI が生成したテキストが音声クローンに使用されます。さらに、ChatGPT の代わりにこのノードを利用して、LLM からテキストを生成したり、ChatGPT の場合と同じ方法で質問したりすることができます。 LLM_RESPONSE を rgthree-comfy の「Display Any」ノードに接続すると、DeepFuze_LLM の出力を表示できます。このノードは、プロンプトの生成や任意のノードの入力テキストにも使用できます。
入力タイプ:
user_query
: ダイアログを入力します。出力タイプ:
LLM_RESPONSE
: AI が生成したテキストを出力します。DeepFuze Openai LLM の機能:
model_name
: 利用可能な openai モデルから選択できます。api_key
: API キーを追加します。 (API キーは保存されないため、このノードを使用するたびに手動で入力する必要があります。max_tokens
: OpenAI GPT API でのモデルの応答内のトークンの数を制限するパラメーターです。これは、スプレッドシートとドキュメントの GPT を介して行われたリクエストと、ChatOpenAI() クラスで使用されます。 max_tokens のデフォルト値は 4096 トークンで、これはおよそ 3,000 ワードに相当します。temperature
: 応答のランダム性と創造性のレベルを制御します。これは、生成されるテキストの創造性と一貫性のバランスをとる、ラージ言語モデル (LLM) のハイパーパラメーターです。温度設定は常に 0 ~ 1 の数値で、デフォルトは 0.7 です。 0: 非常に単純で、ほぼ決定的な応答を生成します 1: 応答が大きく変化します 0.7: ChatGPT のデフォルト温度。timeout
: リクエストの完了に時間がかかりすぎてサーバーが接続を閉じる場合の時間を設定します。入力タイプ:
image
: フェイスマスクのパディングのプレビューを提供します。DeepFuze パディング機能:
face_mask_padding_left
: リップシンク中に顔の左にパディングします。face_mask_padding_right
: リップシンク中に顔の右にパディングします。face_mask_padding_bottom
: リップシンク中に顔の下部にパディングします。face_mask_padding_top
: リップシンク中に顔の上にパディングします。このノードは、「Voice Cloning」ノードの出力を保存するために使用されます。さらに、オーディオをトリミングして再生することもできます。
入力タイプ:
audio
: ロードされたオーディオ データのインスタンス。DeepFuze パディング機能:
METADATA
: メタデータを列挙します。start_time
: 開始時間を調整します。end_time
: 終了時刻をトリミングします。playback window
: 再生、保存、および再生速度のオプションを提供します。音声クローン作成 + リップシンク生成
音声クローン + リップシンク生成 + FaceSwap
ComfyUI-DeepFuze/ ├── __init__.py ├── __pycache__/ │ ├── __init__.cpython-311.pyc │ ├── audio_playback.cpython-311.pyc │ ├── llm_node.cpython-311.pyc │ ├── nodes.cpython-311.pyc │ └── utils.cpython-311.pyc ├── audio_playback.py ├── deepfuze/ │ ├── __init__.py │ ├── audio.py │ ├── choices.py │ ├── common_helper.py │ ├── config.py │ ├── content_analyser.py │ ├── core.py │ ├── download.py │ ├── execution.py │ ├── face_analyser.py │ ├── face_helper.py │ ├── face_masker.py │ ├── face_store.py │ ├── ffmpeg.py │ ├── filesystem.py │ ├── globals.py │ ├── installer.py │ ├── logger.py │ ├── memory.py │ ├── metadata.py │ ├── normalizer.py │ ├── process_manager.py ├── requirements.txt ├── images/ ├── install.py ├── LICENSE.txt ├── llm_node.py ├── mypy.ini ├── nodes.py ├── README.md ├── requirements.txt ├── run.py ├── tests/ │ ├── __init__.py │ ├── test_audio.py │ ├── test_cli_face_debugger.py │ ├── test_cli_face_enhancer.py │ ├── test_cli_face_swapper.py │ ├── test_cli_frame_colorizer.py │ ├── test_cli_frame_enhancer.py │ ├── test_cli_lip_syncer.py │ ├── test_common_helper.py │ ├── test_config.py │ ├── test_download.py │ ├── test_execution.py │ ├── test_face_analyser.py │ ├── test_ffmpeg.py │ ├── test_filesystem.py │ ├── test_memory.py │ ├── test_normalizer.py │ ├── test_process_manager.py │ ├── test_vision.py │ └── test_wording.py ├── tts_generation.py └── utils.py
from deepfuze import DeepFuze
# Initialize the DeepFuze instance
deepfuze = DeepFuze ()
# Load video and audio files
deepfuze . load_video ( 'path/to/video.mp4' )
deepfuze . load_audio ( 'path/to/audio.mp3' )
deepfuze . load_checkpoint ( 'path/to/checkpoint_path' )
# Set parameters (optional)
deepfuze . set_parameters ( sync_level = 5 , transform_intensity = 3 )
# Generate lipsynced video
output_path = deepfuze . generate ( output = 'path/to/output.mp4' )
print ( f"Lipsynced video saved at { output_path } " )
このリポジトリは、FaceFusion、InsightFace、SadTalker、Facexlib、GFPGAN、GPEN、Real-ESRGAN、TTS、SSD、および wav2lip の貢献なしには完成しませんでした。
DeepFuze コードは、Sam Khoze 博士と彼のチームによって開発されました。 DeepFuze コードは、個人、研究、学術、商業目的でご自由に使用してください。このツールを使用してビデオを作成できますが、必ず現地の法律に従い、責任を持って使用してください。開発者は、ユーザーによるツールの誤用については責任を負いません。