はじめに
FantasyTalkingは、Fantasy-AMAPチームによって開発されたオープンソースプロジェクトです。このプロジェクトは、高度なビデオ拡散モデルWan2.1をベースに、オーディオエンコーダWav2Vecと独自のモデルウェイトを組み合わせ、人工知能技術を使用して、非常にリアルなリップシンクロと表情を実現しています。パノラマ、バストアップ、クローズアップなど幅広い視点に対応し、実在の人物やアニメ画像など、複数のスタイルのポートレート生成に対応しています。簡単なコマンドライン操作で画像や音声を入力し、高品質なトーキングビデオを素早く生成できます。
機能一覧
- 音声と高度に同期した唇の動きで、リアルな話し方のポートレートビデオを生成します。
- クローズアップ、半身、全身のポートレートなど、複数の視点での生成がサポートされている。
- リアルとカートゥーンスタイルのポートレートに対応し、多様なニーズに応える。
- キャラクターの表情や体の動きを調整するキューワードコントロール機能を提供。
- 720Pまでの高解像度出力に対応。
- 顔の特徴の一貫性を確保するために、顔に焦点を当てたクロスアテンションモジュールを統合。
- 表情と可動域をコントロールする運動強度調整モジュールを搭載。
- オープンソースのモデルとコードで、二次コミュニティの開発と最適化をサポート。
ヘルプの使用
設置プロセス
FantasyTalkingを使用するには、まず必要な依存関係とモデルをインストールする必要があります。以下は詳しいインストール手順です:
- プロジェクトコードの複製
ターミナルで以下のコマンドを実行し、プロジェクトをローカルにクローンする:git clone https://github.com/Fantasy-AMAP/fantasy-talking.git cd fantasy-talking
- 依存関係のインストール
このプロジェクトはPython環境とPyTorch (version >= 2.0.0)に依存します。以下のコマンドを実行して、必要なライブラリをインストールしてください:pip install -r requirements.txt
オプション
flash_attn
注意の計算を加速する:pip install flash_attn
- ダウンロードモデル
FantasyTalkingには、Wan2.1-I2V-14B-720P(ベースモデル)、Wav2Vec(オーディオエンコーダ)、FantasyTalkingモデルウエイトの3つのモデルが必要です。これらはHugging FaceまたはModelScopeからダウンロードできます:- ハギング・フェイスCLIを使う:
pip install "huggingface_hub[cli]" huggingface-cli download Wan-AI/Wan2.1-I2V-14B-720P --local-dir ./models/Wan2.1-I2V-14B-720P huggingface-cli download facebook/wav2vec2-base-960h --local-dir ./models/wav2vec2-base-960h huggingface-cli download acvlab/FantasyTalking fantasytalking_model.ckpt --local-dir ./models
- または、ModelScope CLIを使用します:
pip install modelscope modelscope download Wan-AI/Wan2.1-I2V-14B-720P --local_dir ./models/Wan2.1-I2V-14B-720P modelscope download AI-ModelScope/wav2vec2-base-960h --local_dir ./models/wav2vec2-base-960h modelscope download amap_cvlab/FantasyTalking fantasytalking_model.ckpt --local_dir ./models
- ハギング・フェイスCLIを使う:
- 検証環境
GPUが使用可能であることを確認してください(RTX 3090以上を推奨、VRAMは24GB以上)。メモリの問題が発生した場合は、解像度を下げるか、VRAM最適化を有効にしてみてください。
使用方法
インストールが完了したら、ユーザーはコマンドラインからビデオを生成するための推論スクリプトを実行することができます。基本的なコマンドは以下の通り:
python infer.py --image_path ./assets/images/woman.png --audio_path ./assets/audios/woman.wav
--image_path
ポートレート画像のパスを入力してください。--audio_path
入力オーディオファイルのパス(WAVフォーマットに対応)。--prompt
例えば、役割の行動をコントロールするために、オプションでプロンプトの言葉を使うことができる:--prompt "The person is speaking enthusiastically, with their hands continuously waving."
--audio_cfg_scale
歌で応える--prompt_cfg_scale
オーディオCFGを上げるとリップシンクが向上します。
注目の機能操作
- リップ・シンクロナイズ
FantasyTalkingの中核機能は、音声に基づいて正確な唇の動きを生成することです。ユーザーはクリアな音声ファイル(例えばWAVフォーマット、サンプリングレートは16kHzが最適)を用意する必要がある。推論スクリプトを実行すると、モデルが自動的に音声を分析し、マッチする唇の動きを生成します。最良の結果を得るためには、音声に大きなノイズがないことを確認してください。 - キュー・ワード・コントロール
とおす--prompt
パラメータを使用することで、キャラクターの表情やアクションを定義することができます。例えば--prompt "The person is speaking calmly with slight head movements."
落ち着いて話している動画を作成することができる。キュー・ワードは簡潔かつ明確である必要があり、曖昧な説明は避ける。 - マルチスタイル対応
このプロジェクトは、リアルスタイルとカートゥーンスタイルの両方の肖像画生成をサポートしています。ユーザーは異なるスタイルの入力画像を提供することができ、モデルは画像の特徴に応じて出力スタイルを調整する。カートゥーンスタイルはアニメーションシーンに適しており、リアルスタイルはバーチャルアンカーのようなアプリケーションに適しています。 - 運動強度の調節
FantasyTalkingのMotion Intensity Modulationモジュールは、表情や動きの振幅をコントロールすることができます。例えば--audio_weight
四肢の動きを強調し、ダイナミックなシーンに適したパラメータです。デフォルト設定は最適化されているため、初めて使用する場合はデフォルト値のまま使用することをお勧めします。
ほら
- ハードウェア要件32GBのVRAMを搭載したRTX 5090でもメモリ不足の問題が発生する可能性があるため、高解像度ビデオを生成するために必要なメモリ量を減らすことをお勧めします。
--image_size
もしかしたら--max_num_frames
. - モデルダウンロードモデルファイルは容量が大きい(数十ギガバイト)ので、安定したネットワークと十分なディスク容量があることを確認してください。
- キュー・ワードの最適化手がかりとなる単語は出力に大きな影響を与えるので、最適な記述を見つけるために何度か実験することをお勧めします。
アプリケーションシナリオ
- バーチャル・アンカーのコンテンツ作成
ユーザーはFantasyTalkingを使って、バーチャルキャスターのリアルなトーキングビデオを生成することができます。キャスターのポートレート画像とナレーション音声を入力すると、ライブストリーミング、ショートビデオ、教育コンテンツ制作用のリップシンクされたビデオが生成されます。 - アニメーション・キャラクター吹き替え
アニメーターは、アニメキャラクターのナレーションビデオを生成することができます。アニメの画像と音声を提供すると、それにマッチした唇の動きや表情を生成することができ、アニメ制作プロセスを簡素化することができます。 - 教育用ビデオ制作
講師やトレーニング組織は、バーチャル講師ビデオを作成することができます。インストラクターの顔写真とコース音声を入力すると、コンテンツの魅力を高めるインストラクションビデオをすばやく作成できます。 - エンターテインメントと魅惑の創造
ファンフィクションやエンターテイメントビデオ用の愉快なトーキングポートレートを作成することができます。出だしの言葉を調整することで、SNSでの共有に適した大げさな表情やアクションの動画を作成できます。
品質保証
- FantasyTalkingはどのような入力フォーマットに対応していますか?
画像はPNGとJPG形式で、音声はWAV形式で、リップシンクを最適化するために推奨サンプリングレートは16kHzです。 - ビデオメモリ不足の問題を解決するには?
GPUに十分なメモリがない場合(例:RTX 5090のVRAMは32GB)、以下のように設定します。--image_size
(例えば、512x512)または縮小された--max_num_frames
(30fpsなど)。また、VRAM最適化オプションを有効にしたり、より設定可能なGPUを使用することも可能です。 - 生成されるビデオの品質はどのように改善できますか?
音声がクリアでノイズがないことを確認するため、高解像度の入力画像(少なくとも512x512)を使用してください。調整--audio_cfg_scale
(5-7など)はリップシンクロを高め、キューワードを最適化することで表情の自然さを向上させる。 - リアルタイム生成に対応しているか?
現在のバージョンはオフライン推論のみをサポートしており、リアルタイム生成にはさらなるモデルの最適化とハードウェアのサポートが必要である。