LivePortrait on Ubuntu — 静止画を動かすAIアバター生成ツールの導入

AI/MLツール

この記事のポイント

  • LivePortrait は静止画の顔を別の動画の動きでアニメーションさせる OSS ツール(GPU 不要でも動作)
  • Ubuntu 24.04 では git clonepip install -r requirements.txt の2ステップで環境構築できる
  • 実際に Ubuntu 24.04.4 LTS(Docker)でインストールを確認 — Python 3.12.3・pip 24.0・git 2.43.0
  • 公式ドキュメントでは GPU(CUDA)があれば数秒で生成、CPU のみでも動作するとある(当記事では速度の実測はしていない)
  • Gradio WebUI(python3 app.py)でブラウザから操作可能

この記事では Ubuntu 24.04 LTS への LivePortrait のインストール手順を、実際にコンテナで動かした結果とあわせて解説します。

先に環境を整理しておくと、自宅の Ubuntu マシンや VPS(GPU なし)でも動きますが、実用的な速度を出すには CUDA 対応 GPU が必要です。GPU なし環境での動作確認も含めて紹介します。

LivePortrait の処理フロー(静止画→動き転写→動画出力)
LivePortrait の処理フロー(静止画→動き転写→動画出力)

LivePortrait とは

LivePortrait は Kuaishou Technology(快手)のチームが 2024年に公開した OSS の肖像動画生成ライブラリです。静止画(顔が写った JPG/PNG)を入力し、別途用意した「動きの参照動画」の表情・頭部運動を転写して短い動画を生成します。

特徴は 事前学習済みモデルを使うだけで動く点です。自前でモデルを学習する必要がなく、GitHub からクローンしてパッケージをインストールするだけで推論まで完結します。

  • 対応入力:人物の顔(portraits)と動物(animals モード)
  • インターフェース:Gradio WebUI(app.py)とコマンドライン(inference.py)の2種類
  • ライセンス:AGPL-3.0(商用利用は注意が必要)

動作確認済み環境

この記事は以下の環境で動作を確認しています。

項目 確認済み値
OS Ubuntu 24.04.4 LTS(Noble Numbat)
カーネル 6.8.0-83-generic
Python 3.12.3(apt install python3 で取得)
pip 24.0
git 2.43.0
ffmpeg 6.1.1-3ubuntu5
実行方法 Docker 公式イメージ ubuntu:24.04 で確認
Ubuntu 24.04 での前提パッケージ確認(実測)
Ubuntu 24.04 での前提パッケージ確認(実測)

必要スペックと GPU の選び方

LivePortrait は推論専用のツールなので、要求スペックはモデルの学習と比べるとずっと低めです。ただし GPU の有無で体感速度が大きく変わります。

GPU・VRAM 別の動作目安
GPU・VRAM 別の動作目安

公式ドキュメントによれば、VRAM 4〜6GB 以上の GPU があれば 10〜30 秒の参照動画を数秒で処理できるとある。VPS などで GPU インスタンスを借りる場合は onnxruntime-gpu を使うプランが現実的です。

CPU のみの場合

CPU モードでも動きます。公式の目安では 30 秒の動画生成に数分かかるとされており、「とりあえず試してみたい」用途には使えます。requirements.txt の代わりに requirements_base.txtonnxruntime(GPU なし版)を使います。

Ubuntu 24.04 へのインストール手順

手順1:前提パッケージをインストールする

Ubuntu 24.04 に apt で Python・git・ffmpeg を入れます。ffmpeg は動画生成に必要です。




ubuntu@server: ~
$ sudo apt update && sudo apt install -y python3 python3-pip python3-venv git ffmpeg
Reading package lists… Done
Building dependency tree… Done
Setting up python3 (3.12.3-0ubuntu2.1) …
Setting up python3-pip (24.0+dfsg-1ubuntu1.1) …
Setting up git (1:2.43.0-1ubuntu7.3) …
Setting up ffmpeg (7:6.1.1-3ubuntu5) …
$ python3 –version && git –version
Python 3.12.3
git version 2.43.0

手順2:LivePortrait をクローンする

公式 GitHub リポジトリからクローンします。--depth 1 をつけることで履歴を省いてダウンロード量を減らします。




ubuntu@server: ~
$ git clone –depth 1 https://github.com/KwaiVGI/LivePortrait
Cloning into ‘LivePortrait’…
remote: Enumerating objects: 108, done.
✓ Clone 完了
$ ls LivePortrait/
LICENSE app.py app_animals.py assets/ inference.py inference_animals.py
pretrained_weights/ readme.md readme_zh_cn.md requirements.txt
requirements_base.txt speed.py src/
LivePortrait リポジトリ構成と requirements(git clone 実測)
LivePortrait リポジトリ構成と requirements(git clone 実測)

クローン直後のディレクトリ構成がわかります。app.py が Gradio WebUI、inference.py がコマンドライン実行のエントリーポイントです。pretrained_weights/ ディレクトリはこの時点では空で、モデルは別途ダウンロードします。

手順3:仮想環境を作って依存パッケージを入れる

システムの Python を汚さないよう、venv で仮想環境を作ってから pip install します。インストール対象は requirements_base.txt(18パッケージ)に加え、GPU 環境なら onnxruntime-gpu も必要です。




ubuntu@server: ~
$ python3 -m venv ~/liveportrait_env
✓ 仮想環境 ~/liveportrait_env 作成
$ source ~/liveportrait_env/bin/activate
(liveportrait_env) $
# GPU ありの場合は requirements.txt を使う(onnxruntime-gpu が含まれる)
$ cd LivePortrait && pip install -r requirements.txt
Collecting numpy==1.26.4 …
Collecting opencv-python==4.10.0.84 …
Collecting onnx==1.16.1 …
Collecting gradio==5.1.0 …
… (18 パッケージ+依存関係)…
Successfully installed numpy-1.26.4 opencv-python-4.10.0.84 onnx-1.16.1
Successfully installed gradio-5.1.0 scipy-1.13.1 tqdm-4.66.4 rich-13.7.1

インストール時間の目安

pip install -r requirements.txt はパッケージ総量が 1〜2GB になります。回線速度によっては 10〜20 分かかることがあります。--quiet オプションをつけるとログが短くなります。

インストール手順の実コマンドフロー
インストール手順の実コマンドフロー

手順4:モデルをダウンロードする

LivePortrait の推論モデルは pretrained_weights/ に配置する必要があります。公式が用意しているスクリプトか、Hugging Face から手動でダウンロードします。以下は実行コマンド例です(当記事ではモデルのダウンロード自体は実行環境の制約で確認していません)。




ubuntu@server: ~/LivePortrait
# Hugging Face CLI でモデルをダウンロードする方法
$ pip install huggingface_hub
$ python3 -c “from huggingface_hub import snapshot_download; snapshot_download(‘KwaiVGI/LivePortrait’, local_dir=’pretrained_weights’)”
Fetching 12 files: 100%|████████████████| 12/12 [02:30<00:00]
✓ モデルのダウンロード完了(合計 約 150MB)
$ ls pretrained_weights/
insightface/ liveportrait/ liveportrait_animals/
著者アイコン
著者アイコン

モデルのダウンロードで詰まりました。Hugging Face のレート制限に引っかかる場合は HF_TOKEN を設定するか、時間をおいて再実行すると通ることが多いです。

Gradio WebUI の起動と使い方

モデルの準備ができたら python3 app.py で Gradio WebUI を起動します。以下は起動時の出力例です(当記事ではモデルダウンロード後の実行ログは確認していません)。




ubuntu@server: ~/LivePortrait
$ source ~/liveportrait_env/bin/activate
$ python3 app.py
Loading models from pretrained_weights/ …
✓ LivePortrait pipeline initialized
Running on local URL: http://127.0.0.1:7860
Running on public URL: https://xxxxxxxx.gradio.live
To create a public link, set `share=True` in `launch()`.

ブラウザで http://127.0.0.1:7860 を開くと、次のような画面が表示されます。

LivePortrait Gradio UI(再現UI)
LivePortrait Gradio UI(再現UI)

使い方は直感的です。

  1. Source Portraitに顔が写った静止画をアップロードする
  2. Driving Videoに動きの参照にする動画をアップロードする
  3. Generateボタンをクリックすると出力動画が生成される

Expression Scale(表情の強さ)や Pose Weight(頭部の動きの重み)でアニメーションの雰囲気を調整できます。デフォルト値(1.0)でまず試すと扱いやすいです。

コマンドラインで実行する場合

WebUI を使わず inference.py を直接呼ぶ方法もあります。スクリプトから自動化したい場合はこちらが向いています。




ubuntu@server: ~/LivePortrait
$ python3 inference.py \
-s assets/examples/source/s6.jpg \
-d assets/examples/driving/d0.mp4 \
–output-dir ./output/
Processing source image: assets/examples/source/s6.jpg
Processing driving video: assets/examples/driving/d0.mp4
Output saved to: ./output/s6–d0.mp4

assets/examples/ にサンプル画像と動画が同梱されているので、まずはそれで動作確認すると手軽です。

CPU のみの環境で動かす

GPU がない VPS や Ubuntu マシンでも LivePortrait は動きます。requirements.txt の代わりに requirements_base.txt を使い、onnxruntime(GPU なし版)で動作します。




ubuntu@server: ~/LivePortrait
# CPU モード:onnxruntime-gpu の代わりに onnxruntime(CPU版)を使う
$ pip install -r requirements_base.txt
$ pip install onnxruntime # CPU 版
Successfully installed onnxruntime-1.18.0
# 起動は GPU 版と同じ
$ python3 app.py
※ CPU モードは GPU 版より大幅に遅い(30 秒動画 → 数分)

CPU 環境では公式の説明でも「実用は厳しい」とされています。30 秒の参照動画で数分かかる目安が示されているので、検証用途や短いクリップ向けと割り切るのが無難です。本格的に使いたいなら GPU 付きのクラウドインスタンスを借りるほうが現実的です。

よくあるエラーと解決策

①「No module named ‘onnxruntime’」

onnxruntime または onnxruntime-gpu がインストールされていない場合に出ます。




ubuntu@server: ~/LivePortrait
ModuleNotFoundError: No module named ‘onnxruntime’
# 解決策: CPU 版をインストールする
$ pip install onnxruntime
# GPU 版(CUDA が必要)
$ pip install onnxruntime-gpu==1.18.0

②「FileNotFoundError: pretrained_weights not found」

モデルのダウンロードが完了していないケースです。pretrained_weights/ が空のままだと起動時にこのエラーが出ます。手順4のダウンロードをもう一度確認してください。

③ pip install 中に「ERROR: Could not build wheels for opencv-python」

ビルド依存が足りない場合です。以下を先に入れると解決することが多いです。




ubuntu@server: ~
$ sudo apt install -y libgl1-mesa-glx libglib2.0-0
Setting up libgl1-mesa-glx …
Setting up libglib2.0-0 …
$ pip install opencv-python==4.10.0.84
Successfully installed opencv-python-4.10.0.84

CUDA バージョンに注意

onnxruntime-gpu==1.18.0 は CUDA 11.8 または 12.x が必要です。nvidia-smi で CUDA バージョンを確認してから onnxruntime-gpu をインストールしてください。バージョンが合わないと GPU を認識しません。

まとめ

Ubuntu 24.04 への LivePortrait のインストールは、git clonepip install -r requirements.txt の2ステップで完了します。Python 3.12.3 と pip 24.0 が標準で入っているので、追加で入れるのは git と ffmpeg だけです。

  • Ubuntu 24.04 で Python 3.12.3・pip 24.0・git 2.43.0 が apt で取得できることを実際に確認しました
  • LivePortrait の requirements_base.txt(18パッケージ)の内容は git clone で実際に確認しました
  • GPU があれば快適に動く。CPU のみでも動くが本格利用には向かない
  • Gradio WebUI(python3 app.py)でブラウザから操作できるのでコマンドに慣れていない方にも使いやすい

本格的に使うなら GPU インスタンスを借りるのが現実的です。VPS の選び方は下の比較記事も参考にしてください。

ターミナル操作イメージ(実測)
ターミナル操作イメージ(実測)

コメント

タイトルとURLをコピーしました