はじめに
架空の科学者をたくさん生成してみたところ、同じような顔ばかりが出力されてしまいました。そこで顔の多様性の評価方法を先に整え、顔埋め込みによる batch_diversity_score が感覚に合うことを確認しました。
この指標を前提として、国籍・時代・年齢・性別を固定しても、プロンプトだけで顔をバラけさせられるかを検証しました。
検証条件
- デモグラフィック固定: 日本人女性 / 55歳 / 近代前期(1920年代)
- 枚数: 8枚
- 画像生成:
gpt-image-1.5(1024x1024) - 評価: ArcFace(InsightFace
buffalo_l)の顔埋め込みによるbatch_diversity_score(1 − 平均ペアワイズコサイン類似度)
比較対象は次のとおりです。
| 基準 | batch_diversity_score |
|---|---|
| 目標 | 0.9 |
| 実在顔ベースライン(同国籍・同年代の日本人女性著名人10名) | 0.963 |
チューニング内容(9試行)
gpt-5.4 にプロンプトを試行錯誤させました。
スタートラインの 0.683 から始め、プロンプトを9回試行して 0.706 まで上げました。試行ごとのスコアは次のとおりです。
| 試行 | batch_diversity_score | メモ |
|---|---|---|
| 1 | 0.683 | スタートライン |
| 2 | 0.568 | 構造変更で悪化(骨格ブループリントと個別顔パーツの矛盾) |
| 3 | 0.640 | |
| 4 | 0.562 | 構造変更で悪化 |
| 5 | 0.661 | |
| 6 | 0.694 | |
| 7 | 0.620 | |
| 8 | 0.601 | |
| 9 | 0.706 | 最良(元の verbose な構造を維持し、改善要素だけ追加) |
スタートラインと比べた主な変更点は次のとおりです。
-
顔の骨格ブループリント: 縦長楕円・丸顔・四角・逆三角・洋梨・ひし形など12種の骨格記述に、縦横比の数値(例:
height:width ≈ 2.5:1)を添えて明示 - キャラクターアーキタイプ: 「長年野外調査をしてきた風化した顔」「学者一家出身の気品ある顔」など12種をプロンプト冒頭で分岐し、モデルに異なる人物像を想起させる
- 顔パーツの可変記述: 目の形状7種・鼻の形状6種を追加し、東アジアの目を固定テンプレートから可変記述へ変更
-
構図・画材の拡張: 近代前期の画材・照明・背景・構図・ポーズ・表情を各3→8項目に拡張。画材は英語訳(
Oil painting portraitなど)で明示 - 肌色の拡張: 選択肢を5→8種へ
- 地域定型への逸脱指示: 英語プロンプトで「民族平均から逸脱した骨格」であることを明記
効いた施策と効かなかった施策は次のとおりです。
- 有効だった: ②のアーキタイプ追加と、④の構図・画材・照明・背景の候補拡張・画材の英語化。方針としては、元の verbose なプロンプト構造を維持したまま改善要素だけ足すのが良かった
- 逆効果だった: ③の目・鼻の可変記述を、①の骨格ブループリントと独立に足してプロンプト内で矛盾させる形(試行2で 0.683 → 0.568 に低下)
- 手続きの工夫: 3候補選択(1人につき3枚生成し、最多様な組み合わせを選ぶ)で +0.01〜+0.04
なお、①のブループリントはベース構造そのもので、⑤⑥(肌色拡張・逸脱指示)は今回の試行では単体の効果を切り分けられていないため、有効・無効の判定はしていません。
最終的なプロンプトの該当部分は、たとえば次のような形です。
PORTRAIT OF A 55-YEAR-OLD WOMAN WITH ... COMPLEXION. Oil painting portrait.
She has the weathered, sun-hardened face of someone who spent decades doing fieldwork outdoors.
FACE SHAPE AND STRUCTURE: VERY LONG NARROW HORSE FACE (height:width ≈ 2.5:1 — EXCEPTIONALLY ELONGATED) ...
CRITICAL: Render EXACTLY this face shape with the specified proportions — do NOT default to an average oval face.
This individual has an UNUSUAL face shape that DEVIATES from their ethnic average.
結果
| 方式 | batch_diversity_score |
|---|---|
| 試行9(最良) | 0.706 |
| 実在顔ベースライン(日本人女性著名人10名) | 0.963 |
| 目標 | 0.9 |
補足: 実験時の画像は紛失したため、この8枚は試行9と同じ条件(当時のプロンプト生成コード、3候補選択、gpt-image-1.5)で再生成した最終画像です。再生成セットのスコアは 0.696 でした(元実験の 0.706 とほぼ同水準)。
改善はしましたが、目標の 0.9 には大きく届かず、0.706 付近がプロンプトだけの上限という結果になりました。8枚・28ペアの違いが1個の平均値に潰れるため、目視で個体差が出ていてもスコアに現れにくい点には注意が必要です。
考察
- gpt-image-1.5 の同一デモグラフィックに対する事前分布が強すぎて、国籍・時代・年齢・性別を固定すると、生成結果が平均顔に強く引き寄せられるのだと思われます。
- プロンプトで増やせるのは髪型・表情・構図・画材などの差が主で、骨格レベルの差は限定的だったためArcFace埋め込みの距離に限界があったのかもしれません。
- 顔をバラけさせようとすると属性の「典型らしさ」も犠牲になりがちで、多様性と属性準拠はトレードオフにあります。
- プロンプトはテキストで骨格を指示するしかなく、モデルの事前分布には勝てません。そこで次は、画像から骨格を注入する i2i だとどうなるか試したいと思いました。
