【StableDiffusion】風祭はどういった手順で画像を生成しているの?【今日は何の日?編】

技術

はじめに

ご無沙汰しております。風祭小枝です。今回は初めての技術?記事となります。

普段私はちちぷいというAIイラストを投稿するサイトで「今日は何の日?」「百合」「下着」などのテーマで画像を毎日投稿しているのですが、今回はその中でも「今日は何の日?」のテーマをどのように作っているかを紹介していきたいと思います。

風祭小枝 | chichi-pui(ちちぷい)AI画像専用の投稿&生成サイト
生成系AIで遊んでいます。シンプル線画が特徴の「Tsubaki」という学習データを使用しています。 「今日は何の日?」「百合」「下着」をテーマによくやってます。ざっくばらんにやっているので統一感は無いです。 画像を投稿している人はフォローバ...

そもそも、私がなぜ「今日は何の日?」のテーマを扱っているかですが、ベンチマーク的な要素が強いです。どんなものが生成できて、何が生成できないかを調べることが主目的となっています。最近はControlNetで自由度高く生成できますが、それでも難しい構図や日本の文化特有のものを生成するのは追加学習しないと厳しいのが現状だったりします。それらを調べて情報提供するために「今日は何の日?」タグで投稿を続けているって感じです。

手順を見てみよう!

完成例

まずは完成例を見てもらいましょう。これは8月24日のイラストになります。右が「歯ブラシの日」、左が「愛酒の日」になります。

愛酒の日
歯ブラシの日

どうでしょう、サイト内の画像群でも珍しい白背景の画像になっています。AIイラストは背景が破綻しがちなので、私は白背景が好きですね。背景を入れる場合の制作方法についてもいつか記事にしたいところ。

テーマの選定

最初はテーマ決めから始めます。このサイトを使って、まずはその日にどのような記念日があるかを調べることから行います。例えば、8月24日は下記のような記念日があります。

8月24日の記念日一覧

この中から比較的作りやすいものと、作りにくいものを見分けるところから始まります。「愛酒の日」はお酒にまつわるイラストを作ればよさそうですね。「ポンペイ最後の日」や「バニラヨーグルトの日」は頭の中でイメージを作れても、画像生成AIのデータセットにないと作れないので今回はパスしました。
「歯ブラシの日」は手に道具を持つ構図になるので難易度的には高いですが、チャレンジする価値があると判断し採用しました。

このように、比較的楽に作ることができるものと、工夫しないと作れないものを1つずつ選んで採用することが多いです。といっても日によりますがw

プロンプトを考えよう!

さて、ここが肝の部分になります。ここがうまくいくと画像生成がスムーズにいきますが、難航すると1時間があっという間に溶けます。

自分で1から考えるのも面白いですが、プロンプトは基本英語で入力しないといけません。そういうのが面倒な方向けに今回紹介するのが「Tagger」という拡張機能です。拡張機能のインストール方法に関しては多くの方が投稿しているので、そちらを参照していただければと思います。

参考

「Tagger」機能の導入と使い方をわかりやすく解説ー一般画像からプロンプトを抜き出せる【Stable Diffusion】 | マイナーゲーム.com
AIお絵描き「Stable Diffusion」において、「画像のプロンプト(要素)が知りたい」というときに便利な機能が「Tagger」です。自動で要素を解析してくれます。【追記...

これを使うと、その画像に含まれている要素をテキスト化してくれます。超便利!

Taggerの画面

ここで既存のイラストをテキスト情報にすることで、楽にプロンプトを組むことができるため時短術として覚えておいて損はないですね。しかし、他と差別化を図るためにはここからさらに工夫が必要になります。

画像を生成しよう!

さて、プロンプトの方向性が決まったら、いよいよ生成になります。今回はControlNetを使った「歯ブラシの日」を紹介していきます。

まずはプロンプトのみで生成した画像を見てみましょう。

パラメータ

「Hires. fix」は使う派です。Denoising strengthを0.5あたりにすればスタイルが崩れずに画像を拡大できます。

いい具合にできてはいますが、手の破綻や歯ブラシが棒状の何かになっています。もう少しどうにかしたいですね。お分かりかと思いますが、こういうときこそControlNetはかなり強力です。

ControlNetを使おう!

ControlNetを使うときは元となる画像が必要になってきます。ControlNetとはいえ、他者が描いたイラスト・写真を使うのは著作権的に黒寄りのグレーなので、フリー素材などを優先的に選ぶ方がよいかと思います。理想は自前ですね。

私がよく使う手法はLineartとDepthを併用する手法です。それぞれのパラメータは以下の通りです。

体全体
Control Weight:0.25
lineart_standard

手の部分のみ
Control Weight:1.10
lineart_standard

体全体
Control Weight:0.55
Depth_midas

ここで重要なのは手の部分のみの画像を用意してあげることです。そうすることで、手のみはガイド通り作らせ、それ以外はある程度自由にやらせる事を可能にします。以前ランキング1位を取った「百合構図練習」はこのControlNetをふんだんに使ったものになっています。

百合構図練習 | chichi-pui(ちちぷい)AIイラスト専用の投稿&生成サイト
ControlNetのLineartを使って生成→画像拡大→フォトショで加工の流れで制作 女の子 百合 習作

これらの作業を行って完成したものがこちらになります。

ControlNetを使って完成した画像

あとはガチャを数回試行&プロンプト調整でよさげなのを出します。今回は4回で済みました。

画像を拡大しよう!

スマホで閲覧しているとあまり気にならないのですが、解像度の高いモニターで閲覧すると気になるのが画像自体の解像度です。

512×768のままだとジャギーが気になるほか、目や閉塞域の書き込みが甘いので、せっかくいい構図ができても「ガビガビしてるな」という印象を受けてしまいます。
とは言うものの、画像の解像度を上げるにはグラボの性能が高くないと……と、昔は言われていたのですが、今は拡張機能が解決してくれます。

その拡張機能というのが「Ultimate SD upscale」というものです。こちらの拡張機能に関しても多くの先駆者が使い方を投稿されているので、そちらを見たほうが分かりやすいと思います(丸投げ)。

参考

Ultimate SD Upscale【拡張機能のアップスケーラー】
「4倍を超える大きさに画像を拡大したい」 「アップスケーラーの処理時間をもっと短くしたい」このような場合には、この記事の内容が参考になります。この記事では、AUTOMATIC1111版web UIの拡張機能であるUltimate SD Up...

画像を拡大する前と後でどれぐらい違うかは以下の画像を見てもらえば一目瞭然かと思います。

アップスケール前と後

上がアップスケール前、下が4倍アップスケール後です。かなり線がシャープになり、拡大してもジャギーが出なくなりました。画像の拡大は1倍(ただのi2i)から16倍まであります。configをいじれば無際限に拡大率は上げられますが、ちちぷいの画像サイズ制限に引っ掛かりますし、生成にとてつもない時間がかかるので、2~4倍が現実的だと思います。

ここまで行うと、普段私が投稿している画像にすることができます。場合によってはPhotoshopで微修正を行ったりしますが、それはまた別の機会で紹介したいと思います。

おわりに

ここまで読んでいただき、ありがとうございました。以上が普段私が行う作業手順でした。

これが最低限の手順で、間に別の作業が挟まることが多いですが、今回は割愛させていただきました。小技系はまた別で紹介したいと思います。

それでは。

コメント