あらゆるポートレートをアニメーションに:オープンソースAIアニメーター、LivePortrait登場!</blockquote>

LivePortrait

プロジェクト概要

LivePortraitは、効率的なポートレートアニメーションを実現するオープンソースのPyTorch実装です。静止画像(人物、猫、犬)から、ドライビングビデオやモーションテンプレートを使って、まるで生きているかのようにアニメーションを作成できます。詳細な結合・再ターゲティング制御が可能です。本プロジェクトは、快手科技、中国科学技術大学、復旦大学の研究者によって活発に更新・改善されています。

LivePortraitのデモGIF

利用方法

環境構築

  1. リポジトリのクローン:
    git clone https://github.com/KwaiVGI/LivePortrait
    cd LivePortrait
    
  2. Conda環境の作成と有効化:
    conda create -n LivePortrait python=3.10
    conda activate LivePortrait
    
  3. PyTorchのインストール(Linux/WindowsはCUDA対応版): まず、nvcc -VでCUDAのバージョンを確認し、それに対応するPyTorchバージョンをインストールしてください。
    • CUDA 11.8の場合:
      pip install torch==2.3.0 torchvision==0.18.0 torchaudio==2.3.0 --index-url https://download.pytorch.org/whl/cu118
      
    • CUDA 12.1の場合:
      pip install torch==2.3.0 torchvision==0.18.0 torchaudio==2.3.0 --index-url https://download.pytorch.org/whl/cu121
      
    • 他のCUDAバージョンの場合は、PyTorch公式サイトを参照してください。
    • Windowsユーザーへの注意: より新しいCUDAバージョンで問題が発生する場合、CUDAを11.8にダウングレードすると解決することがあります。
  4. 残りの依存関係をインストール:
    pip install -r requirements.txt
    
    • Apple Silicon搭載Macの場合:
      pip install -r requirements_macOS.txt
      
      (X-Poseへの依存はスキップされ、動物モードには対応していません)

事前学習済みモデルのダウンロード

  • HuggingFaceから(推奨):
    # !pip install -U "huggingface_hub[cli]"
    huggingface-cli download KwaiVGI/LivePortrait --local-dir pretrained_weights --exclude "*.git*" "README.md" "docs"
    
  • hf-mirrorを使用(HuggingFaceにアクセスできない場合):
    # !pip install -U "huggingface_hub[cli]"
    export HF_ENDPOINT=https://hf-mirror.com
    huggingface-cli download KwaiVGI/LivePortrait --local-dir pretrained_weights --exclude "*.git*" "README.md" "docs"
    
  • Google DriveまたはBaidu Yunからダウンロードし、./pretrained_weightsディレクトリに配置することもできます。

推論実行

人物モード

  • デフォルトの入力で実行:
    python inference.py
    
    (Apple Silicon搭載Macの場合、PYTORCH_ENABLE_MPS_FALLBACK=1 python inference.pyを使用)
  • ソース画像とドライビング入力を指定して実行:
    # ソースが画像の場合
    python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d0.mp4
    # ソースが動画の場合
    python inference.py -s assets/examples/source/s13.mp4 -d assets/examples/driving/d0.mp4
    

動物モード(Linux/WindowsでNVIDIA GPU搭載の場合のみ)

  1. MultiScaleDeformableAttention OPのビルド:
    cd src/utils/dependencies/XPose/models/UniPose/ops
    python setup.py build install
    cd -
    
  2. 推論の実行:
    python inference_animals.py -s assets/examples/source/s39.jpg -d assets/examples/driving/wink.pkl --driving_multiplier 1.75 --no_flag_stitching
    
    動物モードの推論例

ドライビング動画の自動クロップ

  • 自動クロップを有効にする:
    python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d13.mp4 --flag_crop_driving_video
    
    (より良い結果を得るには、--scale_crop_driving_videoまたは--vy_ratio_crop_driving_videoを調整してください。)

モーションテンプレートの作成

  • 自動生成された.pklファイルを使用すると、推論が高速化され、プライバシー保護にも役立ちます。
    python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d5.pkl # ポートレートアニメーション
    python inference.py -s assets/examples/source/s13.mp4 -d assets/examples/driving/d5.pkl # ポートレート動画の編集
    

Gradioインターフェース

  • 人物モード:
    # LinuxおよびWindowsの場合
    python app.py
    # Apple Silicon搭載Macの場合
    PYTORCH_ENABLE_MPS_FALLBACK=1 python app.py
    
  • 動物モード(LinuxでNVIDIA GPU搭載の場合のみ):
    python app_animals.py
    
  • 高速化: --flag_do_torch_compileを使用すると、2回目以降の推論が20〜30%高速化されます(Windows/macOSでは非対応)。
    python app.py --flag_do_torch_compile
    
  • HuggingFace Space上でオンラインデモも利用可能です。

主要機能

  • 効率的なポートレートアニメーション: 人物、猫、犬の静止画像をアニメーション化します。
  • 結合と再ターゲティング制御: アニメーションプロセスにおいて、きめ細やかな制御を提供します。
  • 多様なドライビング入力: 動画、画像、または事前に生成されたモーションテンプレート(.pklファイル)からのモーション駆動をサポートします。
  • 動画から動画への編集(v2v): 既存のポートレート動画の編集をサポートします。
  • Gradioインターフェース: 使いやすく、正確なポートレート編集が可能なウェブインターフェースを提供します。
  • 地域制御と画像駆動モード: 高度な制御オプションと多様な駆動方式を提供します。
  • ポーズ編集: Gradioインターフェース内で、ソースポートレートのポーズを編集できます。
  • 自動クロップ: ドライビング動画を自動で頭部に焦点を当てた1:1のアスペクト比にクロップします。
  • プライバシー保護: モーションテンプレートを使用することで、ドライビング動画の被写体のプライバシーを保護できます。
  • クロスプラットフォーム対応: Linux、Windows(NVIDIA GPU必須)、Apple Silicon搭載Macをサポートします。
  • 最適化されたパフォーマンス: torch.compileオプションにより、推論を高速化できます。

想定されるユーザー

  • 動画コンテンツクリエイター: 動画内でポートレートをアニメーション化したい方。
  • アニメーター: キャラクターの表情アニメーションを素早く生成したい方。
  • 研究者および開発者: ポートレートアニメーション、画像/動画生成、顔アニメーション分野でのさらなる開発の基盤として。
  • 一般的な愛好家: 自分の写真を生き生きとさせたい方や、AIアニメーションを試してみたい方。
  • 主要な動画プラットフォーム: 快手、抖音(TikTok)、剪映、微信チャンネルなどのプラットフォームで既に採用されています。

プロジェクトリンク

応用例

  • ソーシャルメディアコンテンツ: 静止画像から魅力的なアニメーションプロフィール画像や短い動画クリップを作成。
  • マーケティングと広告: 静止画像からアニメーションキャラクターや話すアバターを生成。
  • 映画とゲーム開発: 表情アニメーションのキャラクターを迅速にプロトタイピング。
  • バーチャルアバターとデジタルヒューマン: バーチャル会議やシミュレーション向けに静止アバターをアニメーション化。
  • 個人利用: 古い家族写真や大切なペットの写真を生き生きとさせる。

この記事を共有