🎥

低VRAMでも可能なAnimateDiffを試してみる[animatediff-cli]

2023/08/27に公開

animatediff-cliについて

animatediff-cliは、GitHubで公開されているオープンソースのツールです。このツールの最大の特徴は、低VRAMでも動作すること。具体的には、8GBのグラフィックカードでも問題なく動作するようです。また、生成するフレーム数や解像度など、さまざまな設定が可能です。

https://github.com/neggles/animatediff-cli/tree/main

Windowsでも操作できると記載がありましたので、今回試してみました。

使い方:

1. GitHubからリポジトリをクローンします。

好きな場所にクローンしてください。
私は、EドライブにAnimateDiffフォルダを作成して、その中でクローンしました。
E:\AnimateDiff\ ← こんな感じ

git clone https://github.com/neggles/animatediff-cli
cd animatediff-cli

2. 仮想環境を作成しアクティベートします。

python -m venv myenv
.\myenv\Scripts\activate

3. PyTorch 2をインストールします。

python -m pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

4. その他の依存関係をインストールします。

私のWindows環境では、シングルクォート'.[dev]'が正しく解釈されないため、ダブルクォートを使用してコマンドを実行したらインストールできました。

python -m pip install -e ".[dev]"

5. Motion Moduleのモデルをダウンロードします。

以下の、Google Driveから以下の2つをダウンロードします。

  • mm_sd_v14.ckpt
  • mm_sd_v15.ckpt

https://drive.google.com/drive/folders/1EqLC65eR1-W-sGD0Im7fkED6c8GkiNFI

配置する場所は以下のフォルダになります。

animatediff-cli\data\models\motion-module

6. 画像生成に使うモデル(チェックポイント)をダウンロードする。

今回はサンプルプロンプトがあるToonYouというモデルを使用しました。

以下のフォルダにモデルを配置します。

animatediff-cli\data\models\sd

7. プロンプトを編集する。

以下のフォルダにサンプルプロンプトがありますので、
新しいモデルで試す場合は、新たに作成してください。

animatediff-cli\config\prompts

以下はToonYouのjsonファイルの中身です。

{
  "name": "ToonYou",
  "base": "",
  "path": "models/sd/toonyou_beta6.safetensors",
  "motion_module": "models/motion-module/mm_sd_v15.ckpt",
  "compile": false,
  "seed": [
    10788741199826055000, 6520604954829637000, 6519455744612556000,
    16372571278361864000
  ],
  "scheduler": "k_dpmpp_2m",
  "steps": 30,
  "guidance_scale": 8.5,
  "clip_skip": 2,
  "prompt": [
    "1girl, solo, best quality, masterpiece, looking at viewer, purple hair, orange hair, gradient hair, blurry background, upper body, dress, flower print, spaghetti strap, bare shoulders",
    "1girl, solo, masterpiece, best quality, cherry blossoms, hanami, pink flower, white flower, spring season, wisteria, petals, flower, plum blossoms, outdoors, falling petals, white hair, black eyes,",
    "1girl, solo, best quality, masterpiece, looking at viewer, purple hair, orange hair, gradient hair, blurry background, upper body, dress, flower print, spaghetti strap, bare shoulders",
    "1girl, solo, best quality, masterpiece, cloudy sky, dandelion, contrapposto, alternate hairstyle"
  ],
  "n_prompt": [
    "worst quality, low quality, cropped, lowres, text, jpeg artifacts, multiple view"
  ]
}

schedulerはデフォルトだとエラーになりましたので
ddim, pndm, heun, unipc, eulerなどに変更してください。
オススメはddimです。

seedとpromptを見ると、それぞれ4つありますので、
4つ生成されることになります。
それだけ生成に時間がかかりますので、適宜減らしてください。

8. 生成する

以下のコマンドを実行すると生成が開始されます。
Lが生成枚数になりますので、ここを増やすとgifの再生時間も長くなります。

animatediff generate -c config/prompts/01-ToonYou.json -W 576 -H 576 -L 16 -C 16

まとめ

アニメーションの差分を生成するツールは、さまざまなものがありますが、VRAMが少ない環境でも動作するツールは貴重です。今回紹介したツールは、Windowsの環境でも問題なく使用できるので、ぜひ試してみてください!

参考記事:
テキストからアニメーション生成が可能なAnimateDiffのインストール

Discussion