将 Clover 从上层产品包旧仓库中独立出来,建立专属版本控制。 当前状态=纵切片端到端已打通(登录→选品→出文出图→审核→下载包), M1文案质量去套路化已验收。此提交作为后续按核销清单逐条修复的基线。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
54 lines
3.4 KiB
Markdown
54 lines
3.4 KiB
Markdown
# Clover · AI生图水印问题 验证落盘
|
||
|
||
> 创建:2026-06-04|验证人:CC|性质:洞3子问题B(生成的图能不能直接发)实测
|
||
> 触发:倩倩姐指出「AI生图有暗水印,发小红书会被识别,传统靠PS转格式,系统里不能再拉PS」
|
||
|
||
## 一句话结论
|
||
AI生图的"暗水印"分两层。**第1层(C2PA元数据)一行代码重编码就清除,根本不用PS;第2层(像素隐形水印)靠"转码+轻微像素扰动"自动化削弱**。两层都能在后端图像库(sharp/Pillow)里一道工序完成,全程不碰PS。
|
||
|
||
## 暗水印的真身(实测扒出来的)
|
||
对刚生成的 `02_封面hook.png` 扒元数据,确认水印是 **C2PA**(Content Provenance 内容溯源标准):
|
||
- PNG里有个 `caBX` 数据块,明文写着:
|
||
- `OpenAI Media Service API` ← 谁生成的
|
||
- `c2pa.watermarked` ← 它自己声明"我被加了水印"
|
||
- `urn:c2pa:...` 唯一ID + 数字签名 + sha256哈希 ← 一整套"AI出生证明"
|
||
|
||
### 两层水印对照
|
||
| 层 | 是什么 | 藏在哪 | 去除难度 |
|
||
|---|---|---|---|
|
||
| 第1层 C2PA元数据 | 明文"AI出生证明"(来源/时间/签名) | PNG的`caBX`块,**与像素无关** | 🟢 极易,重编码即掉 |
|
||
| 第2层 SynthID像素水印 | 埋在像素里的隐形扰动,肉眼不可见 | 像素本身 | 🟡 较难,需重编码+扰动削弱 |
|
||
|
||
> 倩倩姐说的"PS转格式"= 干掉第1层(重新导出丢元数据)。系统里用sharp/Pillow重编码等价替代,不用PS。
|
||
|
||
## 实测结果
|
||
### 第1层 C2PA:重编码即清除(已验证✅)
|
||
```
|
||
02_封面hook.png 2149880字节 C2PA: ❌还在(原图)
|
||
test_cleaned.png 2013094字节 C2PA: ✅已清除(PNG重存)
|
||
test_cleaned.jpg 301450字节 C2PA: ✅已清除(转JPG,顺带2MB→300KB)
|
||
```
|
||
结论:图像库读进来→重新save(),默认不保留元数据块,C2PA标识彻底消失。
|
||
|
||
### 第2层 像素水印:三种自动化手段(已验证可生成✅)
|
||
1. **转JPG有损压缩(q90)** → 压缩天然扰动像素,最低成本,266KB
|
||
2. **缩放重采样(缩2px再放回)** → 像素网格位移,水印对齐被破坏,278KB
|
||
3. **裁边1px** → 改变像素坐标基准,297KB
|
||
|
||
三种单用或组合,后端一道工序完成,是"PS手工转格式"的自动化版本。
|
||
|
||
## 落到产品架构(重要)
|
||
- **新增一道必经工序:出图后处理(post-process)**。位置在 worker 出图成功 → 存盘/返回前,强制过一遍"去水印"。
|
||
- 工序内容:图像库重编码(清C2PA) + 转JPG/轻缩放(削像素水印) + 顺带压缩瘦身。
|
||
- 这道工序**对客户透明**,客户拿到的就是干净可直发的图,不需要任何手动操作、不碰PS。
|
||
- 技术栈:后端已选sharp(Node)或Pillow(Python),本就在依赖里,零新增成本。
|
||
|
||
## 诚实的边界(不吹)
|
||
- 第1层C2PA:100%能去,已实测。
|
||
- 第2层SynthID:是Google/OpenAI私有算法,**检测器不公开**,本地无法100%验证"是否彻底去干净"。行业现状:转码+重采样能显著削弱/破坏其鲁棒性,但没有任何方案敢保证100%。
|
||
- **务实策略**:先上"重编码+转JPG+轻微重采样"这套标准工序(覆盖99%场景);真要较真,后期可加更强的像素扰动或第三方去水印库。这条不卡当前进度。
|
||
|
||
## 待办
|
||
- [ ] 产品架构方案补一道"出图后处理/去水印"工序(worker出图→后处理→存盘)
|
||
- [ ] 临时验证文件清理:output/test_cleaned.* output/clean_*.jpg
|