見出し画像

Difyで作成した複数モデル対応画像生成アプリに、プロンプト生成機能を追加する

前回は、Difyで複数モデル(DALL-E 3, Stable Diffusion 3, FLUX.1, ideogram 2.0)を切替えながら画像生成ができる、自分専用のWebアプリを作成しましたが、結構便利に使っています。

しかし、まだ具体的なイメージがない時に、プロンプトを一から考えるのは結構面倒なので、ある程度GPT-4oにサンプルのプロンプト作ってもらって、修正しながら狙ったイメージに近づけていく方が楽です。

そのため、上記のWebアプリに、単語や簡単な文章を入力しただけでも、GPT-4oが情景や構図などを補足して、画像生成AI用のプロンプトを英語で生成する機能を追加しました。

ワークローの全体像、プロンプト生成機能は最下段

プロンプトは、以下の記事を参考に、GPT-4oに被写体や背景、構図、装飾語などを補足するよう、システムメッセージで指示します。もっとも、ChatGPTのDALL-E 3でも、内部ではこの様な処理を行っているようですが。

システムメッセージは、作成させたい画像の用途や種類によって、工夫の余地があると思いますので、今後も試行錯誤して、よりベターなものを目指すことにします。

【システムメッセージの例】
あなたは、画像生成AI用のプロンプトを作成する、最高で比類なき専門家です。
* ユーザーが画像をアップロードしている時は、その画像を詳細に解析して、プロンプトを生成してください。
* プロンプトは、以下の点に留意して作成してください。
- 絵画のスタイルや雰囲気を指定する
  (例: フォトリアルな写真、アニメ風のイラスト、油絵風の風景画、水彩画タッチの風景画、ゴシック調の建築物など)
- 被写体を詳細に記述する
  (例: 青い瞳を持つ金髪の少女、赤い帽子をかぶった犬、夕焼けの海に浮かぶ帆船など) 
- 背景や構図を具体的に指示する
  (例: 森の中、街並み、俯瞰視点からの風景など)
- プロンプトに修飾語句を効果的に使う
  (形容詞の例: 形容詞: 美しい、壮大、幻想的な、神秘的な、暖色系の、寒色系の)
  (副詞の例: 明るく、静かに、激しく、ゆっくりと、幻想的に、現実的に)
  (名詞の例: 花、山、星、雲、太陽、月)
* プロンプトは必ず英語で生成してください。
* また、生成したプロンプト以外の文章は絶対に出力しないでください。

完成したWeアプリで「プロンプト生成(英語)」を選択し、単語や簡単な文章(ここでは「オフィスのインテリア」)を入力するだけで、具体的な情景、色調や材質、家具などが記述された、画像生成AI用のプロンプトが英語で出力されます。

Webアプリで「プロンプト生成(英語)」を選択
画像生成AI用のプロンプトが英語で出力される

今度は、画像生成モデル(ここでは「Ideogram 2.o Turbo」)を選択し、先ほど生成したプロンプトを入力をコピー&ペーストすれば、プロンプトの内容にマッチした高品質なオフィスのインテリアイメージが出力されます。

そして、生成された画像を見ながらプロンプトの修正を繰り返すことで、狙ったイメージに近づけていくようなワークフローができました。

画像生成モデル「Ideogram 2.o Turbo」を選択
プロンプトの内容にマッチしたイメージが出力された
生成されたインテリアイメージを拡大したところ

今度は、参考にしたいイメージがあって、それと似たような画像を生成させたいといった場合のシナリオです。何だか、美容室のヘアカタログみたいですがw

先ほどは単語や簡単な文章を入力しましたが、今回はGPT-4oのVision機能を使用し、アップロードした参考画像をGPT-4oに解析させ、参考画像を再現するような画像生成AI用のプロンプトを作成させます。

参照画像の例、このようなイメージの画像を生成したい
参考画像をアップロードしているところ
参照画像を解析してプロンプトが生成された

先ほどと同じように、参照画像を解析して作成されたプロンプトをコピー&ペーストして、「ideogram 2.0」に画像を生成させます。

参照画像と似た雰囲気の画像が生成された
「Ideogram 2.0」で生成された画像を拡大したところ

参照元の画像と見比べると、似たような雰囲気はありますが、違っている箇所もたくさんあります。こちらも、プロンプトを修正しながら狙ったイメージに近づけていきます。 

同様のことは、Webサイトを渡り歩きながら、手動で行うこともできますが、一つのWebアプリ上で、ある程度ワークフローが完結するので楽です。

厳密にデザインを制御する必要がある場合は、ControlNetなど、別の手法と組み合わせる必要がありますが、そうすると手軽さが失われるので、設計初期段階で、ステークホルダーとの間でデザインイメージを共有するような使い方が良いのではないかと思います。

この記事が気に入ったらサポートをしてみませんか?