Stable Diffusionを使ってシシ神様をトトロに差し替える

画像生成

1.Stable Diffusionを使ってシシ神様をトトロに差し替えるまとめ

・人工知能に絵の中の指定する一部分だけを差し替えて貰う機能がin-painting
・絵の範囲外の部分を補完して描いてくれるout-paintingと言う機能もある
・Stable Diffusionを使ったin-paintingが実装されていたので試してみた結果

2.in-paintingとは?

アイキャッチ画像はstable diffusionのin painting機能を使った差し替え

2023年3月追記)インペインティングの基本概念はこの記事に書かれた通りで変わっていません。しかし、最近ではツール/モデルによって使い方が変わってきており、例えば、Stable Diffusionとそこから派生したモデルであれば、通常のモデルとin painting用のモデルが別々にリリースされる事があります。in paintingをする際はin painting用のモデルを使った方が綺麗な書き換えが出来ると言われています。

文章の指示に従って絵を描いてくれる人工知能であるStable Diffusionはオープンソースとして公開されているため、最近、非常な盛り上がりを見せており、色々な人が色々なサービスを公開してくれています。

しかし、その弊害で細かいVersionによる差異が出始めていて、先日紹介したSeedもそうですが、今回紹介するin-paintingも、動く版と動かない版が出てきているようです。

末尾関連リンクで紹介しているColab上で動かせる事は確認済ですが、ご自分のPCで動かしている人はColabのスクリプトをそのまま自分のPCに移植しても動かない可能性があります。(動かせている人もいるようですが、私は結構苦戦しました。環境によって動くケースと動かないケースがあって、まだ完全解決出来てない模様)

という事で、動かしてみたいのに動かせないよ!と言う方は(huggingfaceの無料アカウント登録が別途必要ではありますが)末尾関連リンクのColabを使うか、Versionによる差異の混乱が収まるまで待つと良いと思います。(逆に混乱が収まったらColabの方が動かなくなる可能性があるのでその場合は同じく末尾にリンクしたhuggingface / diffusersページ内でinpaintingをキーワードに最新版を探すと良いです)

さて本題ですが、アイキャッチ画像を見てわかる通り、人工知能に絵の中の一部分だけ差し替えて貰いたいと言う要望に応える機能がin-paintingで、一週間くらい前にStable Diffusionを応用した実装が公開されています。

余談ですが、out-paintingといって、人工知能に絵の範囲外を補完して欲しいという要望に応える機能もあって、先日、DALL·E 2が実装した事をアナウンスしてました。out-paintingは私の知る限りではまだStable Diffusionを使った実装は公開されていません。(2022年9月30日追記:本家のdreamstudioはout-paintingが実装されています。out-paintingの使用感の感想はこちら)


DALL·E 2のout-paintingの実例
赤い枠が本来の絵で、本来の絵の枠外をありそうな感じの絵で補完してくれる機能がout-paintingです。

in-paintingはどうやって使うか?

(1)元画像を用意

最初に元の画像を用意します。今回はスタジオジブリが「常識の範囲内でご自由にお使いください」と公開してくれている画像群です。

(2)差し替えたい部分を白塗り

次に差し替えたい部分を白くぬります。使うアプリは何でもよいです。私はgimp2というオープンソースなソフトを使ってますが、とにかく画像に白色が塗れれば何でもよいです。私の作ったマスク画像は下記です。

(3)Stable Diffusionに(1)と(2)とプロンプトを渡して祈る

運が良ければアイキャッチ画像のような非常に良い感じの画像が出力されます。ちなみに「プロンプトは何を使ったんだろう?」と疑問に思った方は前述したSeedのお話を読んでおくと良いです。私はいまのところ、魔法の様に有効なプロンプトを見つける事は出来ておらず数で勝負している感じです。うろ覚えですが「森の中にトトロが立ってます」とかそんな感じで特別に捻ったプロンプトではないです。

この絵、凄いですよね。ほとんどの方がもの凄~い!と感じると思うのですが、これほど違和感ない画像が出来るのは私のやり方だと数百枚作って1枚できるかどうかくらいです。

以下、完全に崩れてはおらず比較的まともだけれども、結構な違和感がある絵をお楽しみください。

余り出来の良くないin-paintingの実例

元の絵



話は聞かせて貰ったぞ!

元の絵



ムスカ大佐、コンタクトレンズ化失敗(眼鏡を取る事はできなかった)

 




カオナシの透明感がどうしてもトトロにも波及してしまう。

元の絵

元の入力プロンプトは「少年とトトロが並んでいます」なのですが、何故かピンクの服を着た謎の人物が必ず映りこんできてしまいトトロへの差し替えが出来ません。ハクが少年として認識されないのかな?

元の絵

難しいだろうとは思っていたけれど、登場人物勝手に増える系が結構あります。

全然ダメなので、トトロのお腹に座ってる絵をお願いしたらクッションにトトロと一緒に座ってる感じになりました。

車の上ですかね、うわー、トトロの足長いなぁ~


サンの足が増えたり減ったりせずに、唯一、動物に乗ってる感が出せた絵がこれですが、これ、一体、何なのでしょうか、Stable Diffusion先生?

元の絵

これ、玉袋?ですかね?

特にプロンプトで指定してないのですが、トトロを平成狸合戦ぽんぽこの世界に持っていったので玉袋が付与されたのであれば、Stable Diffusionが「平成狸合戦ぽんぽこ」の世界観を理解している可能性がある気がします。

数十枚作った中での1枚だけなので、たまたま防具等がそれっぽく見えているだけという勘違いの可能性はあり、且つ、題材がちょっとアレなのですが、とても興味深い事例でした。

元の絵(縦横比を維持するため上半分は私の方で継ぎ足しています)




トトロと一緒に飛んでほしかったのですが「独楽の上に乗って空を飛ぶトトロ」等の難しいプロンプトを伝える事ができていません。


もしくはクトゥルフ神話的な名状しがたき何かに進化を遂げてしまう。

 

人工知能のStable Diffusion先生が創造的な絵を描きやすくするために、人間の私めが画像の縦横比を合わせたり、マスク画像を作ったり、プロンプトを大量に生成させて頂くという状況は、よく言われる「近い将来、単純作業は人工知能に任せて、人間は創造的な仕事のみをやれば良くなる」とはまるで逆の世界で、結構な皮肉を感じながら作業をしております。

3.Stable Diffusionを使ってシシ神様をトトロに差し替える関連リンク

1)colab.research.google.com
in-painting with stable diffusion using 🧨diffusers

2)github.com
huggingface / diffusers

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