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 PNGPNGテキスト層:promptとworkflowチャンクがノードグラフと生成パラメータを保持しており、いずれも署名されていません。
Google Veo MP4コンテナ層:資格情報とツールフィールドが、画像のマーカーセグメントではなくISO base mediaのbox構造に格納されています。

確認できるシグナル

EXIFカメラ時代の規格です。Software、Artist、UserCommentにツール名やAIGCのJSONラベルが残ることがあり、カメラ関連フィールドがまとめて欠けていること自体も弱い手がかりになります。
XMPAdobeの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をローカルに解析します。業務資料や個人の写真が自分の端末に留まるということであり、同時に、結果がサーバーへの往復なしに表示され、大きな動画の処理限界がアップロード上限ではなく手元のハードウェアで決まるということでもあります。

ファイルを層ごとに読む手順

  1. オリジナルから作業する — ツールが書き出した、あるいはプラットフォームからダウンロードした時点のファイルを使います。以降のコピーは層を失っていきます。
  2. まず署名層を確認する — C2PA manifestの有無を調べ、署名状態、信頼状態、宣言されたdigitalSourceTypeを先に読みます。
  3. EXIFとXMPを読む — Software、CreatorTool、Credit、DigitalSourceType、UserCommentにツール名やAIラベルがないか確認します。これらは署名されていません。
  4. PNGテキストチャンクを開く — PNGならtEXt/iTXt/zTXtを読み、prompt、seed、sampler、CFG、モデル、workflow JSONを確認します。
  5. 動画はコンテナをたどる — ftyp、box tree、udta/meta/ilstのencoderとtoolフィールドを読み、続いてビットストリームのSEI markerを探します。

制限

全層をまとめて読むなら完全検出を、見たい層が決まっているなら該当ツールを直接開いてください。

よくある質問

AIツールのメタデータはどこに書かれますか?

ツールと形式によります。署名された来歴はC2PA manifest、説明的なツール名はEXIFとXMP、生成パラメータとワークフローはPNGテキストチャンク、動画レベルの情報はMP4またはMOVコンテナに書かれます。

EXIFにAI情報が見つからないのはなぜですか?

生成パラメータの多くはそこに保存されないからです。EXIFはカメラ向けのタグを扱い、プロンプト、seed、workflowはPNGテキストチャンクに書かれるため、別途解析する必要があります。

AIのメタデータは偽装できますか?

有効なC2PA署名を除くすべての層が、編集も別ファイルへのコピーも可能です。署名状態と信頼状態を説明的なフィールドと分けて報告しているのは、まさにこのためです。

オンラインでメタデータを読むのは安全ですか?

ここではファイルが端末を離れません。解析はブラウザ内で実行されるため、アップロードは発生せず、何も保存されません。

出典と検証の記録