概要
- Microsoft PaintとPhotosは、ローカル生成AI画像にもサーバー発行GUIDをピクセルに埋め込む
- 画像生成はローカルでも、プロンプトのモデレーションは常にリモートで実施
- GUIDは見えないウォーターマークとして画像に埋め込まれる
- C2PAメタデータも付与され、対応フォーマットでのみ保存可能
- 可視・不可視ウォーターマークは別管理、ユーザー設定で不可視は制御不可
PaintとPhotosのAI画像生成フロー
- Paint と Photos はどちらもローカルAIモデルを搭載
- Cloud・ローカル両方の画像生成をサポート
- プロンプト入力時、必ず リモートサーバー でモデレーションを実施
- モデレーションAPIにプロンプト・スタイル等を送信
- サーバーから GUID(watermarkId) と revisedPrompt 等を受信
- ローカルで画像生成
- Stable Diffusion等のモデルを使い、PC上で画像を生成
- サーバーから受け取った GUID を不可視ウォーターマークとして画像に埋め込む
- ウォーターマークの種類
- 可視ウォーターマーク :Copilotロゴ(設定でON/OFF可能)
- 不可視ウォーターマーク :サーバー発行GUIDをピクセル情報に埋め込む(設定で制御不可)
GUID埋め込みの技術詳細
- Watermarker.dll内の WmkWriteWatermark 関数がGUIDを埋め込み
- 16バイトのGUIDを18バイトメッセージ(0x4c+GUID+チェックサム)に変換
- 144ビットに分解し、画像内の複数ブロックに分散して埋め込む
- 埋め込みはSVD風のブロック処理で、画像の見た目に影響しない不可視型
- 幅・高さ192ピクセル以上の画像のみ対応
- 埋め込み失敗時は画像生成自体をエラー扱い
GUIDの由来とサーバー連携
- プロンプト送信時、サーバーが promptGenerationId と watermarkId(GUID) を発行
- promptGenerationIdは連続リクエストの紐付けにも利用
- containsHumanReferenceで「人物を含むか」も判定
- PaintはwatermarkIdを画像に埋め込み、promptGenerationIdはC2PA署名用に利用
- サーバーは全ての生成リクエストとGUIDを一意にトラッキング可能
C2PAメタデータの付与
- ProvenanceHelper.dll等で C2PA Content Credentials を画像に付与
- PNG, JPEG, GIF, .paint形式でのみC2PA情報を保存
- C2PAメタデータにはwatermarkId, promptGenerationId等が含まれる
- 署名付きで「Microsoft Responsible AIによる水印付き」と明記
ローカル生成でも完全なローカル処理にはならない理由
- 画像生成自体はローカルAIモデルで実行
- しかし プロンプトのモデレーション・GUID発行は常にサーバー側
- 生成画像には必ずサーバー発行のGUIDが不可視で埋め込まれる
- Microsoftは全ての生成画像を一意に追跡可能
まとめ
- Microsoft Paint/PhotosのAI画像生成は ローカル処理とサーバー管理のハイブリッド
- 見えないウォーターマーク(GUID)は ユーザーが制御不可、画像ごとにサーバーで一意発行
- 画像の出所・生成履歴の追跡を意図した設計
- C2PAメタデータによる真正性証明と、不可視ウォーターマークの二重構造
- 完全なローカル生成を望む場合も、 サーバーとの通信が不可避 である点に注意