そもそもは、この記事を書こうと思って、でも前提として「旅botを説明していないな」と気づいて以下の旅botの紹介をしたのです。
で、先日旅botの機能追加中に「ほー」と思った表題の話しを記します。
旅botの背景合成の従来方法
これもよくよく考えたら、従来方法の方も細かく説明すべきところなのですがそれはまた後日にします。すでに新方法の方を説明の方を書いてしまったので。。。
おそらくこの付近の技術に詳しい人は以下のフローを見るだけでだいたい何をやっているかは想像がつくと思います。
実際のプロセスでは、出力はかなり崩れた絵が多く出ます。ですから、それを改善し、見た目を改良するために、実際にはフィルターや再加工処理、再生成処理がいろいろ含まれています。
このプロセスで普通にStableDiffusionのmodelを使っただけでも、非常に多くの異なるキャラクターが生成されますがある程度無難な絵が出ます。
マルチモーダルAIを使ったリアル化方法
この方法ではマルチモーダルAIを使用し、一旦背景の解析を行います。
最近噂になっているLLaVA ( https://github.com/haotian-liu/LLaVA )を使っています。
この解析は、背景の各要素を詳細に調査し、それらの要素がどのように相互作用しているかを理解することを含みます。
得られた情報を使って、画像の状況に合わせたプロンプトを生成して画像生成プロンプトに追加します。
これにより、背景の特性に合わせて調整されたキャラクタ画像が得られます。
次に、StableDiffusion i2iで画像を生成します。このときマルチモーダルAIで解析したシーンの状況をプロンプトの形に追記する形でキャラクタのプロンプトに追加しています。
この組み合わせにより、より背景に対してありそうなしぐさを指示されます。完全ではないにしろしぐさプロンプトによってリアルさの増したキャラクタ画像が出るようになります。この結果より現実にありそうな描写が行われるようになります。
元々i2iでも、背景画像の学習知識から、この背景にありそうなしぐさをしていることは多いです。
しかし一旦マルチモーダルAIで背景画像を解析し、かつ「この背景に似合うしぐさを教えてください」という形で問い合わせると(マルチモーダルAIが十分賢ければ)i2iで作られるしぐさよりもう一段シーンを熟読したしぐさになります。
最近mi達には、StreetView staticによる旅程の画像に加えて、付近の建物/名所の画像も出力するように追加しています。今回の新方式は2枚目の名所写真のみで1枚目の旅程の画像は従来通りのままです(さらに言えばマルチモーダルAIで画面を粗分類しており、新方法が効果的と判定した画面のみ新方式を使っています)。
処理が複雑な分、時間がかかって重いという話しもあるのですが、一番の理由は、旅程のStreetView staticは道を機械的に撮影している360度写真が多いので従来ままでほぼ問題がないのに対して、名所写真は人によって見栄え良く鋭角や接写の撮影演出が写真にあるため、使う写真を解析しておかないとまったく的外れなしぐさになってしまうためです。
出力例
ちょっとおしゃれなうどん店の写真です。
LLaVAは入力画像から酒場と判定(実際は酒類も出すうどん屋)してお酒を持った女性が集うシーンがよいと判断し以下の出力を出しました。
これから作られた画像は以下で、お酒をこじゃれて持った出力になっています。
次の例はお墓の写真でなんなのですが、プロンプト上ではここがお墓であることを判別し、花を持つ絵が出ています。
プロンプトが複雑になるため、画像の失敗率はかなり上昇します。しかし、従来のi2i変換ではほとんど見られない新たなシーンの合成が可能になります。つまり、複雑性が増すことで、より多様な視覚的表現が可能になり、これまでにない結果が得られる可能性があります。
マルチモーダルAIが出力したプロンプトを、言語認識が得意なAI(例えばChatGPT4)で画像生成用プロンプトに再構築することで、出力の安定化と改良が可能になると考えています。また、こういう多数LLMを組み合わせたときのパイプラインの仕組みや記述の方法も共通化・一般化されればよいなと思います。
GPT-4, GPT-4V生成例追加 (2023/11/11 追記)
上記のプロンプト整理の仕組みはGPT4で現在追加しています。また画像を評価するマルチモーダルAIも gpt-4-vision-preview を使えるようにしています。ランダムでLLaVAとgpt-4-vision-previewを切り替えて生成しています。
GPT-4Vに「背景に最適なポーズ」を問い合わせる
GPT-4にプロンプトの整理を依頼
旅botへの応用に関しては、LLaVAもGPT-4Vも同様に善戦しており大きな差はないように思えます。
というか、マルチモーダルAIが面白い指示を出しても画像生成の結果で人の像が大きく崩れていたり小さすぎて目立たないなどの理由で画像が却下されていることが多く、最終結果にまで反映されたものはLLaVAもGPT-4Vも似たタイプの画面になっているというのもありますが。