Wan2GPで動画を生成してみた:画像1枚から動画をつくる(I2V)on Paperspace Gradient

近年、テキストから画像を生成するAIは一般化し、次はいよいよ画像から動画を生成する時代がやってきています。本記事では、動画生成で注目されている「Wan2.1」を使ってみた際のセットアップ手順と実行例を紹介します。

なお,Paperspace GradientのA6000では、T2VはWan2.1を問題なく実行できるのですが、I2Vを実施する場合にWan2.1では動画生成ができなかった(恐らくVRAM不足)ので、量子化されて軽量なWan2GP https://github.com/deepbeepmeep/Wan2GP/を使っています。

対象とする画像はChatGPTで生成した、こいつです。

環境チェックと準備

まず、GPU環境やCUDAのバージョンを確認します。

!nvidia-smi
!nvcc -V
!pip list

ここでCUDAのバージョンやドライバの状態を確認し、Wan2GPが必要とする環境に整っているかをチェックします。

ちなみに使用しているGPUはA6000 (VRAM 48GB)です。

CUDAのバージョン設定(12.4)

Wan2.1はCUDA 12.4に対応しているため、古いCUDA環境がある場合は削除し、必要なバージョンをインストールします。

!sudo apt-get --purge remove "cuda" -y
!wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
!sudo dpkg -y -i cuda-keyring_1.1-1_all.deb
!sudo apt-get update
!sudo apt-get -y install cuda-toolkit-12-4

インストールが終わったらカーネルをリスタートします.

必要ライブラリのインストール

Wan2GPに必要なPyTorchやその他ライブラリをまとめてインストールします。

!pip install torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0 --index-url https://download.pytorch.org/whl/cu124
!pip install opencv-python==4.9.0.80 transformers==4.49.0 tokenizers==0.21.0 accelerate==1.1.1
!pip install tqdm imageio easydict ftfy dashscope imageio-ffmpeg
!pip install gradio==5.23.3 numpy==1.23.5
!pip install einops
!pip uninstall diffusers -y
!pip install git+https://github.com/huggingface/diffusers.git

Flash Attentionのインストール

高効率なAttention演算を可能にするため、FlashAttentionをインストールします。

!wget https://github.com/Dao-AILab/flash-attention/releases/download/v2.7.4.post1/flash_attn-2.7.4.post1+cu12torch2.6cxx11abiFALSE-cp311-cp311-linux_x86_64.whl
!pip install --no-dependencies --upgrade flash_attn-2.7.4.post1+cu12torch2.6cxx11abiFALSE-cp311-cp311-linux_x86_64.whl


Wan2GPのインストールと起動

まずはリポジトリをクローンします。

%cd /notebooks/
!git clone https://github.com/deepbeepmeep/Wan2GP.git

次に、必要なライブラリをインストールします。トライアンドエラーで探り当てたパッケージもあるので、なぜこれらが必要だったのかは不明です。

!pip install moviepy==1.0.3 mmgp==3.3.4 peft==0.14.0 mutagen pydantic==2.10.6

また、bitsandbytes をGitHubからインストールすることで、軽量な量子化されたモデルが動作可能になります。

!pip uninstall --yes bitsandbytes 
!git clone https://github.com/TimDettmers/bitsandbytes.git
%cd bitsandbytes
!CUDA_VERSION=124 python setup.py install

WebUIの起動(Gradioサーバー)

Wan2GPでは、GradioベースのWebUIを使って、手軽に画像やテキストから動画を生成できます。

%cd /notebooks/Wan2GP
!python gradio_server.py --i2v --share

--i2vオプションをつけることで「Image-to-Video」モードになります。--shareをつけることで、外部公開用リンク(Gradioの外部接続)も自動生成されます。

実行すると以下のGUIへのリンクが生成されるので,あとは画像をアップロードしてプロンプトやネガティブプロンプト(Advanced Mode内にある)を入力し、Generateすると動画が生成される。

容量削減のために学習済みモデルを消す

Wan2GPはデフォルトではgithubのリポジトリをコピーしたディレクトリ内にckptsディレクトリを生成し、そこに学習済みデータを格納している。このデータは30GB程度あり、PaperspaceのVolumeを圧迫するため、実行が終わったら消しておく。

# ダウンロードした学習済みモデルを消す
%rm -r /notebooks/Wan2GP/ckpts
# 消した後にゴミ箱に格納されている。それも消すとStorageから完全に消える。
%rm -r .Trash-0

実行結果の例(出力動画)

生成した動画は以下。プロンプトは「尻尾を振りながらお手をする」みたいな感じ。
なんか目が変化したけど、概ねキャラの一貫性はある。

ちなみに流行りの人形が動くやつは以下みたい感じになった。画像は適当に拾ってきたやつをベースにしている(出典を参照ください)。

出典:RPG-01SP サキュバス ラスティア フェーズ・ツー 1/12 完成品アクションフィギュア[蝸之殼Snail Shell]《08月予約》 : あみあみ Yahoo!店 – 通販 – Yahoo!ショッピング
出典:<画像1/3>『スパイファミリー』おめかししたアーニャとヨルがかわいい! 新作フィギュアは親子揃えたくなるドレス姿 – 電撃オンライン
出典:TENITOL アルス・アルマル – フィギュア通販はFURYU HOBBY MALL

画質が粗いのは解像度は480Pで実施しているせいだが(720PはA6000では動かないと思う)、なんか動きがぎこちない。Githubの説明で、アップコンバーターやフレーム補間を推奨していた気がするから、後処理をする必要があるかも。

しかし、Twitterで見る動画はもっとキレイだが、Klingとかで作っているのだろうか。それとも私のパラメータ調整が足りないだけなのか。


まとめと今後の展望

Wan2GPは画像1枚から動画を作り出すことができる強力なフレームワークで、自然な動きを自動生成することができます。
今後は以下のような方向での活用が期待できます:

  • キャラクターPVの自動生成
  • 動画広告素材の短期生成
  • ゲーム用NPCモーションの自動化

なお、この記事はソースコードに基づき生成AIを用いて生成した記事を修正することで作成しています。

コメント

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