DALL-E3における最適なプロンプトの考察
背景
今回、様々なパラメーターを調整して実験を行った。
その結果および考察をここにまとめる
結果
GPT-4Vに画像を説明させて得られたプロンプトをそのまま使うと、精度が悪かった。(実験1)
GPT-4Vにコンセプト、構図、スタイルを読み取って得られたプロンプトを使うと、実験1より良い結果が得られた。(実験2)
GPT-4Vに、画像の説明、コンセプト、構図、スタイルを読み取って得られたプロンプトを使うと、実験2より良い結果だった。(実験3)
実験3で得られた画像に、
GPT-4Vでもう一度元画像のフィードバックをかけて画像を作らせると、出力の揺らぎが大きくなった。とても似ている画像から、全く似ていない画像まで得られた。(実験4)
GPT-4Vに、画像の説明、コンセプト、構図、スタイルを読み取らせ、長文で出力するよう強制したプロンプトを使うと、今までで一番精度が良い結果であった。(実験5)
一方で、一部の画像に創作が見られ、画像の説明でハルシネーションを生んでいたことが判明した。(実験5)
GPT-4Vに、画像の説明、コンセプト、構図、スタイルを読み取らせ、短文で出力するように強制したプロンプトを使うと、実験5より画像の精度が悪くなった。(実験6)
DALL-E3に指示する形式をJSON構造にする意義は、少ない結果となった。Markdownで十分。(実験7)
考察
DALL-E3に与えるプロンプトは、短いよりも、長くて具体的であるほど、良い精度になると考えられる。
しかしながら、あまりに長くしすぎると、ハルシネーションがうまれる余地ができてしまう。
そのため、与えるプロンプトの指示を微調整して、得られた画像の結果と比較すると良い。
ハルシネーションは画像の説明を求める出力で見られた。基本的にはここの文字数を可能な限り長くしたいが、嘘が見られたら、文字数を少なくすれば良い。
現状ベストと考えられるワークフローとしては以下の通り
対象となる画像を添付 (GPT-4V)
>この画像を読み取り、以下の項目を抽出してそれぞれ英語で埋めてください。
> この抽出結果は、画像生成AIの入力データ、つまりプロンプトとして、類似画像を生成するために使用します。
> 該当する要素がない場合は空欄でお願いします。例えば風景写真で人物描写が無い場合は、服装や髪型などは無視します。
> また、以下の情報以外に、画像に特筆すべき要素があれば補足してください。
> # この画像の詳細説明 (must be described with more than 300 words)
> # この画像のコンセプト (each element must be described with more than 100 words)
> ・ジャンル (例:肖像画、風景、ファッション、食品、旅行など)
> ・行動/ポーズ (例:座っている、歌っている、走っている)
> ・シチュエーション (例:時間帯、天気、季節、シーンなど)
> # この画像のスタイル (each element must be described with more than 100 words)
> ・画風 (例:印象派、写実主義、ロマン主義など)
> ・技法 (例:水彩画、油絵、フラットデザイン、ピクセルアートなど)
> # この画像の構図 (each element should be described with more than 100 words)
> ・スケールと比率 (例:Forced Perspective)
> ・角度と視点 (例:ワームズアイ・ビュー、バードビュー)
> ・色とコントラスト (例:カラーコントラスト)
返ってきた出力をコピーし、新たなスレッドのDALL-E3で貼り付ける。
ハルシネーションをチェック。勝手に変なものが画像に作られていないか?
作られていたら、画像の詳細説明の文字数を減らし、再度プロンプトを打ちこむ
得られたものをDALL-E3に貼り付け、画像を確認
どうしても満足がいく画像が得られない場合は、
GPT-4Vフィードバックを行う(実験4を参照)
これにより、画像出力に幅を持たせることができる
大当たりから大外れまで乱数が大きくなるため、数回出力を繰り返す