Voyager 的 Image Refinement:基于反向 Alpha 混合的 Gemini 图片水印无损去除原理与使用指南
AI 应用前端【免费下载链接】voyagerEnhancement suite for Gemini, AI Studio, Claude ChatGPT — plus a prompt manager for any websites, DeepSeek Harness included. / 面向 Gemini、AI Studio、Claude 与 ChatGPT 的增强套件其中的提示词管理器可用于任意网站如 DeepSeek Harness。项目地址https://gitcode.com/gh_mirrors/ge/voyager点击查看免费下载本文介绍 VoyagerGemini / AI Studio / Claude / ChatGPT 增强套件内置的Image Refinement功能它通过**反向 Alpha 混合Reverse Alpha Blending**算法以纯数学方式精确剥离 Gemini™ 生成图片上的透明水印实现零质量损失的无损重构。读完本文你将理解该算法的底层公式与工程实现Alpha Map 计算、水印锚点检测、安全回滚掌握在 Chrome / Edge / Firefox / Safari 中启用与使用的完整流程并了解其下载拦截与隐私保障机制。功能概述AI 图片保持纯净Gemini™ 生成的图片默认带有可见水印右下角白色透明星标。官方设计这一水印是出于安全考量但在壁纸、插画、素材整理等创意场景中创作者往往需要一张完全干净的原始图像。Voyager 的Image Refinement图片精修选项正是为此而生其理念可以用一句话概括AI Images, kept pure.AI 图片保持纯净。该功能自v1.6.0起在 Safari 上获得官方支持包括无干扰地下载原始尺寸、无水印图片Chrome、Edge、Firefox 与 Safari 自此共享同一套集成流程无需再依赖任何第三方下载工具或外挂脚本。无损重构为什么它不是AI 修补传统的水印去除工具通常采用AI InpaintingAI 修补思路用生成模型把水印区域涂抹覆盖掉。这种做法的代价是破坏像素细节——AI 补出来的纹理与原图并不一致放大后容易产生模糊、伪影或与周围格格不入的补丁感。Voyager 的 Image Refinement 走的是完全不同的技术路线——反向 Alpha 混合Reverse Alpha Blending不是 AI 修补不引入任何生成式猜测不会抹掉或糊掉水印区域像素级精确通过数学计算精确移除透明水印图层还原 100% 原始像素零质量损失处理后的图片在所有无水印区域与原始图片完全一致。反向 Alpha 混合的数学原理从源码 blendModes.ts 的注释可以看到完整推导。Gemini 加水印的过程是一个标准的 Alpha 混合前景半透明叠加watermarked α × logo (1 − α) × original其中α是水印 Logo 在每像素位置的透明度来自 Alpha Maplogo是水印自身的颜色值。对上述公式逆向求解即可还原原始像素original (watermarked − α × logo) / (1 − α)源码中的removeWatermark()函数正是逐像素执行这一逆运算见 blendModes.ts// 忽略极小的 alpha 值噪声避免无意义运算 if (alpha ALPHA_THRESHOLD) { continue; } // 限制 alpha 上限避免除以接近 0 的值 alpha Math.min(alpha, MAX_ALPHA); const oneMinusAlpha 1.0 - alpha; // 对每个 RGB 通道执行反向 Alpha 混合 const original (watermarked - alpha * LOGO_VALUE) / oneMinusAlpha; // 裁剪到 [0, 255] 合法像素范围 imageData.data[imgIdx c] Math.max(0, Math.min(255, Math.round(original)));该实现定义了三个关键常量见 blendModes.ts常量值作用ALPHA_THRESHOLD0.002忽略透明度极低的噪声像素避免无效运算MAX_ALPHA0.99限制 alpha 最大值防止除以接近零的数导致溢出LOGO_VALUE255白色水印的颜色值RGB 三通道均为 255由于水印是半透明的白色星标且混合公式可精确求逆因此结果在数学上等价于从未加过水印的原始像素——这就是无损重构与像素完美的来源。Alpha Map水印透明度的指纹反向混合公式要求知道每个像素位置上水印 Logo 的透明度α。这个数据来自Alpha Map透明度映射图——它由预先采集的水印背景捕获图计算得出。从背景捕获图到 Alpha Map计算逻辑在 alphaMap.ts对捕获图中每个像素取 RGB 三通道的最大值作为亮度再归一化到[0, 1]区间const maxChannel Math.max(r, g, b); alphaMap[i] maxChannel / 255.0;仓库中内置了多个水印尺寸/版本的背景捕获图由 Vite 打包进扩展见 watermarkEngine.tsbg_48.png/bg_96.png48px / 96px 水印旧版配置bg_36_20260520.png/bg_96_20260520.png新版 V2 水印变体20260520 版本含 36px 小尺寸档。WatermarkEngine.getAlphaMap()会按需把捕获图绘制到 canvas 上取回ImageData计算并缓存 Alpha Map避免重复计算见 watermarkEngine.ts。其中 48px 的 V2 档案并非独立捕获而是从原生 96px V2 捕获图做整数比例的区域平均降采样得到以对齐上游 OpenCVINTER_AREA的采样特性避免留下可见的星形轮廓downsampleAlphaMapWithAreaAverage见 alphaMap.ts。水印锚点配置的自动检测不同尺寸的图片水印的 Logo 大小与右下角边距也不同。WatermarkEngine内置多套水印配置见 watermarkEngine.ts旧版大图配置logoSize: 96右边距/下边距各64长边大于 1024 像素的图片旧版小图配置logoSize: 48边距各32V2 大图配置logoSize: 96边距各192alphaVariant: 20260520V2 小图配置logoSize: 36边距根据图片长边按比例计算createV2SmallWatermarkConfig。处理一张图片时引擎会根据图片宽高生成候选配置列表逐一对每个候选进行水印信号检测选取信号最强且可靠的锚点执行去除见chooseWatermarkAnchorOption与getWatermarkConfigOptionswatermarkEngine.ts。V2 小尺寸水印还会在锚点周围 ±3 像素范围内做吸附扫描以应对缩放带来的亚像素偏移。水印检测与安全回滚宁可不动不可误伤纯数学求逆的前提是水印确实存在于该位置。为防止把普通图片内容误判为水印并造成损伤引擎内置了一套保守的水印存在性检测与反事实损伤评估watermarkDetector.ts。双通道归一化互相关NCC打分引擎对水印区域候选位置提取两个信号与 Alpha Map 做归一化互相关NCC比对亮度信号spatial score区域亮度分布与 Alpha Map 的相关程度梯度信号gradient score经 Sobel 算子提取的边缘/纹理梯度与 Alpha Map 的相关程度。只有同时满足阈值例如亮度相关 ≥0.3且梯度相关 ≥0.12见DIRECT_MATCH_MIN_SPATIAL_SCORE等常量才判定为可靠水印若没有任何候选达到可信阈值则退化为困难候选模式——只对能够显著抑制水印信号、且不引入损伤的弱候选做一次保守抑制若两者都不满足则判定为无水印WatermarkPresence的reliable/difficult/none三态见 watermarkEngine.ts。反事实损伤检查与迭代回滚在真正提交像素改动前引擎会先试算一遍并评估损伤指标assessWatermarkRemovalCandidatenear-black 增加率处理后新增的近黑色像素占比是否超标新裁剪像素比例被裁剪到 0 的新增像素占比严重下冲比例逆运算得到的原始值低于合理下限如-5的像素占比。由于 Gemini 在多次迭代编辑后可能叠加多个透明水印removeWatermarkWithResidualCheck支持最多 3 轮迭代去除WATERMARK_MAX_REMOVAL_PASSES 3每轮执行前先快照水印区域若评估不通过则完整回滚到该轮之前的状态绝不留下比原图更差的像素见 watermarkEngine.ts。去除完成后若仍有残留边缘还会用高斯模糊权重做一次轻柔的残迹软化。如何启用与使用Image Refinement 的开销与收益在预览与下载两个场景下不同因此 Voyager 将其拆分为两个独立开关。开启方式打开 Voyager 扩展的弹出面板Popup设置区找到Image Refinement Options图片精修选项卡片源码见 WatermarkSettingsCard.tsx标题文案nanobananaOptions该卡片包含两个开关Remove watermark on download下载时去除水印标注为推荐Recommended——点击下载按钮时保存的文件即已无水印Remove watermark in preview预览时去除水印标注为不稳定Unstable——同时处理聊天界面中展示的图片因为需要运行 canvas 管线处理时画面可能短暂闪烁。存储键与默认行为两个开关的底层存储键与解析逻辑见 watermarkSettings.ts存储键含义默认值gvWatermarkDownloadEnabled下载时去除水印truegvWatermarkPreviewEnabled预览时去除水印truegeminiWatermarkRemoverEnabled旧版单一开关迁移用无解析规则若任一新键被显式设置则以新键为准未设置的键回退到默认true否则由旧版键geminiWatermarkRemoverEnabled统一控制两个开关true则两者全开false则两者全关。也就是说首次安装时两者默认均为开启追求更轻量体验的用户可在弹窗中仅保留下载路径。三步使用流程原文档给出的使用流程三步在 Voyager 中完整可用启用在 Voyager 设置面板末尾找到Image Refinement Option并打开开关自动处理之后每张生成的图片都会在后台被自动处理直接下载鼠标悬停在已处理的图片上会出现一个 按钮 按钮会完全取代原生下载按钮确保你拿到的始终是 100% 无水印的原图。从源码实现看 指示器被附加在原生下载按钮内部attachIndicatorToButton见 index.ts并专门遍历download-generated-image-button宿主元素以同时覆盖聊天消息工具栏与灯箱lightbox对话框两种入口decorateDownloadButtons见 index.ts。下载流程的底层实现从拦截到落盘Image Refinement 的下载路径是整个功能的核心工程亮点由MAIN world 的 fetch 拦截器 内容脚本的 DOM 桥接协作完成。第一步把下载请求改写为原始尺寸扩展在页面上下文MAIN world注入 fetchInterceptor.js对 Gemini 的图片下载请求做 URL 改写Google 图片 URL 中的sNNN/wNNN/hNNN尺寸参数会被替换为s0即请求原始分辨率replaceSizeWithOriginal见 fetchInterceptor.js。同时保留-d-I之类的下载标志并兼容d/d-I已为原始尺寸的 URL避免拼出非法地址。第二步DOM 桥接通信由于扩展的隔离世界ISOLATED world与页面世界MAIN world之间无法直接共享变量Firefox 尤其如此两者通过一个隐藏的 DOM 元素#gv-watermark-bridge通信见 index.ts。拦截器把拦截到的图片 base64 数据写入桥元素的data-request属性内容脚本侧的MutationObserver监听到后调用WatermarkEngine去除水印再把处理结果写回data-response完成一次接力。第三步原图健康检测与状态提示下载过程中内容脚本还会记录预览图的健康指纹ImageHealthFingerprint并在下载数据到达时比对用于检测Google 返回的原图是否损坏例如网络问题导致的内容缺失或模糊若损坏则给出明确的警告 ToastGOOGLE_IMAGE_CORRUPTED避免用户误以为是 Voyager 处理出错见 index.ts。下载全程有实时状态 Toast 反馈链路为DOWNLOADING正在下载原图→PROCESSING正在处理水印→SUCCESS下载完成大文件还会触发额外警告处理超时也有兜底提示见 index.ts。这些行为均有对应的单元测试覆盖包括 watermarkEngine.test.ts、fetchInterceptor.test.ts、engineRaceCondition.test.ts 与 runtimeToggle.test.ts 等验证了算法正确性与运行时开关切换的稳定性。隐私与安全全部在浏览器本地完成所有水印去除处理都在你的浏览器本地完成图片数据通过扩展内部通道流转Alpha Map 与背景捕获图随扩展包内置整个流程不向任何第三方服务器上传图片。你的图片内容、创作素材与隐私数据始终留在本地可以放心用于敏感或未公开内容的整理。致谢与开源许可该功能基于 gemini-watermark-remover 等文件的头部注释并遵循 MIT 许可完整保留的 MIT 声明见仓库根目录的 THIRD_PARTY_NOTICES.md。延伸阅读功能使用文档的英文版docs/en/guide/nanobanana.md安装与 Safari 支持说明docs/en/guide/installation.md水印去除模块源码目录src/pages/content/watermarkRemover设置解析与存储迁移src/core/utils/watermarkSettings.ts下载拦截器MAIN worldpublic/fetchInterceptor.js赞分享AI 应用前端【免费下载链接】voyagerEnhancement suite for Gemini, AI Studio, Claude ChatGPT — plus a prompt manager for any websites, DeepSeek Harness included. / 面向 Gemini、AI Studio、Claude 与 ChatGPT 的增强套件其中的提示词管理器可用于任意网站如 DeepSeek Harness。项目地址https://gitcode.com/gh_mirrors/ge/voyager点击查看免费下载相关推荐Voyager Image Refinement 深度解析反向 Alpha 混合算法实现 Gemini 图片无损去水印Voyager Image Refinement 深度解析反向 Alpha 混合算法实现 Gemini 图片无损去水印 导读 Voyager 的 ImageAI 应用前端Voyager Image Refinement 技术解析基于 Reverse Alpha Blending 的本地无损去水印全流程Voyager Image Refinement 技术解析基于 Reverse Alpha Blending 的本地无损去水印全流程 本篇技术文章以 VoyaAI 应用前端AI去水印终极工具快速免费去除图片水印AI去水印终极工具快速免费去除图片水印 WatermarkRemover AI是一款基于AI技术的强大去水印工具它利用Florence 2和LaMA模型实现人工智能计算机视觉图像处理本地部署视频处理上一篇终极指南使用dcgoss简化Docker Compose测试流程的10个技巧下一篇x-tweet-fetcher与AI集成从推文提取到Obsidian知识库的自动化流程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

芯片选型不是参数对比,而是系统性工程决策方法

芯片选型不是参数对比,而是系统性工程决策方法

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/21 3:09:43 阅读更多 →
@ice/plugin-rax-compat 使用指南:将 rax-app 项目平滑迁移到 ice.js

@ice/plugin-rax-compat 使用指南:将 rax-app 项目平滑迁移到 ice.js

前端Web框架SSR前端构建插件系统微前端跨平台 【免费下载链接】ice 🚀 ice.js: The Progressive App Framework Based On React(基于 React 的渐进式应用框架) 项目地址: https://gitcode.com/gh_mirrors/ice1/ice 点击查看 免费下…

2026/9/21 3:09:43 阅读更多 →
inferno-vnode-flags 完全指南:VNode 与 Child 位标记(Bit Flags)体系解析

inferno-vnode-flags 完全指南:VNode 与 Child 位标记(Bit Flags)体系解析

inferno-vnode-flags 完全指南:VNode 与 Child 位标记(Bit Flags)体系解析 【免费下载链接】inferno :fire: An extremely fast, React-like JavaScript library for building modern user interfaces 项目地址: https://gitcode.com/gh_mi…

2026/9/21 3:09:43 阅读更多 →

最新新闻

手机网站知识避坑指南:5类方案报价与费用明细拆解

手机网站知识避坑指南:5类方案报价与费用明细拆解

手机网站知识避坑指南:5类方案报价与费用明细拆解 昨天凌晨两点,我手机突然震了一下。打开后台监控,心里咯噔一声:某客户的官网被植入了博彩广告代码,页面标题被篡改,更糟的是,服务器日志里全是异常的异地登录尝试。这就是典型的网站被黑挂马,很多老板发现时,域名信誉分已经掉到谷底,搜索引擎权重直接归零。…

2026/9/21 3:48:30 阅读更多 →
Naive UI 创建适配主题的自定义组件:n-config-provider、n-element 与 useThemeVars 全面指南

Naive UI 创建适配主题的自定义组件:n-config-provider、n-element 与 useThemeVars 全面指南

前端UI组件 【免费下载链接】naive-ui A Vue 3 Component Library. Fairly Complete. Theme Customizable. Uses TypeScript. Fast. 项目地址: https://gitcode.com/gh_mirrors/na/naive-ui 点击查看 免费下载 Naive UI 不仅内置了数十个开箱即用的主题化组件&…

2026/9/21 3:45:05 阅读更多 →
如何给SumatraPDF贡献代码?从构建、调试到提交PR的完整开发者指南

如何给SumatraPDF贡献代码?从构建、调试到提交PR的完整开发者指南

如何给SumatraPDF贡献代码?从构建、调试到提交PR的完整开发者指南 【免费下载链接】sumatrapdf SumatraPDF reader 项目地址: https://gitcode.com/gh_mirrors/su/sumatrapdf SumatraPDF 是一款免费的开源多格式文档阅读器(支持 PDF、EPUB、MOBI、…

2026/9/21 3:44:04 阅读更多 →
Readest OPDS 分组轮播实现解析:基于 react-virtuoso 的虚拟化横向卡片滑轨与懒加载封面

Readest OPDS 分组轮播实现解析:基于 react-virtuoso 的虚拟化横向卡片滑轨与懒加载封面

桌面应用跨平台前端 【免费下载链接】readest Readest is a modern, feature-rich ebook reader designed for avid readers offering seamless cross-platform access, powerful tools, and an intuitive interface to elevate your reading experience. 项目地址:…

2026/9/21 3:43:04 阅读更多 →
使用 Go 标准库 time 正确处理时间:Uber Go Style Guide 时间处理实践全解析

使用 Go 标准库 time 正确处理时间:Uber Go Style Guide 时间处理实践全解析

文档教程代码质量Lint 【免费下载链接】guide The Uber Go Style Guide. 项目地址: https://gitcode.com/gh_mirrors/gu/guide 点击查看 免费下载 导读 时间处理是 Go 开发中最容易被低估的复杂度来源——"一天有 24 小时""一小时有 60 分钟"…

2026/9/21 3:43:04 阅读更多 →
Toonflow是什么?AI短剧工厂完整指南:2小时把小说变成成片,创作效率提升10倍

Toonflow是什么?AI短剧工厂完整指南:2小时把小说变成成片,创作效率提升10倍

Toonflow是什么?AI短剧工厂完整指南:2小时把小说变成成片,创作效率提升10倍 【免费下载链接】Toonflow-app Toonflow 是一款 AI 短剧漫剧工具,能够利用 AI 技术将小说自动转化为剧本,并结合 AI 生成的图片和视频&#…

2026/9/21 3:42:03 阅读更多 →

日新闻

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程 【免费下载链接】agentic-awesome-skills AAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and …

2026/9/21 0:00:01 阅读更多 →
gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析 【免费下载链接】gin-vue-admin 🚀ViteVue3Gin拥有AI辅助的基础开发平台,企业级业务AI开发解决方案,内置mcp辅助服务,内置skills管理,…

2026/9/21 0:00:01 阅读更多 →
Wox 全功能插件开发实战指南:基于 Python / Node.js 宿主与 WebSocket 的持久化插件体系

Wox 全功能插件开发实战指南:基于 Python / Node.js 宿主与 WebSocket 的持久化插件体系

桌面应用AI 应用插件系统 【免费下载链接】Wox A cross-platform launcher that simply works 项目地址: https://gitcode.com/gh_mirrors/wo/Wox 点击查看 免费下载 全功能插件(Full-featured Plugin)是 Wox 三类插件实现方式中能力最完整的…

2026/9/21 0:00:01 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/21 3:13:20 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/21 2:19:36 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/20 0:00:46 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/19 23:01:36 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/19 17:50:38 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/19 23:35:34 阅读更多 →