画像生成AI「Stable Diffusion」AUTOMATIC1111版でイラストの画風・絵柄を学習&適用できる「Aesthetic Gradients」使い方まとめ

画像生成AI「Stable Diffusion」をブラウザ上で簡単に使えるウェブUIの中でも最も精力的に開発が行われ、もはやStable DiffusionのGUIとして決定版ともいえる「AUTOMATIC1111版Stable Diffusion webUI」に、AIの画像生成に特定の方向付けができる「Aesthetic Gradients」機能が追加されたので、実際に使ってみました。
https://arxiv.org/abs/2209.12330
Extensions · AUTOMATIC1111/stable-diffusion-webui Wiki · GitHub
https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Extensions#aesthetic-gradients
GitHub - AUTOMATIC1111/stable-diffusion-webui-aesthetic-gradients: Aesthetic gradients extension for web ui
https://github.com/AUTOMATIC1111/stable-diffusion-webui-aesthetic-gradients
AUTOMATIC1111版Stable Diffusion webUIのインストール方法については以下の記事でまとめられています。
画像生成AI「Stable Diffusion」を4GBのGPUでも動作OK&自分の絵柄を学習させるなどいろいろな機能を簡単にGoogle ColaboやWindowsで動かせる決定版「Stable Diffusion web UI(AUTOMATIC1111版)」インストール方法まとめ - GIGAZINE

また、AUTOMATIC1111版Stable Diffusion webUIの基本的な使い方は以下の記事を読むとわかります。
画像生成AI「Stable Diffusion」で崩れがちな顔をきれいにできる「GFPGAN」を簡単に使える「Stable Diffusion web UI(AUTOMATIC1111版)」の基本的な使い方 - GIGAZINE

Aesthetic Gradientsは、Stable Diffusionで入力した文章をベクトル表現に変換して画像生成の方向付けを行う「Embedding」という作業に、あらかじめ用意した画像データによる方向付けを追加するという機能です。自分の描いた絵で構成されたデータでAesthetic Gradientsを行うことで、生成した画像の絵柄を自分の絵柄に近づけることが可能になるというわけです。
まず、GitでAUTOMATIC1111版Stable Diffusion webUIのディレクトリにアクセスし、以下のコードを実行します。
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui-aesthetic-gradients extensions/aesthetic-gradients

コードを実行すると、「stable diffusion webui/extensions/」フォルダに「aesthetic-gradients」のリポジトリがクローンされます。Aesthetic GradientsはAUTOMATIC1111版Stable Diffusion webUI本体に実装されるのではなく、あくまでも拡張(Extensions)として追加されます。

画像生成の方向付けを行うには、Aesthetic Gradientsに利用するembedding用データが必要となります。このembedding用データは、Aesthetic Gradientsの論文著者であるVíctor Gallego氏が以下のGitHubのページで公開しています。
stable-diffusion-aesthetic-gradients/aesthetic_embeddings at main · vicgalle/stable-diffusion-aesthetic-gradients · GitHub
https://github.com/vicgalle/stable-diffusion-aesthetic-gradients/tree/main/aesthetic_embeddings
上記サイトにアクセスして、ダウンロードしたいembedding用データをクリックします。

「Download」をクリック。

embedding用データは「stable diffusion webui/extensions/aesthetic-gradient/aesthetic_embeddings」フォルダに保存します。今回はaivazovsky.pt、flower_plant.pt、laion_7plus.pt、sac_8plus.ptを保存しました。

AUTOMATIC1111版Stable Diffusion webUIを起動します。設定パネルの下部に「Open for Clip Aesthetic!」という部分があるのでクリック。

すると、Aesthetic Gradientsの設定パネルが展開します。

Aesthetic Gradientsの設定項目は主に以下の4つ。
・Aesthetic Weight:Aesthetic Gradientsの1ステップ当たりの重み。高くするほど、Embeddingの影響が強くなります。
・Aesthetic Steps:Aesthetic Gradientsのステップ数。多くするほど、Embeddingの影響が強くなります。
・Aesthetic learning rate:Aesthetic Gradientsの学習率。 Gallego氏によれば、デフォルト値の0.0001で十分機能するとのことで、ほとんどの場合変更する必要はないとのこと。
・Aesthetic img embedding:Embedding用データを選択します。

実際にAesthetic Gradientsを使うとどれだけ生成される画像に影響が出るのかをチェックしてみました。以下は「Portrait of a full body of beautiful young female detective, d & d, sleeveless turtleneck, pleated skirt, fantasy, flat lighting, intricate, highly detailed, digital painting, artstation, concept art, smooth, sharp focus, illustration, misa amane, art by simon bisley and greg rutkowski and alphonse mucha, natural tpose」というプロンプトで、解像度512×512ピクセル、生成ステップ数を73、生成サンプラーをEuler a、CFGスケールを7、シード値を8923に設定して生成した画像です。

生成時の設定はそのままの状態で、Aesthetic Weightを0.9、Aesthetic Stepsを3、Embedding用データをaivazovsky.ptで、Aesthetic Gradientsを実行してみた結果が以下。aivazovsky.ptは海をモチーフにした風景画を多く描いた画家のイヴァン・アイヴァゾフスキーの作品で構成されており、よく見ると女性の左手に船の模型のようなものが生まれています。

flower_plant.ptは草木や花の画像2000枚以上で構成されたデータ。女性の背景に草原が現れ、野花や木々が描かれています。

laion_7plus.ptはLAION-Aesthetics_Predictor V1で使われているembedding用データを用いたもの。なぜか女性の髪型がキノコのように膨れあがっていますが、服や背景がさらに細かく描写されています。

sac_8plus.ptはSimulacra Aesthetic Captionsで使われているembedding用データが元になっています。絵柄はガラッと変わり、絵柄はかなり日本のマンガやアニメっぽい感じになっています。

以下は「empty sidewalk of a cyberpunk megacity, dramatic lighting, detailed background, gorgeous view, realistic, high detail, depth of field, lightrays, atmospheric, digital art」というプロンプトで、生成ステップ数を80、生成サンプラーをEuler a、CFGスケールを7、シード値を20221031に設定し、Batch Sizeを4にして生成したもの。Aesthetic Gradientsは使っていません。SF映画に出てきそうな背景と、その中を歩く人が描かれています。

同じ設定で、Aesthetic Weightを0.9、Aesthetic Stepsを15、Embedding用データをaivazovsky.ptで、Aesthetic Gradientsを実行してみるとこんな感じ。Aesthetic Stepsをかなり高くしたからか、アイヴァゾフスキーの作品に大きく影響され、海を描いた絵に変わっています。4枚のうち1枚は額縁に入ったことで、もはや完全に美術館に飾られる絵画作品のような見た目に。

flower_plant.ptだと植物が絵の中に描かれていますが、元の画像よりも建物が近景に描かれていることもあり、文明を感じる見た目となりました。

laion_7plus.ptだと建物や植物が描き加えられただけではなく、そもそもの画風が大きく変化。サイバーパンク風と指定して生成された元画像から大きく異なり、どことなくファンタジーっぽい雰囲気も生まれています。

一方でsac_8plus.ptは、オリジナルの生成画像にかなり近いものが生成されていますが、荒廃した土地ではなくかなり文明的で未来感のある街並が背景に描かれています。

なお、embedding用データは自分で用意した画像で作ることができます。「Create aesthetic embedding」のタブをクリックし、「Name」にデータの名前を、Source Directryに画像を入れたディレクトリを入力し、「Create Images embedding」をクリックすればOK。

ただし、オーストラリアの技術者であるkoiboiさんによる以下の解説動画によれば、十分な効果が得られるためのembedding用データには数千枚の画像を用意する必要があるとのことです。
How to use Aesthetic Gradients: Stable Diffusion Tutorial - YouTube
