アニメーションを生成できるAnimateDiffをインストール
AnimateDiffとは?
AnimateDiffとは、1枚の画像から一貫性のあるアニメーションを生成できるプログラム、今までのアニメ生成と異なり、かなり元絵を保ったままの生成が可能です。当初必要なVRAMが60GB必要ということで話題になっていましたが、改善が重ねられ、現状はVRAMが12GBでも動作するようになっています。
現状は公式版とinit画像を設定できるfork版がありますが、fork版も紹介します。
AnimateDiffのダウンロード
まずは、AnimateDiffをインストールするディレクトリを作成。日本語が混ざると予期せぬエラーを引き起こすため今回はCドライブ直下にAnimateDiffフォルダを生成してインストールします。
公式版
git clone https://github.com/guoyww/AnimateDiff.git
fork版(init画像対応版)
git clone https://github.com/talesofai/AnimateDiff.git
どちらでも以後のインストール方法は変わりません。
AnimateDiffのダウンロード
基本ファイルをダウンロードしたら、該当ディレクトリに移動してコマンドプロンプトを開きます、まずは権限の許可を実行します。この処理は権限が常に許可されている場合は必要ありません。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
次に、仮想環境を作成します。
python -m venv venv
venv\Scripts\activate.ps1
仮想環境を作成し起動したらトローチをインストールします。
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
次に必要なファイルをテキストファイルで指定してダウンロードします。requirements.txtという名前のテキストファイルを作成し、以下の内容を書き込み、AnimateDiffの基本ファイルがダウンロードされたディレクトリに設置してください。
xformers
diffusers[torch]==0.11.1
transformers==4.25.1
imageio==2.27.0
gdown
einops
omegaconf
safetensors
作成したrequirements.txtを利用して必要ライブラリを一括でダウンロードします。
pip install -r requirements.txt
こちらで基本的な必要なファイルのセットアップは完了です。
AnimateDiffに必要なモデルデータをダウンロード
まずはBase T2I(txt2img)のstable-diffusion1.5の基本モデルをダウンロードします。
git lfs install
git clone https://huggingface.co/runwayml/stable-diffusion-v1-5 models/StableDiffusion/stable-diffusion-v1-5
続けて、AnimateDiffのMotion Moduleをダウンロードします。こちらについては、stable-diffusion-v1-4で学習されたもの、stable-diffusion-v1-5で微調整されたもの2つがあります。gitで指定も可能ですが、ファイルが文字化けしてしまいますので、以下のDriveからダウンロードしました。
https://drive.google.com/drive/folders/1EqLC65eR1-W-sGD0Im7fkED6c8GkiNFI
モデルデータは以下のディレクトリ内に格納します。
models/Motion_Module/
生成のモデルデータをインストール
生成に必要なモデルは別途ダウンロードします。こちらは好きなもので構いません。以下のディレクトリにダウンロードしたモデルを格納します。以下のコマンドを利用する場合はToonYouのモデルデータを利用しますので「ToonYou」からダウンロードしましょう。
models/DreamBooth_LoRA
AnimateDiffの生成方法
GUIは無いため、コマンドで生成していきます。用意しているyamlファイルを利用すればすぐに生成可能です。
python -m scripts.animate --config configs/prompts/1-ToonYou.yaml
こちらのコマンドを入力すれば生成が始まります。必要なファイルが無いとエラーが起きるので、エラーが起きた場合は表示されるエラーを見てファイルを準備しましょう。またモデルデータとyamlの内部に記載されているファイル名がズレてもエラーがでますので、モデルのファイル名を変えるかもしくはyaml側を書き換えましょう。
AnimateDiff出力結果
書き出し形式はgifとなります。初期の設定では8つのgifを同時に生成するため、かなり時間がかかります。次回はyamlのファイルを調整する方法を紹介したいと思います。