generated at
実験7: DALL-E3への指示をJSONで行うと、精度は上がるのか?

背景
UdemyでDALL-E3講座を作成しており、上級テクニックのところで、より安定させるテクニックを解説することになった。

その内容を思考する過程で、以下の記事を読んだ
このように、ChatGPTにJSON構造で指示することには確かな価値がある。(主に画像以外での通常タスク)

疑問
DALL-E3では、JSON形式でアウトプットさせると精度が上がるのか?

軽率にJSON構造にする工程を採用してしまうと、JSONに慣れていない人からすると、拒否反応が出てしまう。
慎重に判断する必要がある


実験
こちらの元画像をGPT-4Vに読み込ませ、JSONに抽出してもらった。

以下のJSONを使用した。

GPT-4Vを通して、画像を読み取らせ、このJSONを埋めてもらう。
得られたJSONはこちら
残念ながら、画像で最重要項目の詳細説明が、300word -> 100word程度になってしまった。
これをDALL-E3に打ち込むと、こういう結果だった。

画像のスタイルが大人っぽく、精度はそこまで高くない。
出力にもだいぶ揺らぎがある

画像の詳細説明の文字数が少ないため、きちんと文脈を伝えられなかった可能性がある。
JSONには通常コメントを書き込めないため、以下のようにdescriptionを追加して実験を行った。
しかし同様の結果だった。
結果
これも、画像の詳細説明のvalueは、100wordくらいになってしまった。
DALL-E3の結果はこちら。
似てない。
しかし、出力結果の揺らぎは少ない。


一方、JSONを使わず、画像版ホネホネプロンプトの改良版を使った。
かなり詳細説明が長い(下画像赤かっこ)のプロンプトが得られた。

これでDALL-E3に打ち込むとこういう結果だった。
似ている。揺らぎも少ない。


結論
JSONを無理に使わなくて良い。
Markdownで十分というか、そちらの方が精度が高い。

画像のホネホネプロンプトは、そもそも階層が深くならない。
ネストになりにくいデータ構造をしている。(オブジェクト、サブオブジェクトのような構造になりにくい)
そのため、Markdownで十分だし、何文字以上にしてなどの希望も、こちらの方が柔軟に伝えられる。

yamlや、jsoncにしたらコメントも書き込めるため、結果は異なるかもしれない。
しかしやはり手間がかかるため、このMarkdownの画像版ホネホネプロンプトの改良版で十分。