1枚の画像からアニメーションを生成できるSadTalkerのインストール | ジコログ

1枚の画像からアニメーションを生成できるSadTalkerのインストール

1枚の画像からアニメーションを生成できるSadTalkerのインストール ツール

「音声と画像の合成アニメーションを生成したい」
「SadTalkerのGUIツールが欲しい」

このような場合には、この記事の内容が参考になります。
この記事では、SadTalkerのGUIツールをインストールする方法を解説しています。

本記事の内容

  • SadTalkerとは?
  • SadTalker GUIツールのシステム要件
  • SadTalker GUIツールのインストール
  • SadTalker GUIツールの動作確認

それでは、上記に沿って解説していきます。

SadTalkerとは?

SadTalkerとは、顔画像と音声からアニメーションを作成するAI技術です。
そのアニメーションは、次のような動画になります。

画像生成AIで生成した画像に話させる

これは、たった1枚の画像と音声ファイルから作成されています。
このような技術は、以前からもありました。

Wav2LipやMakeItTalkなどは、聞いたことがあるかもしれません。

それらと比較して、SadTalkerはワンランク上の次元です。
出来上がりのアニメーションが、他よりも自然になっています。

以下の比較動画を見れば、そのことがよくわかるでしょう。

SadTalkerと他技術の比較

「Ours」のSadTalkerは、自然で違和感を感じません。
他は大なり小なり不自然さを感じてしまいます。

SadTalkerについて、もっと知りたい場合は公式ページをご覧ください。

SadTalker: Learning Realistic 3D Motion Coefficients for Stylized Audio-Driven Single Image Talking Face Animation
SadTalker: Learning Realistic 3D Motion Coefficients for Stylized Audio-Driven Single Image Talking Face Animation

また、Hugging Face上でDemoが公開されています。

SadTalker - a Hugging Face Space by vinthony
Discover amazing ML apps made by the community

上記Demoで画像と音声をUPすれば、実際にアニメーションを作成できます。
ただし、サーバーが混んでいる可能性があります。

ここでは、このDemoをSadTalke GUIツールと呼びます。
これをローカル環境にインストールできれば、待たされることなく自由に利用できます。

以上、SadTalkerについて説明しました。
次は、SadTalker GUIツールのシステム要件を説明します。

SadTalker GUIツールのシステム要件

SadTalker GUIツールのシステム要件を説明します。
システム要件は、以下の2点です。

  • PyTorch
  • Gradio

PyTorchは、GPU版をインストールしましょう。
PyTorch 1系か2系かで迷うかもしれません。

公式は、1系で検証を行っています。

でも、2系でも問題ありません。
検証済みです。

また、GradioはGUIとして機能させるために必要なライブラリになります。

システム要件の段階では、PyTorchのインストールだけは済ませておきます。

以上、SadTalker GUIツールのシステム要件を説明しました。
次は、SadTalker GUIツールのインストールを説明します。

SadTalker GUIツールのインストール

SadTalker GUIツールのインストールは、Python仮想環境の利用をオススメします。
Python仮想環境は、次の記事で解説しています。

検証は、次のバージョンのPythonで行います。

> python -V  
Python 3.10.4

そして、システム要件であるGPU版PyTorchをインストール済という状況です。
このような状況において、次の手順でSadTalker GUIツールのインストールを進めます。

  • SadTalker GUIツールの取得(Hugging Faceから)
  • requirements.txtを使った一括インストール

それぞれを下記で説明します。

SadTalker GUIツールの取得(Hugging Faceから)

vinthony/SadTalker at main
We’re on a journey to advance and democratize artificial intelligence through open source and open science.

上記ページでファイルを確認できます。

これらをダウンロードするのに、huggingface_hubを利用します。

huggingface_hubを利用すると、自動的にファイルをダウンロードしてくれます。
huggingface_hubをインストールできたら、次のコードを実行します。

from huggingface_hub import snapshot_download

snapshot_download(
    repo_id="vinthony/SadTalker",
    repo_type="space",
    revision="main",
    cache_dir="./")

上記コードを実行すると、ダウンロード処理が開始されます。
ダウンロードは、すぐに終わります。

処理が完了すると、ディレクトリ上に「spaces–vinthony–SadTalker」を確認できます。

そして、「snapshots」以下にあるファイル・ディレクトリをコピーします。

「ed7bb0bf46ff0c3f197901a11ef1e1d9f408994a」は、リポジトリのバージョンです。
バージョンが更新されれば、この値も変わってきます。

この長たらしいディレクトリより下のモノをコピーしましょう。
コピーしたファイルは、コンテンツルートに保存します。

requirements.txtを使った一括インストール

コンテンツルートには、コピーしたrequirements.txtが存在しています。

requirements.txt

torch==1.13.1
torchvision==0.14.1
torchaudio==0.13.1
numpy==1.21.6
face_alignment==1.3.5
imageio==2.19.3
imageio-ffmpeg==0.4.7
librosa==0.8.0
numba
resampy==0.3.1
pydub==0.25.1 
scipy==1.5.3
kornia==0.6.8
tqdm
yacs==0.1.8
pyyaml  
joblib==1.1.0
scikit-image==0.19.3
basicsr==1.4.2
facexlib==0.2.5
dlib-bin
gfpgan
TTS==0.13.0

requirements.txtに次の修正を加えます。

  • PyTorch関連(torch、torchvision、torchaudio)を対象外にする
  • Gradio(gradio)を追加する
  • バージョン指定を外す

バージョン指定のままだと、おそらくインストール途中でエラーになるはずです。
このようなバージョン指定は、個人的にはよろしくないと考えています。

よほどのことがない限り、バージョン指定は止めた方が無難です。
これらの修正を実施した結果、requirements.txtは次のようになります。

#torch==1.13.1
#torchvision==0.14.1
#torchaudio==0.13.1
numpy
face_alignment
imageio
imageio-ffmpeg
librosa
numba
resampy
pydub
scipy
kornia
tqdm
yacs
pyyaml
joblib
scikit-image
basicsr
facexlib
dlib-bin
gfpgan
TTS
gradio

変更後のrequirements.txtを利用して、必要なモノを一気にインストールします。
実行するのは、次のコマンドです。

pip install -r requirements.txt

処理完了までは、そこそこ時間がかかります。
処理が完了したら、SadTalker GUIツールのインストールは終了です。

以上、SadTalker GUIツールのインストールを説明しました。
次は、SadTalker GUIツールの動作確認を説明します。

SadTalker GUIツールの動作確認

SadTalker GUIツールの動作確認を行います。
コンテンツルートに配置したapp.pyを実行すれば、SadTalker GUIツールを起動できます。

初回起動時は、ファイルのダウンロードが実施されます。
しばらく待つことになります。
処理が完了したら、コンソールに以下のように表示されます。

Running on local URL:  http://127.0.0.1:7860

To create a public link, set `share=True` in `launch()`.

Chromeなどのブラウザで「http://127.0.0.1:7860」にアクセスします。
Hugging Face上のデモと同じような画面を確認できます。

画像と音声が用意できるなら、それをアップロードしましょう。
とりあえず、動作を確認するならサンプルを利用します。

「japanese.wav」の行を選択します。
そうすると、画像や音声などが自動的に設定されます。

あとは、「Generate」ボタンを押すだけです。
処理が完了すると、顔部分で「crop」された動画が表示されます。

以上、SadTalker GUIツールの動作確認を説明しました。

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