マガジン

同じキャラクターを10回生成したら、同じ人物に見えるのは何回か

遊びをつくる

執筆にClaudeを使用しています。

同じ色と視点でそろえた木、宝箱、キツネの素材を、色鉛筆で描いたイラスト。
記事のテーマをもとに制作したAI生成イラスト。

ゲームの主人公の立ち絵を画像生成で作り、翌日に同じ指示文でもう一枚出す場面を考えてみます。髪の分け目が逆になり、目の色が少し違い、上着の襟の形も変わっています。それでも「同じ人だ」と言えるのか、「別人だ」と感じるのか。多くの場合、この判断は気分で決まり、「一貫性が高い」「低い」という言葉だけが残ります。 この記事では、その感覚を回数に置き換えます。同じ指示文で10枚生成し、あらかじめ決めた基準で「同じ人物」と判定できる枚数を数える実験です。結果は使うツールや指示文によって変わるため、ここに答えは書きません。読者が自分の環境で行い、自分の数字を得るための設計書として、準備、手順、記録、読み方、誤りやすい点を順に示します。

この記事の目次
  1. 「同じ人物」を先に定義する
  2. 準備するもの
  3. 10回の生成手順
  4. 記録の取り方と集計
  5. 結果の読み方と誤りやすい点
  6. 次の行動

「同じ人物」を先に定義する

この実験で最も大事なのは、生成する前に「同じ人物に見える」の基準を文章で固定することです。生成結果を見てから基準を決めると、出てきた絵に合わせて甘くも厳しくもなってしまいます。

基準は二段で作ります。

第一段:識別特徴を5つ決める

そのキャラクターを他人と見分ける手がかりを5つ選びます。次は一例です。自分のキャラクターに合わせて置き換えてください。

  1. 髪:色と長さと分け目
  2. 目:色と形(たれ目かつり目か)
  3. 服:主色と、ひと目でわかる意匠(マント、ゴーグルなど)
  4. 持ち物・アクセサリ:杖、帽子、ペンダントなど1点
  5. 頭身:頭と体の比率

各特徴は「一致」か「不一致」の二択で判定できる書き方にします。「髪は短めの黒で、右分け」までなら二択で判定できます。「雰囲気が似ている」は判定できません。

第二段:直感の3段階

特徴が合っていても、見た瞬間に別人に見えることはあります。そこで直感も別に記録します。基準画像と並べて、次の3段階で判定します。

  • 3:同じ人物に見える
  • 2:迷う
  • 1:別人に見える

最後に、何をもって「合格」とするかを決めます。たとえば「5特徴のうち4つ以上が一致し、かつ直感が3」のように、二つの条件を組み合わせます。この数値に正解はありません。主人公か通行人かで、求める厳しさが変わるからです。生成前に紙に書いておきます。

準備するもの

次を揃えます。

  • キャラクター設定書:5つの識別特徴を言葉で書いたもの。
  • 固定の指示文:1文字も変えずに10回使う文章。設定書の内容を含めます。
  • 基準画像:比較の拠り所になる1枚。手描きのラフでも、気に入って採用した生成画像でもかまいません。ただし基準画像も生成物なら、その1枚を10枚の集計には含めません。
  • 生成条件のメモ:使うツール名、モデル名や版、画像サイズ、枚数設定、参照画像の有無、乱数の種(シード)を固定できるかどうか。
  • 保存フォルダと採点シート:後述の記録欄を作った表計算か紙。

条件のメモは軽く見られがちですが、あとで結果を読むときの手がかりになります。ツールは更新されることがあるので、実施した日付も添えます。

なお、アソバースのアバター生成は、1人につき1時間に1回の利用に制限されています。10回連続の実験には向かないので、この実験は普段制作に使っている画像生成ツールで行います。

10回の生成手順

手順の目的は、毎回の条件の差を最小にして、「同じ指示でどれだけ揺れるか」だけを見ることです。

  1. 新しいセッション(新規の会話や新規のプロジェクト)を開きます。会話型のツールでは、前の画像や直前のやり取りが次の生成に影響することがあります。10回すべてを新規の状態で始めると、条件がそろいます。
  2. 固定の指示文を貼り付けます。句読点や語順も含めて変えません。「ここだけ少し直したい」と思っても、この実験の間は我慢します。
  3. 1回の生成で複数枚が出るツールでは、「最初に表示された1枚」だけを採用するなど、採用ルールを先に決めます。気に入ったものを選ぶと、結果が実際より良く見えてしまうからです。
  4. 生成された画像をそのままの設定で保存します。拡大や色補正はしません。
  5. 10回繰り返します。

ファイル名は生成順の連番にしておきます。そのうえで採点の前に、別の名前(ランダムな文字列など)にコピーして順番を隠します。生成順を知っていると、「後半のほうが崩れてきた」といった先入観が入るためです。

記録の取り方と集計

採点は1枚ずつ、基準画像と並べて行います。1枚の記録欄は次のとおりです。

  • 画像の番号、記録内容:隠した名前と、対応する生成順
  • 髪・目・服・持ち物・頭身、記録内容:それぞれ一致=1、不一致=0
  • 直感、記録内容:1〜3
  • メモ、記録内容:不一致の理由を一言(例:「右分けが左分けに」)

採点者は作り手本人だけだと、見慣れた絵に甘くなりがちです。可能なら、キャラクターを知らない人に、基準画像と5つの特徴だけを渡して採点してもらいます。難しい場合は、時間を置いてから採点するだけでも先入観は薄まります。誰が採点したかも記録に残します。

集計は次の3つを出します。

  • 特徴の合格枚数:5特徴のうち基準以上が一致した枚数(10枚中いくつか)
  • 直感3の枚数
  • 特徴ごとの一致率:髪、目、服、持ち物、頭身それぞれの一致数(10枚中いくつか)

手作業でも数えられますが、次の最小のHTMLなら、保存したファイルをブラウザで開いて集計できます。1行に1枚、「番号,髪,目,服,持ち物,頭身,直感」の順に入力します。特徴は1か0、直感は1〜3です。

html
<!doctype html>
<meta charset="utf-8">
<title>一致度の集計</title>
<p>1行に1枚。番号,髪,目,服,持ち物,頭身,直感 の順に入力します。</p>
<textarea id="in" rows="12" cols="48"></textarea>
<p>合格に必要な一致特徴数: <input id="th" type="number" value="4" min="1" max="5"></p>
<button id="go">集計</button>
<pre id="out"></pre>
<script>
const names = ["髪","目","服","持ち物","頭身"];
document.getElementById("go").onclick = () => {
  const rows = document.getElementById("in").value.trim().split("\n")
    .map(l => l.split(",").map(Number)).filter(r => r.length === 7);
  const th = Number(document.getElementById("th").value);
  const sum = r => r.slice(1, 6).reduce((a, b) => a + b, 0);
  const byFeature = rows.filter(r => sum(r) >= th).length;
  const byFeel = rows.filter(r => r[6] === 3).length;
  const both = rows.filter(r => sum(r) >= th && r[6] === 3).length;
  let t = `採点した枚数: ${rows.length}\n`;
  t += `特徴の基準を満たした枚数: ${byFeature}\n`;
  t += `直感が3の枚数: ${byFeel}\n`;
  t += `両方を満たした枚数: ${both}\n\n特徴別の一致数:\n`;
  names.forEach((n, i) => {
    t += `${n}: ${rows.filter(r => r[i + 1] === 1).length}\n`;
  });
  document.getElementById("out").textContent = t;
};
</script>

「両方を満たした枚数」が、題名の問いに対する自分の答えです。

結果の読み方と誤りやすい点

数字を読むときの順番

合格枚数だけを見て終わらせず、次の順で読みます。

  1. 特徴別の一致数を見る:どの特徴が崩れているかが、枚数よりも多くを教えてくれます。たとえば髪や服は安定していて、目の色だけがばらつく、といった偏りがあるかもしれません。
  2. 特徴の基準と直感の差を見る:特徴は合っているのに直感が低い枚数が多いなら、5つの特徴では拾えていない要素(顔の輪郭、表情の癖など)が効いている可能性があります。逆なら、特徴の定義が厳しすぎるのかもしれません。
  3. 不一致のメモを見る:理由が同じ種類に偏っているなら、指示文でその部分の記述を具体化する余地があります。

用途と照らして判断する

合格枚数が少なかったとき、それが問題かどうかは用途で決まります。立ち絵が一枚だけ必要なら、10枚生成して基準を満たしたものを選べば足ります。表情差分を何枚も同じ人物として並べる主人公なら、揺れの大きさがそのまま制作の手間になります。モブ(群衆の一人)なら、揺れは個性として使えるかもしれません。最初に決めた合格基準を、キャラクターの役割ごとに変えてかまいません。

揺れが大きい特徴が見つかったら、次のような対処が考えられます。指示文にその特徴を表す語を足す、参照画像を使えるツールなら基準画像を渡す、あるいは生成後に手描きで修正する、といった方法です。「生成で揃える」か「手で揃える」かの分かれ目を、この実験の数字で判断できます。

10枚という少なさに注意する

10回は、傾向をつかむには足りても、厳密な率を言うには少ない枚数です。たとえば10枚中の数枚の差は、別の日にやり直せば入れ替わる程度の偶然でも起こりえます。二つの条件を比べるなら、同じ実験を2セット行い、結果が近いかどうかで確かめます。1セットの差だけで「この書き方のほうが良い」と決めない姿勢が安全です。

起こりやすい誤り

  • 基準を後から動かす:生成後に「この程度なら同じ人」と甘くしてしまう。基準は紙に書いて固定します。
  • ポーズや背景の違いを人物の違いと混同する:構図が違うだけで別人に見えることがあります。5つの特徴に絞って判定すれば、この影響を減らせます。
  • 指示文をこっそり直す:1語の変更でも別の実験になります。変えたいときは、別のセットとして記録します。
  • 良い画像だけを選ぶ:採用ルールを先に決め、10枚すべてを採点します。
  • 会話の履歴を引き継ぐ:新規セッションを徹底します。
  • ツールの更新に気づかない:日付と版のメモを残します。

発展:条件を1つずつ変える

基準の実験が済んだら、変える条件を1つだけに絞って、もう1セット行います。たとえば、指示文を短くする、特徴の記述を足す、参照画像を付ける、といった具合です。同時に二つ変えると、何が効いたのかわからなくなります。

最後に、完成した画像をゲームに組み込む段階でも、確認すべき点があります。アソバースへ投稿するHTMLやZIPには、アップロード20MiB以内などのサイズ上限があり、素材は相対パスで参照する必要があります。画像を何十枚も使うキャラクターでは、解像度や形式も合わせて検討します。また、生成画像の商用利用や公開の条件はツールごとに定められているので、利用するツールの規約を確認してください。著作権など法的な判断が必要な場合は、専門家や公式情報で確認することをお勧めします。

次の行動

まず、今作っているキャラクターの5つの識別特徴と合格基準を紙に書いてください。次に、固定の指示文で10枚を生成し、ファイル名を隠して採点してみましょう。出た「両方を満たした枚数」と、最も崩れた特徴が、次にプロンプトを直すか、手描きで補うかを決める材料になります。