はじめに
AniPortraitは、音声によってリアルな似顔絵アニメーションを生成する革新的なフレームワークです。Tencentゲーム・ノウ・ユアセルフ・ラボのHuawei、Zechun Yang、Zhisheng Wangによって開発されたAniPortraitは、音声と参照用の肖像画像から高品質なアニメーションを生成することができ、以下のようなことも可能です。顔の再現のためにビデオを提供する.高度な3D中間表現と2Dフェイシャルアニメーション技術を使用することで、このフレームワークは、映画やテレビの制作、バーチャルキャスターやデジタルピープルなど、さまざまな応用シーンで自然で滑らかなアニメーション効果を生成することができます。
機能一覧
- オーディオ・ドリブン・アニメーション:オーディオ入力から対応するポートレート・アニメーションを生成します。
- ビデオ・ドリブン・アニメーション:顔の再生にビデオを提供し、リアルな顔のアニメーションを生成する。
- ハイクオリティなアニメーション生成:3D中間表現と2Dフェイシャルアニメーション技術を駆使し、ハイクオリティなアニメーションエフェクトを生成。
- ウェブUIデモ:ユーザーフレンドリーな体験のために、GradioウェブUIを通じてオンラインデモを提供します。
- モデルの訓練と推論:モデルの訓練と推論をサポートし、ユーザーは訓練と生成のためのデータをカスタマイズできる。
ヘルプの使用
取り付け
環境ビル
Pythonのバージョンは3.10以上、CUDAのバージョンは11.7以上を推奨。以下の手順で環境を構築する:
pip install -r requirements.txt
ダウンロード・ウェイト
すべてのウェイトファイルは./pretrained_weights
ディレクトリからダウンロードします。ウェイトファイルは以下のように手動でダウンロードする:
- 以下の部分を含む学習済みウェイトをダウンロードする:
デノイジング_unet.pth
そしてreference_unet.pth
そしてポーズガイダー
そしてmotion_module.pth
その他 - ベースモデルやその他のコンポーネントのために事前に訓練された重みをダウンロードする:
- StableDiffusion V1.5
- SD-VAE-FT-MSE
- イメージ・エンコーダ
- wav2vec2-base-960h
ウェイトファイルの構成は以下の通り:
./pretrained_weights/
|-- image_encoder
|-- config.json
|-- pytorch_model.bin
|-- sd-vae-ft-mse
|-- config.json
|-- diffusion_pytorch_model.bin
|-- diffusion_pytorch_model.safetensors
|-- stable-diffusion-v1-5
|-- feature_extractor
|-- プリプロセッサ設定.json
|- model_index.json
|-- unet
|-- config.json
|-- diffusion_pytorch_model.bin
|-- v1-inference.yaml
|-- wav2vec2-base-960h
|-- config.json
|-- feature_extractor_config.json
|-- プリプロセッサ設定.json
|- pytorch_model.bin
|-- README.md
|- special_tokens_map.json
|-- tokeniser_config.json
|-- vocab.json
|-- audio2mesh.pt
|-- audio2pose.pt
|-- denoising_unet.pth
|-- film_net_fp16.pt
|-- motion_module.pth
|-- pose_guider.pth
|-- reference_unet.pth
グラディオWeb UI
以下のコマンドでウェブデモをお試しください。またオンラインデモ.
python -m scripts.app
推論
なお、コマンド-L
生成されるフレームの所望の数に対して、例えば-L 300
.
加速方法ビデオの生成に時間がかかりすぎる場合はFILM_NET_FP16.PTに置かれた。./pretrained_weights
カタログ
以下は、推論スクリプトを実行するためのCLIコマンドです:
じしゅてき
python -m scripts.pose2vid --config ./configs/prompts/animation.yaml -W 512 -H 512 -acc
参照可能アニメーション.yaml
フォーマットを使用して、独自の参照画像またはポーズビデオを追加することができます。オリジナルのビデオをポーズビデオ(キーポイントシーケンス)に変換するには、次のコマンドを実行します:
python -m scripts.vid2pose --video_path pose_video_path.mp4
顔出し
python -m scripts.vid2vid --config ./configs/prompts/animation_facereenac.yaml -W 512 -H 512 -acc
あるアニメーション_facereenac.yaml
ソース顔ビデオとリファレンス画像を
オーディオドライバ
python -m scripts.audio2vid --config ./configs/prompts/animation_audio.yaml -W 512 -H 512 -acc
あるanimation_audio.yaml
音声と参考画像を削除するanimation_audio.yaml
正鵠を得るpose_temp
audio2poseモデルを有効にすることができます。また、このコマンドを使ってpose_temp.npy
::
python -m scripts.generate_ref_pose --ref_video ./configs/inference/head_pose_temp/pose_ref_video.mp4 --save_path ./configs/inference/head_pose_temp/pose.npy
電車
データ準備
ダウンロードブイエフエッチキュー歌で応えるセレブV-HQ.元映像からキーポイントを抽出し、トレーニングjsonファイルを書き出す(以下はVFHQの処理例):
python -m scripts.preprocess_dataset --input_dir VFHQ_PATH --output_dir SAVE_PATH --training_json JSON_PATH
トレーニングプロファイルの行を更新する:
データを返します。
json_path: JSON_PATH
ステージ1
コマンドを実行する:
accelerate launch train_stage_1.py --config ./configs/train/stage1.yaml
ステージ2
事前学習されたモーションモジュールの重み付けmm_sd_v15_v2.ckpt
(ダウンロードリンク)に置かれた。./pretrained_weights
ディレクトリにある。ディレクトリ内のstage2.yaml
コンフィギュレーション・ファイルは、例えばステージ1のトレーニングの重みを指定する:
stage1_ckpt_dir: './exp_output/stage1'.
stage1_ckpt_step: 30000
コマンドを実行する:
train_stage_2.py --config ./configs/train/stage2.yaml