Voyager 的 Image Refinement:Gemini 生成图片水印的像素级无损去除方案
Voyager 的 Image RefinementGemini 生成图片水印的像素级无损去除方案【免费下载链接】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/voyagerImage Refinement 是 Voyager面向 Gemini、AI Studio、Claude 与 ChatGPT 的增强套件内置的一项图片处理能力专门针对 Gemini™ 生成图片默认携带的可见水印。它不依赖任何云端服务也不使用 AI 重绘补图而是通过**反向 Alpha 混合Reverse Alpha Blending**的纯数学计算在浏览器本地逐像素还原叠加水印前的原始画面并支持直接下载 100% 无水印的全尺寸图片。读完本文你将理解该功能的底层算法原理、完整处理流水线、开关配置方式以及它在隐私与兼容性上的设计取舍。功能背景为什么 Gemini 图片需要精炼Gemini 生成的图片默认会带有一层可见水印。这一设计出于安全考量可以追溯图片来源但对于某些创意场景——例如需要干净底稿用于二次创作、印刷或演示——用户可能需要一份完全纯净的版本。Voyager 的 Image Refinement 正是为此设计它把去水印从传统的 AI 涂抹修复升级为数学上精确的逆向还原。核心原理反向 Alpha 混合Reverse Alpha Blending水印叠加在像素层面并非简单的覆盖而是一个**alpha 混合alpha blending**过程。可以用一个公式描述 Gemini 加水印时的像素合成watermarked α × logo (1 - α) × original其中original是原始像素值logo是水印图案像素值白色水印为 255α是该位置水印的不透明度。既然加水印是已知的线性运算那么只要知道α和logo就可以逆向求解原始像素original (watermarked - α × logo) / (1 - α)这正是 Voyager 的做法。在源码 blendModes.ts 中removeWatermark()逐像素执行该公式并附带两个关键保护常量ALPHA_THRESHOLD 0.002忽略极小 alpha 值视为噪声避免误伤几乎未受影响、视觉上完全一致的像素MAX_ALPHA 0.99把 alpha 钳制在安全上限防止除数(1 - α)趋近于零导致除零或数值爆炸LOGO_VALUE 255对应白色水印的固定颜色值。最终结果被裁剪到[0, 255]区间且只修改 RGB 三个通道alpha 通道保持不变见 blendModes.ts。那么α从哪来Voyager 在扩展内打包了水印背景捕获图bg_36/bg_48/bg_96系列 PNG见 watermarkEngine.ts 中的资源导入与加载逻辑。alphaMap.ts中的calculateAlphaMap()对捕获图逐像素取 RGB 三通道最大值并归一化到[0, 1]即得到水印的不透明度映射表Alpha Map。针对不同尺寸水印36/48/96 px与版本变体引擎还会用区域平均降采样area-average downsampling对齐 OpenCV INTER_AREA 行为从高分辨率捕获图派生小尺寸 Alpha MapalphaMap.ts。三大特性无重绘、像素级、零损失无 AI 重绘Sin Repaintado AI传统去水印常依赖 AI 对水印区域进行模糊重绘这会人为改变画面细节甚至脑补出并不存在的纹理。Image Refinement 不猜测、不修补只做数学还原。像素级精度Precisión a Nivel de Píxel通过上述公式对叠加水印的每个像素做逆向计算精确剥离透明水印层还原原始像素点。零质量损失Cero Pérdida de Calidad在无水印覆盖的区域处理前后的图片完全一致因 alpha 低于阈值时直接跳过有水印的区域则还原出与生成时一致的原始内容。完整处理流水线从检测到下载从源码结构看Image Refinement 并非一键滤镜而是一条分阶段、带安全校验的流水线主要分布在与该功能对应的 watermarkRemover 目录下水印锚点检测watermarkEngine.ts依据图片尺寸推断水印配置logoSize、marginRight、marginBottom。例如长边超过 1024px 时采用 96px 水印配置否则采用 48px 配置watermarkEngine.ts同时维护 V2 系列配置用于匹配新版本水印小图还会按长边尺寸等比推算边距。信号确认防误伤watermarkDetector.ts用**亮度归一化互相关luminance NCC**和Sobel 梯度归一化互相关对比候选区域与 Alpha Map只有当空间分数与梯度分数双双越过阈值如DIRECT_MATCH_MIN_SPATIAL_SCORE 0.3、DIRECT_MATCH_MIN_GRADIENT_SCORE 0.12时才判定存在可靠水印并执行去除若所有已知锚点都不满足则宁可不动像素watermarkDetector.ts。反混合去除 损伤校验执行反向 Alpha 混合后引擎会评估该操作的损伤指标——近黑色像素增加比例、新增裁切clip像素比例、严重下冲severe undershoot比例等若校验不通过则回滚该区域的像素快照见 watermarkEngine.ts 中removeWatermarkWithResidualCheck()最多执行 3 轮迭代确保宁可保留水印也不破坏画面。残差软化当主去除通过、但仍有残余水印边缘信号时引擎使用高斯核与由梯度生成的权重场对残差做局部柔化softenWatermarkResidual()进一步消除轮廓痕迹。下载接管功能开启后图片下载走一条被拦截的链路。fetchInterceptor.js注入页面 MAIN world拦截 Gemini 下载请求链rd-gg-dl/rd-gg端点把 URL 中的尺寸参数sNNN或w/hNNN改写为s0以请求原始全分辨率图片再通过 DOM 桥hiddendiv兼容 Firefox 的 world 隔离把图片数据交给内容脚本处理最终返回去水印后的响应fetchInterceptor.js。如何使用三步上手按官方文档docs/es/guide/nanobanana.md与实现使用流程如下启用功能在 Voyager 设置面板末尾找到Image Refinement选项开启Eliminar marca de agua Image Refinement去除 Image Refinement 水印开关。自动触发开启后之后生成的每一张图片都会在后台自动完成去水印处理无需手动操作。直接下载鼠标悬停在已处理的图片上会看到一个 按钮该 按钮已完全替代原生下载按钮点击即可直接下载 100% 无水印的图片。从设置实现看功能拆分为两个独立开关见 watermarkSettings.tsgvWatermarkDownloadEnabled控制下载路径去水印拦截下载请求、处理后保存即 路径gvWatermarkPreviewEnabled控制聊天界面预览图也即时替换为去水印版本更重处理时会有一瞬画面刷新两者默认均为开启WATERMARK_DEFAULT { download: true, preview: true }并兼容旧版单一开关geminiWatermarkRemoverEnabled的自动迁移逻辑。Safari 兼容性自v1.6.0起Image Refinement 直接支持 Safari包括下载无水印全尺寸图片。Chrome、Edge、Firefox 与 Safari 现在共享同一套内置处理流程watermarkEngine.ts 中对crossOrigin、chrome.runtime.getURL的兼容处理以及 fetchInterceptor.js 中通过隐藏 DOM 元素跨 world 通信以适配 Firefox的设计均体现了多浏览器兼容的考量。该功能在 1.6.0 更新说明 中也有记录。隐私与安全一切都在本地Image Refinement 的全部去水印处理都在你的浏览器本地完成localmente en tu navegador。图片不会上传到任何第三方服务器保护了你的创作隐私与安全。从实现上看无论是预览图处理还是下载拦截数据都以 base64/blob 形式在页面、内容脚本与扩展运行时之间流转全程没有外部上传逻辑。开源致谢与许可该功能基于开源项目 gemini-watermark-remover由 journey-ad/Jad 开发移植而来而后者又是 allenk 开发的 C 版 GeminiWatermarkTool 的 JavaScript 改编。Voyager 保留了 MIT 许可声明完整第三方许可声明见仓库根目录的 THIRD_PARTY_NOTICES.md各移植模块文件头部如 blendModes.ts、watermarkDetector.ts也均注明原作者与版权信息。相关算法与流水线的行为由 watermarkEngine.test.ts、fetchInterceptor.test.ts 等测试用例持续验证包括引擎竞态、损坏下载检测与运行时开关等场景。【免费下载链接】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创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

POPGENE遗传多样性分析实战:从数据格式到结果解读

POPGENE遗传多样性分析实战:从数据格式到结果解读

简介:POPGENE是一款基于Windows的免费物种遗传分析软件,这份图文版中文使用教程正是为它而写的,适合从事群体遗传学、分子生态学研究的科研人员和研究生快速上手。内容依托软件实际界面展开,系统介绍了POPGENE的窗口构成、八大菜单…

2026/9/20 13:43:28 阅读更多 →
OpenToonz 快速上手:3 步免费做出第一部 2D 动画

OpenToonz 快速上手:3 步免费做出第一部 2D 动画

OpenToonz 快速上手:3 步免费做出第一部 2D 动画 【免费下载链接】opentoonz OpenToonz - An open-source full-featured 2D animation creation software 项目地址: https://gitcode.com/GitHub_Trending/op/opentoonz OpenToonz 是一款开源、免费的 2D 动画…

2026/9/20 13:42:28 阅读更多 →
nhood_enrichment 出图不对?TaoToken 这样给 Codex 配通道再按 cellcharter 查

nhood_enrichment 出图不对?TaoToken 这样给 Codex 配通道再按 cellcharter 查

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

2026/9/20 13:42:28 阅读更多 →

最新新闻

ESP32 FOC Knob 触觉反馈旋钮组件实战指南

ESP32 FOC Knob 触觉反馈旋钮组件实战指南

物联网嵌入式驱动开发硬件开发 【免费下载链接】esp-iot-solution Espressif IoT Library. IoT Device Drivers, Documentations and Solutions. 项目地址: https://gitcode.com/GitHub_Trending/es/esp-iot-solution 点击查看 免费下载 FOC Knob 是 ESP-IoT-Solut…

2026/9/20 15:12:31 阅读更多 →
基于YOLOv11的羽毛球轨迹追踪系统:从检测到战术分析

基于YOLOv11的羽毛球轨迹追踪系统:从检测到战术分析

简介:一份基于YOLOv11的羽毛球轨迹追踪与战术分析系统技术文档,共25页,面向运动数据分析、计算机视觉及体育智能化方向的开发者与研究人员。文档从传统羽毛球分析方法的局限切入,依次介绍YOLO系列演进、YOLOv11核心技术与优势&…

2026/9/20 15:12:31 阅读更多 →
客服大模型LoRA微调实战:从数据准备到Dify部署全流程

客服大模型LoRA微调实战:从数据准备到Dify部署全流程

简介:这是一份面向具备Python编程与机器学习基础的开发者的Dify平台模型微调实战教程,聚焦客服对话等垂直场景的专属大模型训练与API部署全流程。PDF文档从创建虚拟环境、安装指定版本的transformers、torch、datasets、accelerate等依赖开始&#xff0c…

2026/9/20 15:12:31 阅读更多 →
PeaZip 11 Linux多架构安装实战:amd64、arm64与龙芯loongarch64全攻略

PeaZip 11 Linux多架构安装实战:amd64、arm64与龙芯loongarch64全攻略

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

2026/9/20 15:12:31 阅读更多 →
RT-Thread下GD32H759的ADC/DAC驱动开发实战与避坑指南

RT-Thread下GD32H759的ADC/DAC驱动开发实战与避坑指南

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

2026/9/20 15:12:31 阅读更多 →
PicoClaw Docker 部署实战指南:用 Docker Compose 快速跑起 AI Agent、Gateway 与 Web 控制台

PicoClaw Docker 部署实战指南:用 Docker Compose 快速跑起 AI Agent、Gateway 与 Web 控制台

人工智能AI 应用AI Agent交互助手工具调用MCP ClientsAgent 记忆 【免费下载链接】picoclaw Tiny, Fast, and Deployable anywhere — automate the mundane, unleash your creativity 项目地址: https://gitcode.com/gh_mirrors/pi/picoclaw 点击查看 免费下载 本…

2026/9/20 15:11:30 阅读更多 →

日新闻

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

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

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

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

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

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

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

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

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

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

周新闻

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

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

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

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

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

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

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

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

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 阅读更多 →