Stable Diffusionに天空の城ラピュタの飛行石の紋章を描いて貰う

画像生成

1.Stable Diffusionに天空の城ラピュタの飛行石の紋章を描いて貰うまとめ

・textual inversionは画像からstable diffusionに新しい概念を学ばせる手法
・学んだ概念をprompt内でタグとして利用する事が出来るので応用範囲が広い
・学習した概念を組み合わせて画像を生成する際のチューニングは非常に難しい

2.textual inversionとは?

アイキャッチ画像はstable diffusionのtextual inversionを使った生成

2022年10月3日追記)textual inversionの上位互換とも言えるDreamBoothという手法が発表されているのでそちらも見ておくと良いと思います。

少し前にstable diffusionでtextual inversionという画像を使ってスタイルや実体を定義し、その定義を新規タグとしてプロンプト内で指定できるようにする拡張が取りこまれました。

文章で読むとわかりにくいですが、論文内の画像を引用すると以下です。

一番左端のカラフルなティーポットの絵を3枚与えてStable Diffusionに「これは<S*>です」と学習させます。

学習後、<S*>をpromptの中で「カラフルなティーポット(object)」もしくは「カラフルなティーポットのスタイル(style)」を意味するタグとして使用できるようになります。

その結果、「スチーミングしている<S*>のマンガ風絵(Manga drawing of a steaming <S*>)」や「<S*>のじょうろ(A <S*> watering can)」や「<S*>のデス・スター(<S*> death star)」や「<S*>が主演の映画「ティーポット」のポスター(A poster for the movie ‘The Teapot’ starring <S*>.)」というプロンプトで上記のような絵を生成できるようになるという触れ込みです。

特定の画像を元に新規に画像を生成するImg2Imgと言う機能に似ていますが、あちらは指定した画像のバリエーションを生成する機能であって、textual inversionは概念をタグとして教え込む事が出来るので、prompt内で指定できるようになる事が大きな違いです。

わずか3~5枚の画像と数時間の微調整で、Stable Diffusionに新しい概念を教え、その概念を使ったpromptで画像を生成する事が出来る!と、いうのは物凄い革新的な手法なのですが、新たに獲得した概念を画像内で組み合わせる際のチューニングが非常に難しくて、少なくとも私はやりたいと思った事、例えば「渋谷のセンター街で微笑むセーラー服を着たナウシカ」のような複雑な概念の組み合わせは実現出来ていません。(2022年10月追記:本投稿を書いた時点では絶対に無理なイラスト例として書いたつもりであった「渋谷のセンター街で微笑むセーラー服を着たナウシカ」ですが、既に実現可能になっています)

逆に言うと、textual inversionで作りたかった画像が全く生成できず、その原因を探っていくうちに飛行石の紋章ならば出来る可能性が高いと推測し、その予測が当たっていたためか、アイキャッチ画像のような良い感じの画像が出来た経緯です。

希望するレベルの画像は生成できていませんが、天空の城ラピュタの英語版タイトルは「Castle in the Sky」、飛行石は英語版wikiによれば「blue crystal pendant」であるためか、単語が汎用的すぎてpromptでこれらを確実に指定する方法を私は見付ける事が出来ていないので、textual inversionを使わなければアイキャッチ画像のような品質の画像を作るのは困難を極めるので有望な手法である事は間違いないと思います。

textual inversion機能自体は末尾のリンクよりご自身でColabで検証する事ができます(要huggingface社アカウント登録)。自分で概念を教え込むには1~2時間くらいかかるのでやや手間ですが、huggingface社のサイト内に他のユーザーが学習させた概念を公開しているページがあるので、そこの学習済み概念を指定すれば簡単に動かす事が出来ます。日本の方も公開してくれているようなので皆さんも馴染みのある概念もあると思います。

以下、飛行石の概念をobjectとしてtextual inversionで取り込んで生成した画像群をお楽しみください。


「飛行石が埋め込まれた玉座に座る王様」を指定した画像。色合いと服の模様にわずかに飛行石っぽさが残るが「王様」のような強い既存概念と組み合わせると物体として共存する事が出来ずスタイルとして吸収されてしまう事が多いです。


「飛行石が埋め込まれた王冠を頂く王女」を指定した画像。宝石部に紋章が描かれていれば完璧なのですが、そういった画像は生成できていません。王冠の色合いにスタイルが反映されているように見えますが、言われなければわからないレベル


こちらも「飛行石が埋め込まれた王冠を頂く王女」を指定した画像。全体的な色使いに飛行石のスタイルが反映されているように見えますが、言われなければわからないレベル


こちらは「飛行石が胸に埋め込まれたロボット」を指定した画像。色々言いたい事はありますが、この画像はかなりマシな画像で、そうですね、ロボット兵開発秘話試作型ロボット兵Version0.1と言えば、そう見えなくもないですかね。

さて、次はムスカ大佐と飛行石をイメージしたプロンプトです。私の絶望感を追体験するために以下の公式絵を十分記憶してからお進みください。

 

 

 

 

以下は「巨大な飛行石を見つめる茶色のスーツを着てサングラスをした男性」を指定した画像です。

更に色々言いたい事はありますが、この画像はそれでもかなりマシな画像で、そもそも「茶色のスーツを着てサングラスをした男性」だけでStable Diffusion先生がお腹いっぱいになってしまう事が多いので、飛行石っぽいものがおっさんと共存出来ているだけで超大成功画像なんです。9割以上は以下のような単なるおっさんの画像(敢えて書くなら背景色に飛行石のスタイルが反映されてるっぽい)が大量に生成されます。

だが、しかし!

この画像はそれでもそれでもまだかなりマシな画像で、おっさんと飛行石が分離されているだけマシなのです。


おっさん柄の飛行石。何故?どうして・・・?


おっさん柄の飛行石その2
額の入れ墨部、目の色の黄金、頭部の形状に飛行石のスタイルが反映されている感があり、スタイルは確かに効いているけれども、どうしようもなくこれじゃない感が余計に掻き立てられる、ある意味、物凄いレベルの素晴らしい画像です。

美しい心を持った綺麗なベヘリットにも見えてくる魅力的な画像ですが「どうしてこうなった、どうしてこうなった、どうしてこうなった」と頭を抱えながらアイキャッチ画像レベルまで品質を高める事が出来たのは、本当によく頑張ったと自画自賛しました。

3.Stable Diffusionに天空の城ラピュタの飛行石の紋章を描いて貰う関連リンク

1)colab.research.google.com
sd_textual_inversion_training.ipynb(画像を元に概念を取りこむ場合)
stable_conceptualizer_inference.ipynb(他の人が作成した学習済み概念を使う場合)

2)huggingface.co
Stable Diffusion concepts library(他の人が作成した学習済み概念一覧)

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