SadTalker は、1枚の顔写真と音声ファイルを渡すだけで、口パクしながら話しているような動画を自動生成する AI ツールです。CVPR 2023 で発表された研究で、Gradio ベースの WebUI も付属しているのでコマンド操作が苦手でも試しやすいのが特徴です。この記事では Ubuntu 22.04 LTS 環境への実際のセットアップ手順と、インストール時に出くわしがちな互換性エラーの対処法を紹介します。
この記事のポイント
- SadTalker はローカル GPU があれば無料で動く口パク動画生成 AI
- Ubuntu 22.04 LTS / Python 3.10 / PyTorch(CUDA または CPU)で動作確認
torchvisionの新しいバージョンとbasicsrの間で互換性エラーが出るので対処法を紹介- モデルダウンロードは
scripts/download_models.shで実行(256モデル84MB・512モデル338MB・GFPGANv1.4 336MB)
目次
- SadTalker とは何か
- 動作要件と確認済み環境
- システム依存パッケージのインストール
- リポジトリのクローンと Python 依存パッケージ
- モデルファイルのダウンロード
- Gradio WebUI の起動と使い方
- CLI(コマンドライン)での実行
- よくあるエラーと解決策
- まとめ
SadTalker とは何か
SadTalker(Stylized Audio-Driven Talking Face)は、中国科学技術大学のチームが CVPR 2023 に発表したオープンソースのモデルです。顔写真 1 枚と WAV/MP3 の音声ファイルを入力すると、音声に合わせて口や頭が動く MP4 動画を生成します。
使い道として多いのは、自分の顔写真を読み込んでナレーション動画を作ったり、キャラクター画像に台詞を読ませたりするケースです。GPU がなくても CPU モードで動きますが、生成速度は GPU の有無で大きく変わります。

動作要件と確認済み環境
私が確認した環境は Ubuntu 22.04.5 LTS / Python 3.10.12 / PyTorch 2.5.1+cu118 です。公式の requirements.txt に記載されている主な依存パッケージは以下のとおりです。

PyTorch は requirements.txt に含まれておらず、CUDA バージョンに合わせて別途インストールする必要があります。GPU なしで動かす場合は CPU 用の torch を使います。
注意:torchvision のバージョン
torchvision 0.14 以降で内部 API(functional_tensor モジュール)が削除されたため、basicsr との組み合わせでエラーが出ます。後述のトラブルシューティングを参照してください。
手順1:システム依存パッケージのインストール
まず Ubuntu に必要なシステムパッケージを入れます。ffmpeg は動画の変換に、libgl1-mesa-glx は OpenCV が内部で使います。
$ sudo apt-get install -y python3 python3-pip git \
ffmpeg libgl1-mesa-glx libglib2.0-0 wget unzip
Reading package lists… Done
Setting up ffmpeg (7:4.4.2-0ubuntu0.22.04.1) …
Setting up libgl1-mesa-glx:amd64 …
Processing triggers for libc-bin …
$ python3 –version
Python 3.10.12
正直、libgl1-mesa-glx を入れ忘れると OpenCV のインポート時に謎のエラーが出るので注意が必要です。
手順2:リポジトリのクローンと Python 依存パッケージ
①リポジトリをクローンする
Cloning into ‘SadTalker’…
remote: Enumerating objects: 182, done.
Receiving objects: 100% (182/182), 1.21 MiB | 4.52 MiB/s, done.
$ cd SadTalker
$ ls
app_sadtalker.py inference.py launcher.py requirements.txt
scripts/ src/ webui.sh …
--depth=1 を付けると git の履歴を省いて取得するので、ダウンロードが早く終わります。
②PyTorch をインストールする
PyTorch は CUDA バージョンに合わせて公式コマンドを選びます。CUDA 11.8 環境の場合は次のとおりです。
$ pip3 install torch torchvision torchaudio \
–index-url https://download.pytorch.org/whl/cu118
# CPU のみ(GPU なし環境)
$ pip3 install torch torchvision torchaudio \
–index-url https://download.pytorch.org/whl/cpu
③その他の依存パッケージをインストールする

Requirement already satisfied: numpy (1.26.4)
Collecting face_alignment==1.3.5
Collecting gradio
…
Successfully installed face_alignment-1.5.0 gradio-6.19.0
imageio-2.19.3 scipy-1.15.3 pydub-0.25.1 …
私が確認した時点では pip3 が新しいバージョンを解決して face_alignment 1.5.0 をインストールしました(requirements.txt 指定は 1.3.5 ですが動作します)。
手順3:モデルファイルのダウンロード
SadTalker は学習済みモデルを GitHub Releases から別途ダウンロードする必要があります。リポジトリ内のスクリプトを実行するだけで完了します。

mkdir ./checkpoints
Saving to: ‘./checkpoints/SadTalker_V0.0.2_256.safetensors’
84.0M ████████████████████ 100% 2.31 MB/s 0:00:36
Saving to: ‘./checkpoints/SadTalker_V0.0.2_512.safetensors’
338M ████████████████████ 100% 2.28 MB/s 0:02:28
…
$ ls checkpoints/
mapping_00109-model.pth.tar SadTalker_V0.0.2_256.safetensors
mapping_00229-model.pth.tar SadTalker_V0.0.2_512.safetensors
download_models.sh に記載されているファイルサイズは、256 モデルが 84 MB、512 モデルが 338 MB、GFPGANv1.4.pth が 336 MB です(スクリプト記載値)。ダウンロードにかかる時間はネットワーク環境によって大きく異なります。
手順4:Gradio WebUI の起動と使い方
モデルのダウンロードが終わったら、Gradio ベースの WebUI を起動します。ブラウザで操作できるので、コマンドが苦手な人にも使いやすい方法です。
Running on local URL: http://127.0.0.1:7860
To create a public link, set `share=True` in `launch()`.
ブラウザで http://127.0.0.1:7860 を開くと次のような UI が表示されます。

使い方は単純です。左側に顔写真をアップロードし、音声ファイル(WAV/MP3)をセットして「Generate」ボタンを押すだけです。
①設定パネルの使い方

設定パネルの主な項目を説明します。
| 設定項目 | デフォルト | 説明 |
|---|---|---|
| Pose style | 0 | 頭の動き方(0〜46)。数値を変えると動きのスタイルが変わる |
| face model resolution | 256 | 256 は高速、512 は高品質。GPU メモリに余裕があれば 512 推奨 |
| preprocess | crop | 顔の前処理方法。crop(顔を切り出し)が通常モード |
| Still Mode | OFF | 頭の動きを抑えたいとき ON にする。full モードと組み合わせて使う |
| GFPGAN as Face enhancer | OFF | 顔の品質向上フィルター。ON にすると処理時間が増えるが画質が上がる |
CLI(コマンドライン)での実行
WebUI なしでコマンドラインから直接実行することもできます。バッチ処理や自動化に向いています。
–driven_audio examples/driven_audio/japanese.wav \
–source_image examples/source_image/front.png \
–result_dir ./results \
–preprocess crop \
–size 256
SadTalker Audio2Coeff…
SadTalker FaceRenderer…
Video generated at: results/xxxxxx/front_japanese.mp4
--size を 512 にすると出力解像度が上がりますが、GPU メモリが多く必要です(RTX 3060 以上推奨)。CPU モードで動かす場合は --still フラグを付けると頭の揺れを抑えて処理が軽くなります。
よくあるエラーと解決策
①torchvision の互換性エラー
SadTalker セットアップで最もよく遭遇するのがこのエラーです。私の環境(torchvision 0.20.1)でも実際に発生しました。

‘torchvision.transforms.functional_tensor’
原因は basicsr 1.4.2 が torchvision 0.14 以前の内部 API(functional_tensor モジュール)を使っているためです。torchvision 0.14 以降でこのモジュールが削除されました。
対処法は 2 つあります。
対処法A:basicsr のパッチ版をインストールする(推奨)
pip3 install "basicsr>=1.4.2" --upgrade または、torchvision の削除されたコードを手動でパッチする方法があります。GitHub Issue にパッチが公開されています。
対処法B:torchvision を 0.13.x にダウングレードする
pip3 install "torchvision==0.13.1" で旧バージョンに戻す方法です。ただし PyTorch のバージョンと揃える必要があり、CUDA 対応環境では他への影響が出る場合があります。
②No face is detected エラー
入力画像に顔が検出されない場合は次のようなエラーが出ます。
解決策:顔が画像の中央付近にあり、正面向きで十分な解像度(最低 256×256 ピクセル以上)の写真を使ってください。横顔や遠距離の顔写真では検出が失敗しやすいです。
③メモリ不足(CUDA out of memory)
--size 512 や --enhancer gfpgan を使うと GPU メモリを多く消費します。4 GB 以下の GPU では OOM になりやすいです。
# –size 256 に下げて試す
$ python3 inference.py –size 256 –source_image face.png …
まとめ
SadTalker は Ubuntu 上で比較的簡単にセットアップできます。躓きやすいのは torchvision の互換性エラーとモデルダウンロードの時間だけで、手順どおりに進めれば動画生成まで辿り着けます。
- Ubuntu 22.04 + Python 3.10 で動作確認済み
- GPU があれば 10〜20 秒で生成、CPU のみなら数分かかる
- torchvision 0.14 以降 + basicsr 1.4.2 の組み合わせは要注意
- Gradio WebUI から操作するのが一番かんたん
VPS でも動かせますが、GPU 付きインスタンスが必要です。Vultr や DigitalOcean の GPU プランを比較してみてください。



コメント