AI画像のメタデータ:証拠は実際どこに書かれているか
メタデータはひとつの場所ではなく複数の層に分かれており、どの層かを見分けられるかで、その発見にどれだけの重みを置けるかが決まります。1枚の画像や1本の動画が、署名済みのC2PA manifest、説明的なEXIF・XMPフィールド、生成パラメータを保持するPNGテキストチャンク、そしてMP4/MOVのコンテナ情報を同時に持っていることもあります。記録される内容も、改ざんの容易さも、共有の過程で消えるまでの早さも、層ごとに違います。ここではパーサーが実際に読む順序で説明します。
結論:署名された来歴を先に、説明的なフィールドは後で
まずC2PA manifestを読んでください。暗号学的に完全性を検証できる唯一の層だからです。次にEXIFとXMP——プラットフォーム名やAIラベルがよく現れますが、誰でも書き換えられます。PNGテキストチャンクはStable Diffusion系がプロンプトとワークフローを保存する場所で、動画ではコンテナのメタデータが同じ役割を担います。署名より下の層はすべて、証明ではなく手がかりです。
各層に対応する実サンプル
| Adobe Firefly JPEG | 署名層:有効なC2PA manifestがdigitalSourceType = trainedAlgorithmicMediaを宣言しています。証明書が信頼リストにないため、trustedではなくvalidとして報告されます。 |
|---|---|
| ComfyUI / Stable Diffusion XL PNG | PNGテキスト層:promptとworkflowチャンクがノードグラフと生成パラメータを保持しており、いずれも署名されていません。 |
| Google Veo MP4 | コンテナ層:資格情報とツールフィールドが、画像のマーカーセグメントではなくISO base mediaのbox構造に格納されています。 |
確認できるシグナル
| EXIF | カメラ時代の規格です。Software、Artist、UserCommentにツール名やAIGCのJSONラベルが残ることがあり、カメラ関連フィールドがまとめて欠けていること自体も弱い手がかりになります。 |
|---|---|
| XMP | AdobeのXMLメタデータです。CreatorTool、Credit、DigitalSourceTypeは、オリジナルの書き出しが残っていれば生成ツールを示す可能性が最も高いフィールドです。 |
| C2PA | 署名層。JUMBFとして直列化され、形式ごとに埋め込まれます——JPEGはAPP11セグメント、PNGは専用チャンク、MP4はbox。 |
| PNGテキストチャンク | tEXt、iTXt、zTXtは任意のキー・値の文字列を受け入れます。プロンプト、seed、sampler、完全なworkflow JSONがEXIFではなくここに入るのはそのためです。 |
| MP4 / MOVコンテナ | ftyp brand、box tree、udta/meta/ilst、encoder、tool、softwareの各エントリに加え、AIGC文字列とビットストリーム内のSEI markerです。 |
なぜ生成パラメータはEXIFの外にあるのか
EXIFはカメラのために設計された規格で、露出、絞り、ISO、レンズといった固定タグの集合です。複数行のプロンプトや直列化されたノードグラフは、その形に収まりません。そこでStable Diffusionのエコシステムは、任意のキー・値文字列を受け入れるPNGテキストチャンクに書き込むようになりました。この分野で最も多い誤解がここにあります——「ComfyUI EXIF」や「PNG info」で探されている情報は、ほぼすべてカメラタグではなくテキストチャンクです。実務上の影響は明確で、EXIFしか解析しないツールは、読める証拠が詰まったファイルに対して「空」と表示してしまいます。
各層が消えるまでの早さは違う
層ごとに脆弱さが異なります。順序を知っておくと、「何も出ない」という結果を正しく解釈できます。
- チャットアプリ:PNGテキストチャンクが最初に消え、XMPの大部分のフィールドとEXIFのGPSデータも失われます。
- SNSのトランスコード:EXIF、C2PA manifest、XMP CreatorTool、すべての生成パラメータが一度に消えるのが典型です。
- スクリーンショットと画面録画:オリジナルは何も残らず、キャプチャツール自身のメタデータだけが入ります。
- 再書き出し・別名保存:来歴フィールドが失われ、新しいソフトウェアが無関係なEXIFを上書きすることもあります。
ファイルを渡さずにメタデータを読む
メタデータの確認は、すでに手元にあるバイト列に対する読み取り専用の操作です。技術的にアップロードが必要な理由はありません。AICheck365はWebAssemblyにコンパイルされたRustで、EXIF、XMP、C2PA、PNGチャンク、MP4 boxをローカルに解析します。業務資料や個人の写真が自分の端末に留まるということであり、同時に、結果がサーバーへの往復なしに表示され、大きな動画の処理限界がアップロード上限ではなく手元のハードウェアで決まるということでもあります。
ファイルを層ごとに読む手順
- オリジナルから作業する — ツールが書き出した、あるいはプラットフォームからダウンロードした時点のファイルを使います。以降のコピーは層を失っていきます。
- まず署名層を確認する — C2PA manifestの有無を調べ、署名状態、信頼状態、宣言されたdigitalSourceTypeを先に読みます。
- EXIFとXMPを読む — Software、CreatorTool、Credit、DigitalSourceType、UserCommentにツール名やAIラベルがないか確認します。これらは署名されていません。
- PNGテキストチャンクを開く — PNGならtEXt/iTXt/zTXtを読み、prompt、seed、sampler、CFG、モデル、workflow JSONを確認します。
- 動画はコンテナをたどる — ftyp、box tree、udta/meta/ilstのencoderとtoolフィールドを読み、続いてビットストリームのSEI markerを探します。
制限
- 署名済みのC2PA manifest以外はすべて、編集も削除も、無関係なファイルへのコピーも可能です。
- 共有、トランスコード、スクリーンショット、再書き出しは、通常PNGテキストから順に各層を削っていきます。
- メタデータがないことは人間による制作の証拠ではなく、このコピーに読めるものが残っていないという意味にすぎません。
- フィールド名はツールやバージョンによって異なるため、すべての値を統一されたラベルに正規化できるわけではありません。
全層をまとめて読むなら完全検出を、見たい層が決まっているなら該当ツールを直接開いてください。
よくある質問
AIツールのメタデータはどこに書かれますか?
ツールと形式によります。署名された来歴はC2PA manifest、説明的なツール名はEXIFとXMP、生成パラメータとワークフローはPNGテキストチャンク、動画レベルの情報はMP4またはMOVコンテナに書かれます。
EXIFにAI情報が見つからないのはなぜですか?
生成パラメータの多くはそこに保存されないからです。EXIFはカメラ向けのタグを扱い、プロンプト、seed、workflowはPNGテキストチャンクに書かれるため、別途解析する必要があります。
AIのメタデータは偽装できますか?
有効なC2PA署名を除くすべての層が、編集も別ファイルへのコピーも可能です。署名状態と信頼状態を説明的なフィールドと分けて報告しているのは、まさにこのためです。
オンラインでメタデータを読むのは安全ですか?
ここではファイルが端末を離れません。解析はブラウザ内で実行されるため、アップロードは発生せず、何も保存されません。
出典と検証の記録
- AICheck365の公開サンプル記録 — サンプルの出所、テスト日、観察されたシグナルと既知の制限。
- W3C PNG 第3版 — PNGチャンクとテキストチャンク形式の標準リファレンス。
- C2PA 技術仕様 2.2 — manifestの構造と、形式ごとの資格情報の埋め込み方。
- IPTC Digital Source Type 語彙 — trainedAlgorithmicMediaなど統制語の定義。
- AICheck365の検査方法論 — 各層の重み付けと報告方法。