【AnimateDiff】BRAV6を用いた美女のアニメーション生成

【AnimateDiff】BRAV6を用いた美女のアニメーション生成 機械学習

「動くAIグラビア・AI美女を生成したい」
「AnimateDiffでBRAV6モデルを利用したい」

このような場合には、この記事の内容が参考になります。
この記事では、BRAV6を用いた美女のアニメーション生成について解説しています。

本記事の内容

  • AnimateDiffへのモデル追加(BRAV6)
  • AnimateDiffにおけるconfigファイル作成
  • BRAV6を用いたGIFアニメの生成

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

AnimateDiffへのモデル追加(BRAV6)

AnimateDiffについては、次の記事で解説しています。

この記事の内容を試すには、AnimateDiffのインストールまでは済ませておく必要があります。
そして、AnimateDiffでは以下のモデル(一部抜粋)などが利用できるように準備されています。

  • ToonYou
  • Lyriel
  • Realistic Vision V2.0

準備とは、以下のファイルがもともと用意されていることを指します。

  • ダウンロードスクリプト(sh)
  • 設定ファイル(yaml)

詳細は、上記の記事を確認してください。
では、準備されているモデル以外は利用できないのでしょうか?

いいえ、できます。
今回は、BRAV6を新たにモデルとして追加します。

まずは、モデルのダウンロードからです。
ダウンロードスクリプトを用意するのもいいですが、正直不要です。

Chromeなどのブラウザで普通にダウンロードしましょう。
ダウンロードしたファイルは、次の場所に保存します。

これでモデル追加自体は完了です。

以上、AnimateDiffへのモデル追加(BRAV6)を説明しました。
次は、AnimateDiffにおけるconfigファイル作成を説明します。

AnimateDiffにおけるconfigファイル作成

設定ファイルは、次の場所に保存されています。

モデル毎に、YAML形式である設定ファイルが存在する形になります。
もちろん、先ほど追加したBRAV6用の設定ファイルは存在していません。

そのため、「1-ToonYou.yaml」などをコピーしてBRAV6用のファイルを用意します。

BRAV6.yaml

Brav6:
  base: ""
  path: "models/DreamBooth_LoRA/Brav6.safetensors"
  motion_module:
    - "models/Motion_Module/mm_sd_v14.ckpt"
    - "models/Motion_Module/mm_sd_v15.ckpt"
  seed:           [-1]
  steps:          30
  guidance_scale: 7.5
  prompt:
    - "(Best quality, 8k, 32k, Masterpiece),Photo of Pretty Japanese woman"
  n_prompt:
    - "NSFW, (((text))), (((watermark))),(worst quality:2), (low quality:2), (normal quality:2), lowres, bad anatomy, bad hands, normal quality, ((monochrome)), ((grayscale))"

最小限の設定にしています。
「seed」は、「-1」に設定しています。

あと、「prompt」は注意が必要です。
本来であれば、次のようなプロンプトを用いようとしていました。

(Best quality, 8k, 32k, Masterpiece, UHD:1.2),Photo of Pretty Japanese woman

しかし、これでは上手くGIFファイルが生成されません。
仕様的に、プロンプトなどの設定値が生成されるGIFファイルのファイル名となります。

この際、「:」がプロンプトに混入しているとダメのようです。
ネガティブプロンプト「n_prompt」はファイル名には無関係なので、「:」を含むのはOK。

この辺も初期設定を変更すれば、対応できるかもしれません。
本当に「:」を含みたいなら、Pythonコードを変更すればいいだけですけどね。

作成した「BRAV6.yaml」を指定された場所に保存します。

これで、BRAV6を利用する準備が整いました。

以上、AnimateDiffにおけるconfigファイル作成を説明しました。
次は、BRAV6を用いたGIFアニメの生成を説明します。

BRAV6を用いたGIFアニメの生成

BRAV6を用いたGIFアニメの生成を行います。
準備が整えば、あとは次のコマンドを実行するだけです。

まずは、リポジトリルートに移動します。
そこで次のコマンドを実行。

python -m scripts.animate --config .\configs\prompts\BRAV6.yaml

実行すると、設定ファイルに記載した内容で処理が進みます。
SD 1.4とSD 1.5の二つのモーションが適用されるので、次のような処理が2回実行されます。

検証した環境では、合計で3分ほどですね。
生成されるファイルは、以下の場所に保存されます。

設定ファイル名と実行日時でディレクトリが作成されています。
ディレクトリの中を辿っていくと、GIFファイルを確認できます。

次の順番でファイルは生成されています。

  motion_module:
    - "models/Motion_Module/mm_sd_v14.ckpt"
    - "models/Motion_Module/mm_sd_v15.ckpt"

「0」から始まるファイル名が、「mm_sd_v14.ckpt」で生成したGIFアニメになります。
そして、「1」から始まるファイル名が「mm_sd_v15.ckpt」で生成したGIFアニメということです。

実際にアニメーションは、以下で確認できます。
https://note.com/self_development/n/nb66ef2e34823

SD 1.4の方が、動きは派手です。
ただ、その分だけ見た目が破綻しやすくなります。

理想は、SD 1.5のように安定(破綻せず)しつつ動きが派手になることですね。
このあたりは、技術の進化を待ちましょう。

また、上記ページには次のようなGIFアニメも載せています。

あと、当ブログに載せるには若干刺激の強いNSFW要素のあるGIFもUPしています。
すべて、BRAV6を用いて生成しているアニメーションになります。

また、GIFのサイズを変更する方法は次の記事で解説しています。

以上、BRAV6を用いたGIFアニメの生成を説明しました。

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