Microsoft Paint 和 Photos 隐形水印分析

Microsoft Paint 和 Photos 会将服务器颁发的 GUID 嵌入 AI 生成图像的像素中,以确保来源可追溯性,即使图像生成过程完全在设备本地进行。该机制通过远程审核服务器,将最终图像与特定提示和用户账户关联起来,从而在追踪目的上绕过了生成过程的“本地”特性。

远程审核与 GUID 发放

与用户对本地生成的感知相反,该过程并非完全离线。在 Copilot+ PC 上运行本地 Stable Diffusion 模型之前,应用程序会将用户的提示和风格发送至 Microsoft 审核服务器(/v1/paint-cocreator/moderate-prompt)。

服务器返回的 JSON 响应包含:

  • 一个 修订后的提示,供本地模型使用。
  • 一个 promptGenerationId(GUID)。
  • 一个 watermarkId(GUID)。

watermarkId 是随后嵌入图像像素和元数据的关键标识符。

隐形水印机制

Microsoft 使用专用库 Watermarker.dll 来嵌入 GUID。该过程是一种内容自适应的块域水印(可能是 SVD 风格),在选定图像块的 RGB 像素上进行微小且量化的变化。

技术实现

  • 载荷构建:16 字节的 GUID 被封装为 18 字节的消息,包含前缀(0x4c)、GUID 和字节和校验和。
  • 嵌入过程:编码器将图像尺寸四舍五入至 8 像素边界,并使用 144 个计数器,确保每个载荷位至少放置三次以实现冗余。
  • 像素修改:系统修改大量像素(例如,在 512x512 图像中,262,144 个像素中有 193,376 个被修改),以不可见方式嵌入标识符。
  • 失败处理:在 Microsoft Paint 中,如果 WmkWriteWatermark 函数失败,整个图像生成将被视为错误,图像不会返回给用户。

C2PA 元数据与软绑定

除了像素级水印,Microsoft 还为保存的文件附加了 C2PA(内容可追溯性与真实性联盟)内容凭证。这形成了双层可追溯系统:

  1. 文件级清单:一个签名的 C2PA 清单嵌入文件中(例如,PNG 中的 caBX 块)。该清单在 c2pa.soft-binding 字段中明确列出 watermarkId
  2. 像素级水印watermarkId 通过 Watermarker.dll 直接嵌入像素中。

这种“软绑定”机制允许即使文件级元数据被移除,图像仍可与原始可追溯记录匹配。为保留此元数据,Paint 限制 AI 生成图像的保存格式为 C2PA 兼容格式:PNG、JPEG、GIF 和 .paint。经典格式如 BMP 因无法嵌入清单,被禁用于 AI 输出。

对比:云端路径 vs. 本地路径

Microsoft 根据硬件和功能使用两种不同的生成路径:

路径 过程 水印位置
云端(Image Creator) 提示 $
ightarrow$ 云端生成 $
ightarrow$ 云端水印 $
ightarrow$ 完成图像返回 Paint 服务端
本地(Cocreator) 提示 $
ightarrow$ 远程审核 $
ightarrow$ 本地 NPU 生成 $
ightarrow$ 本地 Watermarker.dll $
ightarrow$ 在线签名 客户端

社区洞察与隐私影响

技术分析和社区讨论突显了若干关键的隐私与透明度问题:

"这个 GUID 就是破绽,说明这根本不是为了保护艺术家,而是为了日后能够证明来源。没人会为了用户利益在本地文件中嵌入唯一 ID。"

社区提出的关键点包括:

  • 虚假的控制感:Paint 设置中的可见水印开关仅控制 Copilot 标志;它不会禁用隐形的 GUID 水印。
  • 账户关联:由于 GUID 是在用户会话认证并扣除 AI 信用后由服务器发放的,该水印可被追溯至特定 Microsoft 账户和提示。
  • 与打印机追踪的类比:用户将其比作“黄色点”(打印机追踪点),即硬件生成用户无法禁用的识别标记。
  • 监管驱动因素:一些观察者指出,这很可能符合欧盟《人工智能法案》(第 50 条)的透明度要求,该条款要求 AI 生成内容必须为机器可读。

结论

尽管 Microsoft 公开说明了 C2PA 元数据和远程内容过滤的使用,但并未明确告知用户,一个由服务器颁发的唯一 GUID 会被嵌入本地生成图像的像素中。该机制确保“本地生成”仍与 Microsoft 的云基础设施保持关联,用于审核和识别。

Sources

相关

  • Dispatch
  • Dispatch
  • 项目
  • Dispatch
  • Dispatch