我以前用 Nano Banana 生图,右下角总蹲着一颗彩色的小星星。
想发出去,得先把它弄掉。
我的办法很土,截图裁一刀。
裁完构图就废了,主体被切掉半个。
后来我生图主要用 GPT,这个烦恼就没了。
GPT 不打这颗星星。
我随手生了一张,右下角干干净净。

ChatGPT 生成图片的过程,出图上没有任何角标
导出来是这样,从头到尾找不着一个标记。

GPT 生成的成品图,肉眼看不到任何水印
我一直以为这就叫干净。
直到我把这张图传进了 OpenAI 自己的验证页。
它一口就认出来了。

OpenAI 验证页的判定结果,使用 OpenAI 工具生成
页面上写得明明白白,使用 OpenAI 工具生成。
这篇讲清楚 AI 图上的水印到底有几层、哪些你看不见,以及装好之后一条命令怎么处理掉。
这个页面是 OpenAI 今年 5 月上线的,地址是 openaicom/verify
传图片或者音频上去,它就查里面有没有 OpenAI 的生成信号。
你自己也能跑,一分钟的事。
问题来了,那张图上肉眼什么都看不见,它凭什么认出来。
因为水印分明暗两种,你能看见的只是其中一种。
明水印就是 Nano Banana 那颗星星,看得见,裁掉就真没了。
暗水印有两层,两层都看不见。
一层写在文件信息里,叫 C2PA,记着这张图谁生成的、什么时候生成、改过几次。
另一层最狠,叫 SynthID,直接嵌在像素本身里面。
这是 Google DeepMind 做的东西,设计目标就是抗裁剪、抗压缩、抗滤镜。
OpenAI 现在也在用同一套。
所以你裁一刀、压一次、加个滤镜,对它都没用。
GPT 的图不打明水印,但暗的这两层一样不少。
这也是我觉得最别扭的地方。
Nano Banana 那颗星星至少是摆在明面上的,你看得见,你知道自己要处理什么。
暗水印是你完全不知道它在。
有个坑得先提醒你,别白折腾。
OpenAI 那个页面只认自己家的图。
你拿 Nano Banana、即梦或者豆包生的图扔进去,它只会说没检测到。
那不代表那张图干净,只代表它管不着。
想查别家的,通用入口是 contentcredentials
org/verify
不过它只读文件信息那一层,像素里的 SynthID 它读不到。
所以目前没有一个页面能替你把两层都查全。
好,下面是正题。
我用的工具是个开源项目,叫 remove-ai-watermarks。
GitHub 上 5.2k star,开源免费,上周还在更新。

remove-ai-watermarks 的 GitHub 仓库首页
它认得的国产水印比我预期的全。
图片这边有 Gemini 和 Nano Banana 的星星、豆包、即梦(含左上角那个 AI生成 药丸标)。
还有通义千问、可灵、元宝、百度、LiblibAI、RunningHub。
视频这边有 Sora、Veo、Seedance、Dola、海螺和可灵。
装是一次性的,装完处理图片就是一条命令。
下面这些命令都在终端里敲。
Mac 打开叫「终端」的那个应用,Windows 打开「命令提示符」。
在搜索里输名字就能找到,不用自己翻。
先装 uv,它是替你装工具的管家。
Mac 敲这条。
curl -LsSf https://astral.sh/uv/install.sh | sh
Windows 敲这条。
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
装完把终端关掉重开一个,不然它认不到 uv。
然后装本体。
uv tool install "remove-ai-watermarks[visible]"
到这儿准备工作就结束了,往后处理图片就这一条。
remove-ai-watermarks visible image.png -o clean.png
image.png 换成你自己那张图,clean.png 是处理完存成什么名。
图片名前面还得带路径,手输很容易错。
最省事的办法是把图片直接拖进终端窗口,路径自动就填好了。
跑完 clean.png 就是干净的图,明水印和文件信息一起去掉。
如果你和我一样主要用 GPT,明水印那层你本来就没有。
这条命令给你去掉的是 C2PA 那层文件信息。
但像素里那层它动不了,得往下看。
如果你想先知道这张图里到底藏了什么,跑一下 identify。
remove-ai-watermarks identify image.png
我拿 GPT 生成的图跑了一遍,它吐出来这么一段。

identify 的检测结果,红框里是 C2PA 和 SynthID 两层暗水印
第一行结论就很直接,AI 生成,置信度高。
来源也点到名了,OpenAI。
红框里那两行,就是前面说的暗水印两层。
一行 C2PA 内容凭证,一行 SynthID 水印。
前面那些都是我说的,这回是工具自己列出来的。
如果角标你肉眼看得见但它没检测出来,就自己框一个区域。
remove-ai-watermarks erase image.png --region 1640,1930,400,100 -o clean.png
--region 后面四个数字是横坐标、纵坐标、宽、高,可以重复写多个。
图多的话直接把整个文件夹丢进去。
remove-ai-watermarks batch ./images --mode visible
背景复杂的图,默认那套补图算法会留下一点痕迹。
换个更好的填充模型就行。
uv tool install --force "remove-ai-watermarks[lama]"
remove-ai-watermarks visible image.png -o clean.png --backend lama
到这里明水印和文件信息都没了,只剩像素里那层。
SynthID 得单独处理,工具里对应的命令是 invisible。
remove-ai-watermarks invisible image.png -o clean.png
这条命令有个硬门槛,必须有 NVIDIA 显卡。
作者写得很直白,Mac 和核显都没有退路。
我手上没有 N 卡,这条路我没走,下面说的是它的设计思路。
它是拿扩散模型把整张图重画一遍,靠重画把像素里的水印冲掉。
所以出来的图和原图会有肉眼可见的差别,不是无损的。
有件事得说在前头。
这工具是拿来处理你自己生成的图的。
别去动图库的预览水印,也别去动别人打了版权标的作品,那是另一码事。
还有一点更要紧。
国内从 2025 年 9 月开始施行 AI 生成内容标识办法,恶意删改 AI 标识是违规的。
自己生成的图去个标记发朋友圈,没人管你。
但把 AI 图洗干净了拿去冒充实拍骗人,性质就完全不一样了。
工具讲完,说点我自己的感受。
我一开始只是嫌 Nano Banana 那颗星星丑。
换成 GPT 之后,我以为自己终于清净了。
查完才知道,我发出去的每一张图,都比我以为的多带了两层东西。
看不见,不等于不在。
这些标记本身不是坏事,但你至少该知道自己发出去的图里装了什么。
以上。
文章来自于微信公众号 “AI产品普洱”,作者 “AI产品普洱”