はじめに
AniPortraitは、音声によってリアルな似顔絵アニメーションを生成する革新的なフレームワークです。Tencentゲーム・ノウ・ユアセルフ・ラボのHuawei、Zechun Yang、Zhisheng Wangによって開発されたAniPortraitは、音声と参照用の肖像画像から高品質なアニメーションを生成することができ、以下のようなことも可能です。顔の再現のためにビデオを提供する.高度な3D中間表現と2Dフェイシャルアニメーション技術を使用することで、このフレームワークは、映画やテレビの制作、バーチャルキャスターやデジタルピープルなど、さまざまな応用シーンで自然で滑らかなアニメーション効果を生成することができます。

デモアドレス:https://huggingface.co/spaces/ZJYang/AniPortrait_official
機能一覧
- オーディオ・ドリブン・アニメーション:オーディオ入力から対応するポートレート・アニメーションを生成します。
- ビデオ・ドリブン・アニメーション:顔の再生にビデオを提供し、リアルな顔のアニメーションを生成する。
- ハイクオリティなアニメーション生成:3D中間表現と2Dフェイシャルアニメーション技術を駆使し、ハイクオリティなアニメーションエフェクトを生成。
- ウェブUIデモ:ユーザーフレンドリーな体験のために、GradioウェブUIを通じてオンラインデモを提供します。
- モデルの訓練と推論:モデルの訓練と推論をサポートし、ユーザーは訓練と生成のためのデータをカスタマイズできる。
ヘルプの使用
取り付け
環境ビル
Pythonのバージョンは3.10以上、CUDAのバージョンは11.7以上を推奨。以下の手順で環境を構築する:
pip install -r requirements.txt
ダウンロード・ウェイト
すべてのウェイトファイルは./pretrained_weights
ディレクトリからダウンロードします。ウェイトファイルは以下のように手動でダウンロードする:
- 以下の部分を含む学習済みウェイトをダウンロードする:
denoising_unet.pth
そしてreference_unet.pth
そしてpose_guider.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
| | `-- preprocessor_config.json
| |-- model_index.json
| |-- unet
| | |-- config.json
| | `-- diffusion_pytorch_model.bin
| `-- v1-inference.yaml
|-- wav2vec2-base-960h
| |-- config.json
| |-- feature_extractor_config.json
| |-- preprocessor_config.json
| |-- pytorch_model.bin
| |-- README.md
| |-- special_tokens_map.json
| |-- tokenizer_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
参照可能animation.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
あるanimation_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
トレーニングプロファイルの行を更新する:
data:
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
コマンドを実行する:
accelerate launch train_stage_2.py --config ./configs/train/stage2.yaml