はじめに
いよいよ、gpt-4-visionがAzure OpenAI Serviceでも使えるようになりました。ので、何に使えるかは一旦置いておいて、以前からやりたかった画像->プロンプト化->画像をやってみたいと思います。以下です。
なお、画像はフリー素材のサイトから拝借しました。
使ったモデルはAzure OpenAI Serviceのgpt-4-visionとdalle-3です。
とりあえず結果
どうでしょうか。結構いい感じに再現できているかなと。
(人種が逆になっていたり、ポーズが違っていたりしますが、このあたりはGPT-4Vの方のプロンプトをチューニングすればできそうな気もします)
もう1個はちょっと残念なケースです。なんとなく雰囲気はとれてますけど、全体的におしゃれになりますね‥また向きがやっぱり難しい。色々ものがある画像の場合はプロンプトをちょっと変えないとダメそうです。
いずれも3~4回実施の上で一番それっぽいのを採用してます。
GPT-4Vのプロンプト
今回の検証の肝である画像のプロンプト化はこんなプロンプトです。精度を少しでも上げるために英語にしてますが、日本語ですと「画像に描かれている内容と同一のコンテンツを生成するために、DALL-Eを使用して詳細なプロンプトを書いてください。正確な再現を保証するために、オブジェクト間の関係や色についての詳細を含めてください。あなたならやれるはずです」という感じです。
user_prompt = "Please write a detailed prompt to generate content \
identical to what is depicted in the image using DALL-E.
Include details about the relationships of objects and colors \
to ensure accurate reproduction. You can do it if you try."
GPT-4Vの呼び出し実装については公式をご参照ください。
DALL-E3の実行
GPT-4Vの出力結果であるプロンプトをそのまま流します。Azure OpenAI Service経由の場合、フィルターにひっかかって生成されないことがあります。ので、何度か試す必要は結構ありました。
DALL-E3の呼び出し実装については公式をご参照ください。
まとめ
画像をプロンプト化して再度画像化してみました。それなりに再現できたケースもあればあんまりうまくいかなかったケースもありますが、総じてそれっぽいものの再現はできたかなという感じです。
利用シナリオをひねり出すとすると、プライバシーや著作権的なものが含まれている画像を、再生成することで似たようなクリーンな画像ができあがるというところでしょうか。顔出ししたくないけど、画像は上げたい場合なんかにも使えるかもしれません。
とはいえまだ画像生成側がそこまで指示に従ってくれないので、雰囲気再現ですが。今後画像生成の精度がさらに上がり、またGPT-4Vのプロンプト生成の方も指示をうまくチューンできれば何かに役に立つかもしれないけど、現状特に何か役に立つシナリオは正直あんまり思いつかないけどやってみたかった検証は以上です。
追記
これって下書きから画像を作成できるよね?という指摘があり取り急ぎやってみたものが以下です。
プロンプトは、下書きをリアル画像にして、っていう感じです。
user_prompt = "Write out a prompt for DALL-E to generate the content \
depicted in the image as a hyper-realistic image."
意外にアイディアあるかもですね