今は一枚絵だけでVTuberになれるらしい (Talking Head Anime 4をWindowsに導入する)


はじめに

世はまさに、大VTuber時代。

こんにちは。かいまると申します。
普段は楽曲や歌ってみたの投稿をしています。
この記事では、一枚絵をAIでVTuberのように動かすことができるようにするTalking Head Anime 4というプログラムの導入と使い方について解説します。
現状日本語の文献が一切ないため、備忘録的な意味で残しておきます。
筆者はプログラミングに詳しくないです。間違えた情報があった場合でも責任は負いません。

Talking Head Anime 4とは?

Talking Head Anime 4は、一枚絵をAIの力で動かすことができるプログラムです。2022年にTalking Head Anime 3という前世代のプログラムが発表されたようですが、その改良版といえます。
しかし、3と大きく違う点は「モデル(イラスト)ごとに学習をさせる必要がある」というところです。ですが、その分画質と速度が向上しているということになっています。
近年のVTuberはLive2Dでモデリングをしている方が大多数だと思いますが、やはりLive2Dを操作するのは難易度が高いと思います。またモデリングを依頼するとしても、数万円〜数十万円という費用がかかることもあるでしょう。
しかし、このプログラムを用いれば立ち絵などの一枚絵だけで誰でもVTuberになれるということになります。

導入

説明はこの辺りにして、Talking Head Anime 4の導入について解説していきます。
まず、前提として以下の条件を満たす必要があります。

・あなたのパソコンにNVIDIAのGPUが搭載されている
このプログラムでは「CUDA」という技術を使用します。この技術はNVIDIAが開発しているため、NVIDIAのGPUでないと搭載されていません。
もしあなたのパソコンに搭載されているGPUが「GeForce」ならそれはNVIDIAのGPUなので動作する可能性が高いです。
もしあなたのパソコンに搭載されているGPUが「Radeon」ならそれはAMDのGPUなので動作しません。どうやらRadeonでも似たような技術が使えるような話もありますが、この記事を読んでいる方はそこまで詳しくないと思うので、大人しくNVIDIAのGPUを買った方がいいです。筆者には無理なのでこの機会にRadeon RX570からGeForce RTX 4060 Tiに買い替えました。

プログラムのReadmeには「GeForce RTX 2080以降であれば問題ありません」との記載がありますが、私が所持しているGTX 1060でも動作したため、そこまで古くないGPUなら動作すると思います。(速度は遅いと思います)

・WebカメラもしくはiPhone X以降の機種を持っている
これはそこまで難しくないでしょう。後ほど解説しますが、このプログラムには「Webカメラで動かすモード」と「iPhoneのTrueDepthで動かすモード」があります。
前者の場合はWebカメラだけですが、後者の場合はiPhone X以降の機種と「iFacialMocap」というアプリが必要になるようです。

1. CUDA-Toolkitをインストールする

上のリンクからCUDA-Toolkitをダウンロード、インストールしてください。
CUDA-ToolkitはCUDAを使用するために必要なソフトウェアです。
これの導入はネットに記事がいくつかあると思うので適宜参考にしてください。
普通に導入した場合は最新のバージョンをダウンロードすることになると思いますが、今回は上記で示したCUDA-Toolkit 11.8を導入するようにしてください。
どうやらCUDAはメジャーバージョンごとに仕様がかなり違うようで、後ほど導入するプログラムはCUDAバージョンが11.7となっています。そのため、メジャーバージョンが同じ11.8を導入しています。

2. Pythonを導入する

Pythonを導入します。
もう既に導入している方もいらっしゃるかもしれませんが、このプログラムではPython 3.10.11を導入しなければいけないためバージョンに注意してください。

この記事ではReadmeにあるように、「pyenv-win」というプログラムの上にPythonを導入します。
pyenv-winのQuick startの通りに導入を進めてください…と言いたいところですが、よく分からないと思うので手順をコードと一緒に記述します。
まず、以下のコードをWindows PowerShellに入力し実行してください。

Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1"

完了し、また文字が入力できる状態になったら、一旦PowerShellを終了してまた起動してください。
そして以下のコードを実行してください。

pyenv --version

なんかそれっぽいpyenv-winのバージョンが表示されたらOKです。
次に、Python 3.10.11を導入するために以下のコードを実行してください。

pyenv install 3.10.11

次に、以下のコードを実行してください。
どのバージョンのPythonをデフォルトで使用するかの設定です。

pyenv global 3.10.11

完了したら以下のコードを実行し、Python 3.10.11が動いているかを確認します。

pyenv version

「3.10.11」から始まる文字列が表示されたら大丈夫だと思います。
最後に以下のコードを実行し、正常に動くか確認しましょう。

python
1 + 1

計算結果が表示されたらPython本体の導入は完了です。
次に、Pythonに「ライブラリ」というツールみたいなものをインストールするために、「pip」というプログラムを導入する必要があります。
以下のサイトを開き右クリック、「名前をつけて保存」で「get-pip.py」という名前で保存してください。場所はどこでも構わないと思いますが、今回は先ほど導入したpyenvのフォルダに保存しておきましょう。
Cドライブ>ユーザー>ユーザー名>.pyenv です。

https://bootstrap.pypa.io/get-pip.py

そしてこのファイルをPythonで実行すればpipの導入ができるのですが、その前に先ほど導入したPythonのパスを「環境変数」に登録する必要があります。
検索窓に「環境変数」と入力し検索、右下の「環境変数」>システム環境変数の中の「Path」をダブルクリック>「新規」をクリックし、Pythonのパスを入力してください。
手順通りならCドライブ>ユーザー>ユーザー名>.pyenv>pyenv-win>versions>3.10.11>python.exe になると思いますが、そのpython.exeを右クリックしてコピーしたパスをペーストしてください。その際ダブルクオーテーションは消去してください。
再びPowerShellを起動し、以下のコードを実行してください。

cd.pyenvフォルダのパス”
python get-pip.py

完了し、また文字が入力できる状態になったら、一旦PowerShellを終了してまた起動してください。
そして以下のコードを実行してください。

pip --version

なんかそれっぽいpipのバージョンが表示されたらOKです。
最後にpipのパスを「環境変数」に登録します。
先ほどと同様に検索窓に「環境変数」と入力し検索、右下の「環境変数」>システム環境変数の中の「Path」をダブルクリック>「新規」をクリックし、pipのパスを入力してください。
手順通りならCドライブ>ユーザー>ユーザー名>.pyenv>pyenv-win>versions>3.10.11>pip.exe になると思いますが、そのpip.exeを右クリックしてコピーしたパスをペーストしてください。ダブルクオーテーションは消去してください。
これでPythonの導入は完了です。

3. Poetryを導入する

Poetryというプログラムを導入します。
Poetryとは、一気にライブラリをインストールできるプログラムだと筆者は認識しています。
ですが、今回の記事では意味があるのかは分かりません。でも一応やっておきましょう。
Poetryを導入するためには、pipxというライブラリをインストールする必要があるようです。pipとは違うみたいです。
まず、Windows PowerShellで以下のコードを実行してください。

python -m pip install --user pipx

完了し、また文字が入力できる状態になったら、一旦PowerShellを終了してまた起動してください。
そして以下のコードを実行してください。Poetryを導入します。

pipx install poetry

完了し、また文字が入力できる状態になったら、一旦PowerShellを終了してまた起動してください。
そして以下のコードを実行し、Poetryが正常に導入されているか確認します。

poetry --version

バージョンが表示されたら導入が完了しています。

4. リポジトリのクローンを作成する

突然「リポジトリ」という言葉が登場しましたが、これはTalking Head Anime 4のデータのことだと思っておいてください。
Talking Head Anime 4のデータを自分のパソコンにクローン(コピー)します。
そのためには「git clone」というコマンドを使う必要があるのですが、それには「Git for Windows」というソフトが必要です。
以下のサイトからダウンロード、インストールしてください。

インストールが完了したらソフトを実行します。
黒い画面が表示されるかと思いますが、上部には「c/Users/ユーザー名」が表示されているはずです。
Talking Head Anime 4をどこに保存するかは自由で構わないですが、今回はCドライブ直下に保存します。
以下のコマンドを実行してください。

cd c:

上部の表示が「c/」に変わったはずです。
では、Talking Head Anime 4をクローンします。
以下のコマンドを実行してください。

git clone https://github.com/pkhungurn/talking-head-anime-4-demo.git

完了し、また文字が入力できる状態になったら、Git for Windowsを終了して大丈夫です。

5. ライブラリをインストールする

Talking Head Anime 4で必要なライブラリを導入します。
まず、Windows PowerShellを起動してください。
次に、以下のコードを実行してください。
先ほどクローンしたTalking Head Anime 4のフォルダに移動します。

cd C:\talking-head-anime-4-demo

次に、Pythonを使用してこのフォルダの中に「venv」という名前の仮想環境を構築します。
以下のコードを実行してください。

python -m venv venv --prompt talking-head-anime-4-demo

次に、いま構築した仮想環境を起動する必要があります。
この部分はあまり筆者が理解していないためご了承ください。
Readmeには「私が提供したスクリプトを使用することもできます」との記述がありますが、筆者の場合うまく動作しなかったためもう一つの方法で行います。
以下のコードを実行してください。

venv\Scripts\activate

すると、先頭に (talking-head-anime-4-demo) と色付きで表示されると思います。
この状態になったことを確認してから次に進んでください。
以下のコードを実行してください。

cd poetry
poetry install

これで普通は問題ないはずなのですが、筆者の場合うまく動作しなかったため別の方法でライブラリをインストールしました。
Readmeには「自分でインストールするのではなく」との記載がありますが、動かないものはしょうがないですね。
「Python and Python Libraries」に挙げられたライブラリが必要なので、手動でインストールしていきます。
まずは「torch 1.13.1 with CUDA support」をインストールします。
先ほど同様、先頭に (talking-head-anime-4-demo) と色付きで表示されていることを確認して、以下のコードを実行してください。

pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu117

完了し、また文字が入力できる状態になったら、次のライブラリをインストールしていきます。
以下のコードを実行してください。

pip install tensorboard==2.15.1

完了し、また文字が入力できる状態になったら、また次のライブラリをインストールしていきます。
以下のコードを、ライブラリ名とバージョンはそれぞれ置き換えて実行してください。
ライブラリ「mediapipe」は挙げられているバージョンがインストールできないため、0.10.5をインストールしてください。

pip install <ライブラリ名>==<バージョン>

全て完了したら、以下のコードを実行し、必要な全てのライブラリがインストールされているか確認してください。

pip list

全てインストールされていたら完了です。

6. モデルとデータセットファイルを導入する

これはあまり難しくないと思います。
Readmeの「Download the Models/Dataset Files」の項の指示に従って、フォルダの位置関係が正しくなるように導入してください。

お疲れ様でした。これでTalking Head Anime 4の導入は全て完了です!

使い方

権利表記

このTalking Head Anime 4はMITライセンスで提供されています。
そのため、利用時は以下の記述をしてください。
プログラムの再配布などの時にのみ表示すればいいという説もあるようですが、利用時でも表示しておいたほうが安心だと思います。

Copyright (c) 2024 pixiv Inc.
Released under the MIT License
https://github.com/pkhungurn/talking-head-anime-4-demo/blob/main/LICENSE

準備

・Readmeの記載通り、以下の制限でキャラクターの画像を作成してください。

モデル画像の制限

・Readmeの記載通り、キャラクターの目と口を覆う白黒のマスク画像を作成してください。
筆者としては、制限通りのキャラクター画像の場合はほとんど目と口の位置が一緒な気がするので、そのまま使っても問題ないのでは?と思ったりします。

白黒マスク画像

実行

このTalking Head Anime 4は、以下のプログラムを実行することができます。
・full_manual_poser.py(決められたモデルを手動で動かすことができる。)
・distill.py(学習を構成ファイルで設定、実行できる。)
・distiller_ui.py(学習をGUIで設定、実行できる。)
・character_model_manual_poser.py(学習したモデルを手動で動かすことができる。)
・character_model_ifacialmocap_puppeteer.py(学習したモデルをiOSのiFacialMocapで動かすことができる。)
・character_model_mediapipe_puppeteer.py(学習したモデルをWebカメラで動かすことができる。)

実行方法は以下の通りです。

  1. Windows PowerShellを起動する。

  2. cd C:\talking-head-anime-4-demo と入力し実行。

  3. bin\run.bat src\tha4\app\<program-file-name> と入力し実行。<program-file-name>部分は上記の実行したいプログラム名に変更してください。

実行したあとの設定等は各自でがんばってください。
ここまでできたあなたはすごい!

詰まりそうな点

・プログラム自体を実行することはできたが、学習を始めようとするとエラー「FileNotFoundError: [Errno 2] No such file or directory: './face_morpher/checkpoint/0010/module_module.pt'」が表示される
→「C:\talking-head-anime-4-demo\venv\Scripts」の場所に「torchrun.exe」というプログラムが存在しないことが原因です。
ライブラリ「torch」のインストールをやり直してください。(筆者はこれに数時間詰まりました)
・Readmeの「Running the Programs」の項に挙げられているプログラム名にスペルミスがあるのでうまく実行されない
→スペルには気を付けて実行するようにしてください。
・学習をする際の時間が長すぎる
→学習にかかるステップ数はfaceが100万ステップ、bodyが150万ステップです。かかる時間が長い場合はそれぞれの「morpher_batch_size」の値を減らしてください。ですがプログラムの推奨は8のため、減らしすぎると品質に影響が出ると思うので注意してください。faceは比較的速く終わるのと、顔の動きは重要だと思うので8のままがいいと思います。
筆者の場合、faceの値は8で約5分 / 1万ステップ(=約8時間 / 100万ステップ)、bodyの値は4で約120分 / 1万ステップ(=約300時間 / 150万ステップ)だったため5万ステップから1に変更したところ約40分 / 1万ステップ(=約100時間 / 150万ステップ)でした。
個人的には、学習をするという段階を踏んでいるのでどれだけ値を減らしたとしてもTalking Head Anime 3よりは品質が良いのでは?と信じる心でいます。
・一時停止(Windows PowerShellを終了)をしたら学習が最初からになった
→どうやらこのプログラムは1万ステップごとにセーブがされているようです。
なので一時停止をしたい際は1万ステップごとのキリのいいところでPowerShellを終了するようにしてください。

おわりに

ここまでご覧いただきありがとうございました。
今回、筆者はこのプログラムが正常に動作するまでに約12時間を費やしたため、他の人にはもう少し簡単に導入してもらいたいと思いこの記事を書きました。
先も述べた通りプログラミングにはあまり詳しくないため、有識者の方々のご意見もお待ちしております。
何かありましたらかいまるのTwitterまでよろしくお願いいたします。

君も、VTuberに変身してみないか?

かいまる

編集履歴

2025.02.04 初版

いいなと思ったら応援しよう!