盘古CG网 - Unity模型下载,U3D插件,UE资源,音效素材,PPT模板免费下载
盘古CG网 - Unity模型下载,U3D插件,UE资源,音效素材,PPT模板免费下载

去水印工具图片视频

最近发现一款开源工具,能清除 AI 生成的图片和视频里的水印,叫 Remove-AI-Watermarks。

图片方面,支持移除 Gemini、Nano Banana 的星标,还有豆包、即梦、Qwen、可灵、元宝、百度这些平台的角标。视频方面,支持 Sora、Veo、Seedance、Hailuo、Kling 这些平台。

传送门:github.com/wiltodelta/remove-ai-watermarks

可见水印和隐藏水印都能处理,包括谷歌的 SynthID。

隐藏水印靠模型重绘打散,效果好,但需要 CUDA 显卡;只想清元数据的话,CPU 就够。

有一点得提醒:这工具只建议用来处理你自己拥有的内容,别拿它去动图库预览图这类保护他人付费内容的水印。

另外作者还放了一个在线体验的 Demo,可见水印和元数据移除,直接就能用。

 

githu原文:

移除AI水印

移除你自己生成的图片和视频中的AI来源标记:

  • 已知可见标签,如双子星闪光和供应商文字标记;
  • 通过扩散再生实现的隐形像素水印;
  • C2PA、EXIF、XMP、IPTC 及相关 AI 元数据。

视频支持包括来源识别、完整的可见及元数据 清理、目录批次、可见的Sora、Veo、Seedance、Dola、Hailuo,以及 Kling 标记去除及 Oracle 认证的视频 SynthID VAE 再生 移除。

raiw.cc 将该库作为托管服务运行,GPU 包含在内,且无需安装。可见标记和元数据移除是免费的 在那里;隐形水印去除费用已付费。

PyPI 蟒蛇 下载 许可 测试赛 赞助商

本项目适用于您拥有的内容的合法使用。它不针对股票 代理预览或其他保护第三方付费内容的水印。 详见范围、安全和法律说明。

选择你想做的事

目标 指挥 GPU
查找来源信号和水印 identify 不
移除已知可见的AI标记 visible 不
删除你选择的区域 erase 不
剥离AI元数据 metadata 不
识别支持的视频来源 video identify 不
移除视频中的可见标记和AI元数据 video all 不
从视频中剔除AI元数据 video metadata 不
移除视频中注册的可见AI标记 video visible 不
处理视频目录 video batch 这取决于模式
移除带有认证VAE配置文件的视频SynthID video invisible 推荐阅读
重新生成图像以破坏隐形水印 invisible 必修(CUDA)
运行可见、不可见和元数据移除 all 推荐阅读
处理目录 batch 这取决于模式

安装模式

需求 安装
元数据检查与剥离 remove-ai-watermarks
可见检测与移除 remove-ai-watermarks[visible]
可见视频处理 remove-ai-watermarks
视频合成ID移除 remove-ai-watermarks
无焊炬DWT-DCT检测 remove-ai-watermarks[detect]
隐形图像去除(需要CUDA) remove-ai-watermarks[qwen-zimage]
所有在激活 Python 上可用的生产功能 remove-ai-watermarks[all]

低级别且专业化的额外内容包括 、 、 、 、 和 。安装指南详细记录了它们 依赖组合、Python 兼容性及模型需求。pixelsheiftrustmarkmiganlamadiffusion

快速入门

安装以元数据为重点的默认CLI:

uv tool install remove-ai-watermarks
 

检查一张图片:

remove-ai-watermarks identify image.png
 

为了去除可见的水印,安装像素依赖:

uv tool install --force "remove-ai-watermarks[visible]"
 

然后移除已知可见的标记和AI元数据:

remove-ai-watermarks visible image.png -o clean.png
 

去除元数据而不运行可见的修补或扩散:

remove-ai-watermarks metadata image.png --remove -o clean.png
 

没有这个命令,就会覆盖原有的源代码。-o

检查或移除 MP4、MOV、M4V、WebM、MKV、AVI 或 FLV 中的 AI 元数据 文件:

remove-ai-watermarks video metadata input.mp4 --check
remove-ai-watermarks video metadata input.mp4 --remove -o clean.mp4
 

该命令不转码视频或音频流。不像 上述image命令,省略时写入和 保留原件。MP4和MOV 检查中包含本地TC260标签,包括在媒体载荷后方放置的标签, 以及豆宝iOS导出时写入的QuickTime表单变体(作为直接子节点的裸盒子和无密钥元数据列表)。 MKV和WebM检查读取规范性放置。AVI 使用 ,而 FLV 用途。非ISOBMFF格式则通过流进行重制混 复制,待删除。video metadata-o<source>_cleanAIGCmoov.udta.meta.keys/ilstmoovmetametamoovhdlr=mdirSegment.Tags.Tag.SimpleTagLIST/INFO/AIGCscript.onMetaData.AIGC

使用面向产品的视频路径来识别或清理文件:

uv tool install --force "remove-ai-watermarks"
remove-ai-watermarks video identify input.mp4
remove-ai-watermarks video all input.mp4 -o clean.mp4
 

video all在存在且始终存在时,移除稳定注册的可见标记 剥离经过验证的AI元数据。如果两个信号都找不到,它仍然写入 同一容器直通,因此应用调用者得到一个可预测的输出 合同。默认排除专有的隐形视频移除功能。 选择加入有损、经过 Oracle 认证的视频 SynthID 配置文件。--invisible

处理一个具有相同契约的目录:

remove-ai-watermarks video batch ./videos --mode all
 

移除支持的可见视频标记:

remove-ai-watermarks video visible input.mp4 -o clean.mp4
remove-ai-watermarks video visible veo.mp4 --mark veo -o veo_clean.mp4
remove-ai-watermarks video visible seedance.mp4 --mark seedance -o seedance_clean.mp4
remove-ai-watermarks video visible dola.mp4 --mark dola -o dola_clean.mp4
remove-ai-watermarks video visible hailuo.mp4 --mark hailuo -o hailuo_clean.mp4
remove-ai-watermarks video visible kling.mp4 --mark kling -o kling_clean.mp4
 

该路径在像素变化前扫描完整序列。它只接受 标记在相邻帧间稳定位置重复,然后重复使用 和图像去除一样,都是OpenCV、Mi-Gan或LaMa填充后端。音频被复制 无需重新编码,并被允许自然达到终点;视频流 是因为像素发生变化而被转码。默认情况下,是受保护的光学流 通过运动对齐前一个接受的填充,并仅在 附近的资料背景也同意;用来禁用它。 编码器保留支持 8位源色度采样、色彩标签和MP4/MOV轨道时间尺度 而是依赖FFMPEG隐含的原始BGR默认值。可变帧间隔为 通过带时间戳的内存内NUT桥保持,而非被压缩 到平均帧率。非零源起始时间戳被保留 连同复制的音频偏移量一起。默认情况下,一次解码扫描所有提供者,并选择第一个稳定匹配 特异性顺序如下所示。通过明确标记限制检测 给一个供应商。 Sora覆盖了移动的Sora 2吉祥物和词标记。Veo涵盖了当前的两项 四点钻石与传承文本。Seedance覆盖固定盒标签,Dola覆盖固定文本,Hailuo覆盖复合标签,Kling覆盖右下角标签及其版本后缀。完成的编码会以原子形式发布。不 当找不到稳定标记时,输出会被写入。 HDR、PQ/HLG以及大于8位的输入会被拒绝,而是在编码之前 然后通过OpenCV的8位BGR边界静默地减少。--no-temporal-consistency--mark autoVeoAIDola AIMINIMAX | hailuo AIKLING AI

移除视频合成ID:

uv tool install --force "remove-ai-watermarks"
remove-ai-watermarks video invisible input.mp4 -o clean.mp4
 

该路径重生成完整序列,共享一个潜在噪声场 跨越时间,复制完整音频,剥离源元数据,并发布 完成原子编码。默认配置文件都通过了 双载波校准和完整的公开八秒Veo预言机 有。谷歌不发布本地解码器,所以需要重新检查服务商 对于异常重要的文件或供应商变更后仍然有用,但 不是产品结果状态。noise_std=0.15

为了去除隐形水印,安装额外的。一块NVIDIA GPU 需要:两个配置文件均仅支持 CUDA,且无 CPU 或 MPS 的备用。qwen-zimage

uv tool install --force "remove-ai-watermarks[qwen-zimage]"
remove-ai-watermarks invisible image.png -o clean.png
 

如果本地探测器无法确认隐形水印,但你知道 图片来自AI生成器,补充:--force

remove-ai-watermarks invisible image.png -o clean.png --force
 

以排版为主的图片可以选择进入实验性验证文本的审核后。 它需要手动审核字符串和行框;它从不信任OCR作为接地 真理或自动运行:

uv tool install --force "remove-ai-watermarks[text-restoration]"
remove-ai-watermarks invisible image.png -o clean.png \
  --text-manifest verified-lines.json --force
 

请参阅CLI的清单指南 模式、兼容性限制和预言者注意事项。

请参阅自制、UV、可选安装指南 功能和开发设置。

示例

可见的双子座标记

之前 之后
Image with a visible Gemini watermark Image after visible watermark removal

高质量的隐形去除

qwen-zimage是默认配置文件:在Canny下方进行Qwen-Image-2512闪电传输 ControlNet,随后对任何检测到的人脸进行SAM掩蔽Z图像修复。该 替代方案,将全局阶段替换为SDXL,并保持相同的面貌 舞台。两者都只支持CUDA。sdxl-zimage

uv tool install --force "remove-ai-watermarks[qwen-zimage]"
remove-ai-watermarks invisible image.png -o clean.png --force
 
OpenAI 之前的示例 OpenAI 示例如下
OpenAI portrait grid before qwen-zimage OpenAI portrait grid after qwen-zimage
双子座之前的例子 双子座示例
Gemini sign before qwen-zimage Gemini sign after qwen-zimage

这些精确的输出文件被匹配的提供者验证者核对。那个 结果适用于这些文件,而非所有种子、图片或未来的水印 版本。

常见食谱

去除所有检测到的可见痕迹

remove-ai-watermarks visible image.png -o clean.png
 

默认会检查所有注册的可见标记并移除所有 匹配。如果标记对你可见但探测器未发现,选择其 明确表示区域:--mark auto

remove-ai-watermarks erase image.png \
  --region 1640,1930,400,100 \
  -o clean.png
 

--region使用和可重复使用。x,y,width,height

使用学习过的填充后端

额外应用在未安装学习后端时使用OpenCV修复。 对于更难的背景,后端的学习附加内容也包括同样的内容 像素依赖自动:visible

uv tool install --force "remove-ai-watermarks[migan]"
remove-ai-watermarks visible image.png -o clean.png --backend migan
 
uv tool install --force "remove-ai-watermarks[lama]"
remove-ai-watermarks visible image.png -o clean.png --backend lama
 

减少CUDA内存的使用

remove-ai-watermarks invisible image.png -o clean.png \
  --cpu-offload --force
 

CPU卸载通过在CPU间移动模型组件来降低CUDA内存压力 以及以速度为代价的GPU。

处理目录

remove-ai-watermarks batch ./images --mode visible
remove-ai-watermarks batch ./images --mode all
 

工具能识别的内容

可见标记支持包括:

  • 谷歌Gemini和Nano Banana闪光;
  • 豆宝、集梦、问、克灵、元宝、百度、LibLibAI和RunningHub标签;
  • 一款经过校准的三星Galaxy AI标签变体。

元数据和来源检测涵盖C2PA、EXIF、XMP、IPTC、通用 生成器参数、中国TC260 AIGC标签及若干厂商专用标签 信号。可选解码器支持开放的DWT-DCT水印和Adobe 信任马克。

精确的支撑矩阵,包括重要的位置和探测器极限,都存在 在支持信号中。

工作原理

可见的去除步骤有三个:

  1. 在预期区域内检测到注册商标。
  2. 在标记周围做一个面具。
  3. 只用 OpenCV、MI-GAN 或 LaMa 填充掩码区域。

元数据移除使用格式敏感的剥离。JPEG元数据移除保留 编码后的图像扫描而不是重新压缩。原生MP4/MOV TC260值 在不改变盒大小或介质偏移的情况下被消黑。其他支持的 容器使用其对应的元数据路径。

隐形移除则不同。它通过扩散重新生成图像 流水线以破坏像素和频域水印。这会改变 图像,无法保证专有验证者会拒绝所有 输出。

完整技术边界请参见支持信号及已知限制。

Python API

可见移除API要求。remove-ai-watermarks[visible]

import remove_ai_watermarks as raiw

result, removed = raiw.remove_visible("watermarked.png", "clean.png")
print(removed)

provenance = raiw.identify_video("input.mp4")
report = raiw.inspect_video_metadata("input.mp4")
complete = raiw.remove_video_all("input.mp4", "clean.mp4")
batch = raiw.remove_video_batch("videos", "videos_clean")
cleaned = raiw.remove_video_metadata("input.mp4")
synthid_cleaned = raiw.remove_video_invisible("input.mp4", "synthid_clean.mp4")
visible = raiw.remove_video_visible("input.mp4", "clean.mp4")
print(visible.mark)
veo = raiw.remove_video_visible("veo.mp4", "veo_clean.mp4", mark="veo")
seedance = raiw.remove_video_visible(
    "seedance.mp4",
    "seedance_clean.mp4",
    mark="seedance",
)
dola = raiw.remove_video_visible("dola.mp4", "dola_clean.mp4", mark="dola")
 

高级 API 接受文件路径或 BGR NumPy 数组。对于路径输入,它 还能读取来源元数据,保留Alpha,并能从中提取AI元数据 书面结果。

请参阅 Python API 指南,了解可见的移除、完整和流水线、来源检测、元数据 剥离和扩散使用。remove_allremove_batch

ComfyUI

独立的ComfyUI“去除AI水印”包提供了可见去除、检测、区域擦除和 隐形移除。

重要限制

  • 缺少本地信号意味着未知,而非干净。专有像素 元数据被剔除后,水印可能会保留。
  • 可见的移除重建了一个小区域。结果取决于背景 并选择了填充后端。
  • 隐形移除会改变整张图片,并可能改变人脸、文字或细节 细节。
  • 可见的视频移除识别了移动的Sora 2字标,即当前的Veo 钻石加遗产文本、种子盒标签,以及固定 Dola、Hailuo和Kling品牌。它无法识别较早的Sora Turbo 这些供应商提供的角落旋涡或未注册布局。 经典的OpenCV后端可以模糊结构化背景;使用 MI-GAN 或 当恢复质量重要时,LaMa。VeoAI
  • 视频合成ID的再生会改变分辨率、帧率和图像细节。 出厂配置文件是 Oracle 认证的,但没有公共本地解码器能做到 在运行时认证任意输出。重新检查异常重要的输出 在更换医疗服务提供者之后。
  • 隐形水印去除需要CUDA。两个配置文件都拒绝使用其他资料 设备在施工时进行,而不是退回无法运行的设备。 可以明显移除、元数据剥离,而且还能在任何地方运行。identify
  • 供应商的水印系统可能会变化。用 当有供应商时,他们会自行验证。

shipping命令使用认证配置文件。配套研究背带构建 匹配的重编码控制加上VAE重新生成的候选对象,留下 验证者裁决空白:video invisiblenoise_std=0.15scripts/video_synthid_sweep.py

uv run --extra video --extra diffusion python scripts/video_synthid_sweep.py input.mp4 -o sweep/
 

要统计输出的实际成本,请使用: 在重新调整大小和编码之前,会测量发动机自身的PSNR,因此只有 探测器看到了交付的图像。scripts/video_fidelity_probe.py

uv run --extra video python scripts/video_fidelity_probe.py input.mp4 input_clean.mp4
 

对照必须仍为SynthID正,阴性候选方才能 算作驱逐证据。在2026-07-29的双夹校准中,两者都匹配了 Gemini内置SynthID验证器中的对照结果为阳性;越强 候选人对两家运营商均为否定,而较弱的候选人则为 一号阴性。后来的对抗性后续问题要求普通双子座 重新解释返回的像素结果;那个后续报道并不是 验证器重运行,并不会使内置判决失效。A 2026-07-31 对公开的八秒Veo样本进行完整弹夹检查,仍检测到。 而且没有被检测到,所以现在是认证默认。该 可重复的哈希和判决存在于 。UNAVAILABLE0.100.150.15data/evaluations/video-synthid-oracle.csv

文献资料

先从文档索引开始。

研究笔记和历史实验单独列在文档索引中。他们解释了过去的决定,但并没有 定义当前的公共API。

贡献

安装开发环境并运行项目门:

uv sync --frozen --extra dev
bash maintain.sh
 

在更换子系统前,请先查看模块内部结构 并有文档中的不变量。

许可

Apache 2.0。版权所有 2025-2026 Wiltodelta。

 

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容