マガジン

生成の指示を記録する:同じ絵をもう一度作れるか

遊びをつくる

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

机上の二つの端末の間に、小さなゲームの駒と記録カードが並ぶイラスト。
記事のテーマをもとに制作したAI生成イメージ。実際のゲーム画面ではありません。

ゲームのタイトル背景を、画像生成で作った場面を考えてみます。夜の海辺に小さな灯台が立つ、気に入った一枚が手元にあります。数週間後、続編のために「同じ雰囲気の別カット」が必要になりました。ところが、指示文はチャット欄に流れてしまい、どのモデルを使ったかも、サイズをいくつにしたかも思い出せません。似た言葉を打ち直しても、出てくるのは別の絵です。 この記事で確かめるのは、自分で記録した項目だけを頼りに、どこまで同じ絵に近づけるかという問いです。結果は使うツールによって変わるため、ここでは書きません。代わりに、記録の項目、再現の手順、結果の読み方、起こりやすい誤りを、読者が自分で実験できる形で示します。

この記事の目次
  1. この実験で確かめる問い
  2. 準備するもの
  3. 手順
  4. 結果の読み方
  5. 誤りやすい点
  6. 次の行動

この実験で確かめる問い

先に「同じ」の意味を決めます。ここが曖昧だと、どんな結果でも「だいたい同じ」と言えてしまうためです。次の3段階で考えます。

  • 段階1:ほぼ完全一致。 同じ画素サイズの2枚を重ねて差分を取ったとき、ほとんど差が見えない状態です。
  • 段階2:構図と要素の一致。 灯台の位置、水平線の高さ、月の有無など、初回の画像から書き出した要素がそろっている状態です。
  • 段階3:雰囲気の一致。 細部は違っても、並べると同じシリーズに見える状態です。

問いは三つに分けます。

  1. 同じ記録で何度か生成したとき、ツール自身のブレ幅はどの段階に収まるか。
  2. 記録を見て時間をおいて再現すると、どの段階まで届くか。
  3. 記録から一項目を抜くと、どの項目で大きく崩れるか。

3番目が分かると、記録のうち「絶対に残す項目」と「あれば便利な項目」を分けられます。

準備するもの

道具と題材

用意するのは次のものです。

  • 普段使っている画像生成ツールを一つ(途中で替えません)
  • 保存用のフォルダ一つ(生成した画像と記録ファイルを同じ場所に置きます)
  • 小さな題材一つ(タイトル背景、キャラクターの立ち絵など、要素の少ないもの)
  • 手元で画像を並べて見られる環境(ブラウザで十分です)

題材は欲張らず、要素を5〜8個で言い切れるものにします。要素が多いほど、どこで崩れたかが見えなくなります。

記録する項目

生成の直後に、次の項目を記録します。ツールによって存在しない項目もあるため、その場合は「なし」または「画面に表示されない」と書きます。空欄にすると、後で書き忘れと区別がつきません。

  • ツール名とモデル名、残す理由:モデルが違えば同じ指示でも別の絵になるためです
  • 生成日、残す理由:更新や提供終了があったとき、どの時期の版か分かるためです
  • 指示文の全文、残す理由:一語の違いが結果を変えうるため、要約せず貼り付けます
  • 除外指示、残す理由:出したくない要素の指定も絵を左右するためです
  • seed(乱数の種)、残す理由:指定できるツールでは、再現性を左右する値です
  • サイズと比率、残す理由:構図が変わるため、画素数まで書きます
  • スタイルなどの設定値、残す理由:画面上のつまみやプリセットも条件になるためです
  • 参照画像、残す理由:使ったかどうかと、そのファイル名を残します
  • 後加工、残す理由:トリミングや色調整など、手作業の内容を書きます
  • 出力ファイル名、残す理由:記録と画像を結びつけるためです

seedは、指定できるツールもあれば、内部で決まって表示されないツールもあります。ここは使うツールの案内で確認します。

記録はJSONなど機械で読める形にしておくと、後から並べて見比べやすくなります。次は最小の雛形です。

json
{
  "id": "title-bg-001",
  "date": "2026-10-22",
  "tool": "ツール名",
  "model": "モデル名と表示されたバージョン",
  "prompt": "指示文の全文",
  "negative": "除外指示(なければ空)",
  "seed": null,
  "size": "1024x1024",
  "settings": { "style": "", "other": "" },
  "reference": "参照画像のファイル名(なければ空)",
  "postprocess": "トリミング、色調整など手作業の内容",
  "output": "title-bg-001.png"
}

seed が null のときは、「指定できなかった」のか「記録し忘れた」のかを other に書き分けます。

要素チェックリスト

初回の画像を見て、含まれる要素を5〜8個、先に文章で書き出します。たとえば次のようにします。

  • 画面右寄りに灯台が一つある
  • 水平線は画面の下から3分の1あたり
  • 空は暗い青で、月は見えない
  • 手前に岩場がある

この一覧が、段階2の採点基準になります。再現画像を見てから基準を作ると、都合のよい基準になるので、必ず先に作ります。

手順

1. 初回の生成と保存

題材の指示文を作り、記録をつけながら生成します。気に入った画像を一枚選び、その一枚の記録を確定させます。選ばなかった候補の枚数も other に書いておくと、後で「何枚目で出たか」が分かります。

2. 同じ記録での連続生成(条件A)

確定した記録をそのまま入力し、続けて3回以上生成します。これは「記録が完全でも、ツールが毎回違う絵を出すか」を測る条件で、ツール自身のブレ幅の目安になります。seedが固定できるなら固定し、固定できないならその旨を記録します。

3. 時間をおいた再現(条件B)

数日から1週間ほどあけます。その間は元の画面やチャット履歴を見ません。記録ファイルだけを開き、書かれた通りに入力して3回以上生成します。可能なら、別の人に記録だけを渡して作ってもらうと、書いた本人にしか通じない省略が見つかります。

4. 項目を一つ抜く(条件C)

記録から一項目だけを抜いて生成します。抜く候補は、除外指示、seed、スタイル設定、サイズ、モデル指定などです。抜く項目は一回につき一つにします。二つ同時に抜くと、どちらが原因か分からなくなります。各条件で3回以上生成します。

5. 記録と比較

画像はすべて同じ画素サイズの形式で保存し、ファイル名に条件名と通し番号を入れます(例:B-2.png)。比較は次の二つの方法で行います。

  • 要素チェックリストで、各画像に何個の要素があるかを数える。
  • 画像を2枚重ねて差分を見る。

差分を見る小さなページは、次のHTMLをファイルにして開くだけで動きます。外部通信はなく、画像はブラウザ内で表示されるだけです。

html
<!doctype html>
<meta charset="utf-8">
<title>画像の重ね比較</title>
<input type="file" id="a" accept="image/*">
<input type="file" id="b" accept="image/*">
<label><input type="checkbox" id="d"> 差分表示</label>
<div style="position:relative;display:inline-block;margin-top:8px">
  <img id="ia" style="display:block;max-width:480px">
  <img id="ib" style="position:absolute;left:0;top:0;max-width:480px">
</div>
<script>
const $ = id => document.getElementById(id);
function load(input, img) {
  input.onchange = () => {
    const f = input.files[0];
    if (f) img.src = URL.createObjectURL(f);
  };
}
load($('a'), $('ia'));
load($('b'), $('ib'));
$('d').onchange = e => {
  $('ib').style.mixBlendMode = e.target.checked ? 'difference' : 'normal';
};
</script>

差分表示では、同じ部分が黒く、違う部分が明るく見えます。同じ画素サイズの画像どうしで使います。サイズが違うと全体がずれて、比較になりません。

結果の読み方

条件A、B、Cの結果を、次の表の考え方で読みます。

  • A同士が毎回大きく違う、読み取れること:記録が完全でも、ツール側のブレが大きい可能性があります、次の判断:目標を段階1から段階2、3へ下げ、気に入った画像そのものを素材として保管します
  • A同士が近く、Bも近い、読み取れること:記録が効いています、次の判断:現在の項目を、そのまま記録の標準にします
  • A同士は近いが、Bだけ離れる、読み取れること:記録に書かれていない条件が効いています、次の判断:書き忘れた設定、後加工、モデルの更新を疑います
  • Cで特定の項目を抜くと崩れる、読み取れること:その項目は必須です、次の判断:記録の先頭に置き、必須と明記します
  • Cで抜いても変化が見えない、読み取れること:その項目は影響が小さい可能性があります、次の判断:3回では偶然もあるため、回数を増やして確かめます

判断では、段階ごとに別々に採点します。たとえば「段階2の要素は8個中何個」「段階3は並べて同じシリーズに見えるか」を、条件ごとに表にします。段階3は主観が入るため、題材を知らない人に、初回画像と再現画像を混ぜて見せ、同じ組に見えるものを選んでもらうと偏りを減らせます。

もう一つ見るべき点があります。ツールのモデルが更新されたり、提供が終わったりすると、記録が完全でも同じ絵は作れなくなりえます。条件Bの結果がよくても安心せず、気に入った画像そのものは必ず元のファイルで保管してください。記録は「再現の保証」というより、「近づくための地図」です。

誤りやすい点

  • 記録を後からきれいに書き直す。 実際に打った文でなく、整えた文を記録すると、再現の根拠が失われます。貼り付けで残します。
  • 手作業の後加工を書かない。 切り抜きや色調整を忘れると、条件Bで原因が分かりません。
  • 画像のメタデータに頼る。 形式変換や書き出しの際に、埋め込み情報が消える場合があります。記録は画像とは別のファイルで持ちます。
  • 採点基準を後から決める。 結果を見てから「この程度なら同じ」と決めると、都合のよい判定になります。
  • 1回で判断する。 生成はばらつきます。各条件3回以上は最低限です。
  • 機密や個人情報を指示文に入れる。 記録は残る前提のものです。後述のように、素材と一緒に外へ出る可能性もあるため、公開して困る語は入れません。
  • 利用条件の確認を省く。 生成物の商用利用や公開の可否は、ツールごとの規約で決まります。断定せず、使うツールの公式の案内で確認してください。

次の行動

まず、手元にある生成画像を一枚選び、この記事の雛形で記録を一つ書いてみてください。書けない項目がいくつあるかを数えるだけでも、普段の記録の抜けが見えます。次に、同じ記録で3回生成して、段階1から3のどこに収まるかを確かめてみてください。

アソバースへゲームを投稿するときは、画像素材をHTMLと同じZIPに入れ、相対パスで読み込む形になります(ZIPは20MiB以内などの上限があります)。記録ファイルを同じZIPに入れるかは任意です。入れる場合は、公開してよい内容だけを書いたものにしてください。公開範囲の細部は、投稿画面の案内で確認するのが確実です。