世界を動かす技術を、日本語で。

MS PaintとPhotosがローカル生成された出力にもGUIDで目に見えない透かしを追加する

2026年8月25日原文(xusheng.dev)

概要

  • Microsoft PaintとPhotosは、ローカル生成AI画像にもサーバー発行GUIDをピクセルに埋め込む
  • 画像生成はローカルでも、プロンプトのモデレーションは常にリモートで実施
  • GUIDは見えないウォーターマークとして画像に埋め込まれる
  • C2PAメタデータも付与され、対応フォーマットでのみ保存可能
  • 可視・不可視ウォーターマークは別管理、ユーザー設定で不可視は制御不可

PaintとPhotosのAI画像生成フロー

  • PaintPhotos はどちらもローカル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の由来とサーバー連携

  • プロンプト送信時、サーバーが promptGenerationIdwatermarkId(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メタデータによる真正性証明と、不可視ウォーターマークの二重構造
  • 完全なローカル生成を望む場合も、 サーバーとの通信が不可避 である点に注意

Hackerたちの意見

AI生成テキストの警告(私は提出したけど、著者ではないんだけど)、どうやらMS PaintとMS Photosは、AIで加工された写真に対して、目に見える(オフにできる)ウォーターマークと、目に見えない(無効にできず、ユーザーには気づかれずにバックグラウンドで行われる)ウォーターマークを追加するみたい。ローカルモデルを使っても同じらしい。AI強化の背景削除とかにもこれが適用されるかは不明だけど、目に見えないウォーターマークは画像のピクセルとメタデータの両方に埋め込まれていて、どちらにも使われた正確なプロンプトや元のデバイス/ユーザーにリンクできるGUIDが含まれてる。次のステップは、watermarker.dllを(署名された)ノーオプションのシムやMITMでAPIコールを置き換えて、自分のデバイス/アカウントにリンクされてない(nil?)GUIDを使えるか探ることだね。言うまでもないけど、私の大きな懸念は「この画像がAIで生成されたと特定できる」ことじゃなくて、「デジタルの黄色いプリンタードットが強制されて、しかもそれが正確なユーザー/デバイス/時間/場所/ドキュメントなどを特定できる」ことなんだ。プライバシーの幻想が完全に壊されてしまう。

警告の意味がよくわからない。

GUIDの部分についてもっと知りたいな。どれくらい簡単に匿名性を解除できるのかも気になる。でも、もしAI生成の時だけで、すべての画像には適用されないなら、その部分は簡単に回避できそうじゃない?それに、プリンターが何を印刷してもそうするよりはマシだね。

AI生成テキストの警告 これ、私には間違ってるように思えるんだけど。箇条書きの使用に基づいてるの?

もっといい選択肢があるよ。コンピュータを使うのをやめるか、使うならLinuxを使うことだね。今、すべてが私たちを監視している。文字通り、すべてが。最近、AIによるプライバシー侵害のクソを避けるために、MacBook M1をSonomaにダウングレードしたよ。

この前、誤ってこれをトリガーしちゃって、Paint.netをインストールしたんだ。自分が撮ったスクリーンショットを貼り付けて、サイズを変更したかっただけなのに。「AIで作成された」と表示されるバナーが出てきたよ。

「paint.net」って名前のアプリが、インターネットに接続されているときにAIが使われたかどうかを判断できるのは驚くべきことじゃないと思う。(10年以上前にPaint.netを使ったことがあるよ。)

プライバシーの懸念は理解できるし、Microsoftが自社のツールがこういうことをしているかもしれないと言うのは当然だよね。でも、いつか振り返って「もっと人間の本物さを保つために何かをしなかったのか」と思う日が来るんじゃないかと心配してる。「AIで加工された」と書かれたスタンプは、デジタルの系譜ツールの一部であるべきだと思う。

それが少しでも安心材料になるなら、AIを使ってミーム画像を生成して、それをPaintに貼り付けて面白いテキストを追加することができるよ。そうすれば、両方の良いところを得られるね。

AIにウォーターマークを付けることはできるけど、誰がやったかは漏らさないよ。それって、ユーザートラッキングのもう一つのレイヤーを追加するだけだから。

これのAIの部分はただの赤いヘリングだよ。本当の問題は、君が作る画像に秘密裏にユニークな識別子を追加していることなんだ。もし誰かが君のミームを気に入らなかったら、Microsoftに著作権の召喚状を送るだけで、君のフルネーム、住所、メールアドレス、電話番号、そしてMicrosoftアカウントに関連するその他のデータをすぐに手に入れられる。年齢確認と同じで、これはインターネットの匿名性に対する戦争の新たな武器だね。

AIじゃない画像にも反応するのかな?少なくともその投稿には書いてないね。

Hacker Newsで議論の続きを見る