Stable Diffusionを使って「いらすとや風画像生成モデル」を作った話

今話題の画像生成モデル「Stable Diffusion」をいらすとやの画像でfinetuneしてみたところ、任意のテキストに対していらすとやっぽい画像を作れるモデルが出来上がりました。

Stable Diffusionとは

Stable Diffusionは、指定されたテキスト(文字列)に対応する画像を生成する機械学習モデルのひとつです。ソースコードと学習済みモデルは無償で公開されていて、誰でも利用できるようになっています。

(Stable DiffusionのGitHubページより引用)

今回は、この画像生成モデルをいらすとやの画像でfinetune(微調整)することで、入力テキストに対応する画像をいらすとやのようなスタイルで出力させることを試みました。

開発環境

開発環境はGoogle Colab Pro+で、主にプレミアムGPU(NVIDIA A100)を使いました。Stable Diffusionモデルが非常に大きいため、標準GPUだとメモリがあふれて学習も画像生成もできませんでした。

うまく生成できた画像の例

いらすとや画像でfinetuneしたStable Diffusionモデルを使い、シード値を変えつつ様々なテキストで画像生成を試してみました。以下は生成した画像の中でよさげなものの例です。

白馬に乗る宇宙飛行士

これはOpen AIの画像生成モデル「DALL·E 2」のプロジェクトページにも載っている非現実的な画像の例です。DALL·E 2の場合は写真や鉛筆画のような画像でしたが、いらすとや画像でfinetuneしたモデルはしっかりいらすとやのスタイルで画像を生成できました。

宇宙で猫と一緒にバスケする宇宙飛行士たち

ボールが多すぎたり、一部人や猫の顔が変だったりしていますが、割とそれっぽく出来た方だと思います。

ラーメンを食べる子犬

笑顔の子犬は特にいらすとやっぽい感じがします。

買い物するクマ

子グマがカートに詰め込まれていたりと程よくツッコミどころがあります。

手から吹雪を出す人

うまくできた例は吹雪というよりは氷塊といった感じでしょうか。明らかに別の紫色の魔法や銃のようなものを使ったりする人の画像も出てきました。

砂漠でスキーする人

一番右の画像の「STOC DELIT HAE」が何なのかは全く分かりませんが、全体的によく出来ていると思います。

アボカドの形をした椅子

いらすとやの雰囲気を残しつつ、アボカドのような椅子の画像が生成できましたが、中にはアボカドが椅子に乗っているだけの画像もありました。

アボカドの形をした椅子に座る人

いい画像も生成できましたが、割と難易度が高かったようです。人とアボカドのフュージョンが生まれた時は戦慄を覚えました。

うまくいかなかった例

一方で、シード値を変えてもそれらしい画像が出てこなかったテキストもありました。

チュチュを着た赤ちゃん大根が犬の散歩をしている

なかなか複雑なテキストですが、これもDALL·Eのプロジェクトページにある例です。赤ちゃん大根の妖精っぽい画像やチュチュを着た子が犬の散歩をしている画像は生成できたのですが、残念ながら全ての条件を満たす画像はできませんでした。

虹色のスミを吐くイカ

全体的に綺麗なのですが、いらすとやっぽさのある画像は見つかりませんでした。

人にマッサージをする犬

人が犬にマッサージをしたり、人が人にマッサージをしたり、人が得体の知れないモノにマッサージをする画像はできましたが、犬がマッサージをする画像は見つかりませんでした。

ベッドで眠るティラノサウルス

全体的に何か残念な感じです。

人の鉛筆画

遺影になってしまいました。

火災避難訓練

これは訓練ではない。

学習過程で画像がいらすとや化していく様子

シード値を固定しつつ、finetuning過程の各チェックポイントを使って「白馬に乗る宇宙飛行士」の画像を生成し、アニメーションにしてみました。最初は写真のような画像が生成されていたのに対して、学習が進むにつれていらすとや風の画像出力に変わっていく過程が見て取れます。

シード値によっては割と早い段階からいらすとや風になっている画像もある一方で、途中で馬や人の向きが変わったり馬全体が宇宙飛行士に変わったりと不安定なものもあるのが興味深いです。

おわりに

以前自分が「いらすとや風人間画像生成モデル」の記事を書いてから5年が経ちました。

mickey24.hatenablog.com

あれから機械学習技術や開発環境が大きく進歩し、個人レベルで今回のようなクオリティの画像生成モデルが作れるようになってしまった事にとても驚いています。5年前には想像できなかった時代がやってきていることを身を以て知りました。

もちろん、今回のモデルでも毎回いい画像が生成できるわけではありません。この記事のうまくいった例は何度もテキストとシード値を変えつつ画像生成を繰り返した結果であって、その裏にはたくさんの失敗した画像たちがいます。

しかし、今回は5年前のモデルと違い、前情報なしでは本家と見間違えそうな画像が生成できることもあるため、念のため今回のモデルはTwitter botも含め公開しないでおこうと思います。

ところで、いらすとやさんのようなイラストレーターがこういった機械学習技術を活用して作画を効率化することはもはや可能な域に達してしまったかもしれませんね。