「動く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アニメの生成を説明しました。