見出し画像

【検証】 画像生成AIのプロンプトで精度が高いのは「文章」or「単語」?

はじめに

こんにちは!
私は新しいツールを使うと、
まず「仕組み」が気になってしまいます。
エンジニアの性でしょうか。。。
画像生成AIも同じで、論文などを読み漁り仕組みを理解した上で
その次に行うのが「検証」です。
今までいくつも画像生成AIでの検証を行なってきたので、
それを記事にします。
そして「画像生成AIの教科書シリーズ」とは別の
「検証シリーズ」として投稿していきます🔬

今回の検証は、プロンプトは文章で入力するべきか?
はたまた、単語をカンマで区切って入力するべきか?
どちらのパターンもよくプロンプト集などで目にします。
どちらが精度を高める上で有効なのか検証しました。
ここでの「精度」とは、意図した画像になっているかということです。

パターン1. 文章で入力

文章

最初は「文章」でプロンプトを入力しました。
ちなみに今回は「望遠鏡で写した森の中の小さな猫」を出力した買ったので、そのようになっていれば、精度が高いとします。
どうでしょう?いい感じだと思います!

パターン2. 単語毎にカンマ区切りで入力

単語をカンマ区切り

次は先程の文章の単語をカンマで区切ってみました。
猫と望遠鏡が描かれていますね笑
「望遠鏡で写した」が反映されていません。
文章よりも精度が落ちました。

パターン3. 句毎にカンマ区切りで入力

句ごとにカンマ区切り

次は句をカンマで区切ってみました。
これも割といい感じです!
「taken with telescope Lens」も反映されています。

パターン4. 修飾語を省いた入力

修飾語を省く

次に「taken with」を省いてみました。
「望遠鏡のレンズ」って言えば、それで写したて
解釈してくれないかなという希望を込めて。。。
しかし、結果はレンズがそのまま描かれてしまいました。
精度は低いです。
低いというかプロンプト通りと言えば、プロンプト通りですが
そこまで意図は汲み取ってくれないので、プロンプトは丁寧に
入力するべきということですね。

検証結果まとめ

うん!文章で入力しましょう!
これは、Stable Diffusion などのテキストエンコーダーなどでも採用されているOpenAIの「CLIP」というモデルの論文でも書かれています。

https://cdn.openai.com/papers/Learning_Transferable_Visual_Models_From_Natural_Language_Supervision.pdf

例えば、今回の「taken with telescope lens」も
「taken」と「with」と「telescope」と「lens」もそれぞれがそれぞれとの
関係を数値化したデータへとなっています。
この修飾語はこの単語を修飾しているなど。
それをカンマで区切ったことで、関係性の数値が変わって
出力結果も変わってしまったのだと推測します。

最後に

最後まで読んで頂きありがとうございました!
この記事がためになりましたら
「スキ」をいただけますと発信の励みになります👍
他にも画像生成AIに関する情報を網羅的に発信しています!
ご興味のある方はフォローお願いします🤲

また、私はAI情報発信者のノーベル氏の無料LINEオープンチャットに所属しております。AIの初学者からヘビーユーザーまで幅広く参加している楽しいコミュニティです!ご興味のある方は下記URLから!


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