开源插件驱动豆包桌面版 绕过CDN模板抓取无水印原图

让AI白嫖豆包画图:21秒一张2K原图 — AI技术投降派

AI技术投降派

大厂不开放免费API倒逼开发者将客户端变为接口层,而水印本质只是CDN分发参数而非原图宿命。

AI-assisted summary of 让AI白嫖豆包画图:21秒一张2K原图 — original source. Check the original for full context.

Source published:

Key ideas

  • 开源插件 dsh-doubao-painter 通过 60 行精简代码直连 Chrome 调试协议(CDP),驱动豆包桌面版实现 Agent 本地 0 成本调用,约 21 秒可全自动产出一张 2K 原图。 (0:05)
  • 插件核心洞察在于豆包的水印机制:聊天窗口内的 384×216 缩略图烧录了水印,但预览弹出的 2848×1600 原图无水印,两者 CDN 链接仅模板参数不同,水印属于分发层参数而非源头生成。 (0:05)
  • 相比单张约 0.2 元的商业生图 API,该方案直接利用账号每日免费额度且底层依托字节 Seedream 模型,擅长中文海报与文字渲染。 (3:49)
  • 该方案也存在清醒的代价与风险:仅支持 Windows 单任务串行、运行时强行抢占窗口、面临封号与合规风险,且原图无水印状态随时可能被官方策略变更打破。 (4:52)

Detailed notes

## Background 该内容由 Bilibili UP 主“AI技术投降派”于 2026 年 10 月 28 日发布。视频简介详细介绍了 10 月 26 日上线 GitHub 的开源插件 dsh-doubao-painter,它通过 Chrome 调试协议直接驱动豆包桌面版生成无水印 2K 原图,并指出豆包的水印仅是 CDN 模板参数,从而总结出“去水印的最便宜解是根本不去”。

## TL;DR 视频深入拆解了面向 DSH 开发平台的开源插件 dsh-doubao-painter 的技术实现与架构思路。该插件通过手写 60 行极简 CDP 客户端直连豆包桌面端,绕开昂贵的商业 API 与带水印的缩略图,在模拟预览弹窗后直接抓取 CDN 上的 2848×1600 无水印原图。除了分析包括“秘密画室”归档在内的四步自动化流水线,内容还客观算清了关于原图成功率、猫鼠游戏、条款封号及单任务串行等五大维度的清醒账,最终将此类方案定性为“UI 自动化是穷人的接口层”。

## Atmosphere & style 整体语调冷静、克制而又透着黑客式的机敏与实用主义幽默。主讲人以极其精炼的行话层层剥开大厂产品的设计缝隙,既对“水印是分发参数”这一工程巧思表现出赞赏,又毫不含糊地指出依赖 UI 自动化的脆弱性与条款风险。观看体验就像在听一位技术老手拆解灰色地带的极客玩具,节奏紧凑清晰,清醒而富有启发性。

## Bulletin - [00:05](https://www.bilibili.com/video/BV1xfx56JEP2?t=5s) 开源插件 dsh-doubao-painter 通过 60 行精简代码直连 Chrome 调试协议(CDP),驱动豆包桌面版实现 Agent 本地 0 成本调用,约 21 秒可全自动产出一张 2K 原图。 - [00:05](https://www.bilibili.com/video/BV1xfx56JEP2?t=5s) 插件核心洞察在于豆包的水印机制:聊天窗口内的 384×216 缩略图烧录了水印,但预览弹出的 2848×1600 原图无水印,两者 CDN 链接仅模板参数不同,水印属于分发层参数而非源头生成。 - [03:49](https://www.bilibili.com/video/BV1xfx56JEP2?t=229s) 相比单张约 0.2 元的商业生图 API,该方案直接利用账号每日免费额度且底层依托字节 Seedream 模型,擅长中文海报与文字渲染。 - [04:52](https://www.bilibili.com/video/BV1xfx56JEP2?t=292s) 该方案也存在清醒的代价与风险:仅支持 Windows 单任务串行、运行时强行抢占窗口、面临封号与合规风险,且原图无水印状态随时可能被官方策略变更打破。

## Key takeaways - [00:05](https://www.bilibili.com/video/BV1xfx56JEP2?t=5s) DSH 中的 Agent 长期面临生图困境,接云端 API 需配 Key 且按张扣费,直接用豆包客户端保存又会附带平台水印。 - [00:05](https://www.bilibili.com/video/BV1xfx56JEP2?t=5s) 项目最精辟的洞察是“去水印的最便宜解是根本不去”:水印仅作为 CDN 分发模板参数存在于缩略图中,源头 2848×1600 原图本身并没有烧录水印。 - [01:24](https://www.bilibili.com/video/BV1xfx56JEP2?t=84s) 技术实现放弃了 Puppeteer 等重量级框架,手写约 60 行代码直连 CDP 调试协议,做到了无第三方依赖操控基于 Electron 的豆包桌面端。 - [01:24](https://www.bilibili.com/video/BV1xfx56JEP2?t=84s) 在注入提示词环节,插件选用协议层 insertText 触发编辑器真实事件,比直接修改 DOM 内容更稳定;图生图则绕过按钮直传隐藏的 input 节点。 - [01:24](https://www.bilibili.com/video/BV1xfx56JEP2?t=84s) 抓取原图通过对图片中心连发 5 种鼠标事件触发预览弹窗,拦截 2848 分辨率链接存盘,并适配了豆包实际回传 WebP 的格式特征。 - [02:44](https://www.bilibili.com/video/BV1xfx56JEP2?t=164s) 为平衡生图速度与对话混乱问题,插件设计了“秘密画室”归档机制:普通对话 20 秒出图后,自动通过像素级精确位移拖拽进专用项目归档。 - [02:44](https://www.bilibili.com/video/BV1xfx56JEP2?t=164s) 为避免 DSH 宿主环境卡死,生图脏活被剥离至独立的 Node.js 子进程执行,展现了务实的底层工程解耦思路。 - [03:49](https://www.bilibili.com/video/BV1xfx56JEP2?t=229s) 在全行业普遍走 API 路线的生态光谱下,该项目是唯一走本地客户端路线的代表,将单张 0.2 元的商业成本直接打至零。 - [03:49](https://www.bilibili.com/video/BV1xfx56JEP2?t=229s) 该方案调用的是底层 Seedream 完整能力,在中文排版与海报生成等复杂文字渲染场景下表现出色。 - [04:52](https://www.bilibili.com/video/BV1xfx56JEP2?t=292s) 该方案伴随着明显的稳定性与合规代价:模拟预览可能失败报错、存在封号风险、抢占前台窗口,且对外发布内容仍需履行标识义务。 - [04:52](https://www.bilibili.com/video/BV1xfx56JEP2?t=292s) 猫鼠游戏长期存在:平台去年曾尝试给原图加水印后又放开,无水印仅是当前的动态策略,非长久保证。 - [05:59](https://www.bilibili.com/video/BV1xfx56JEP2?t=359s) 该项目体现了 Agent 时代的实用主义法则:“UI 自动化是穷人的接口层”,在大厂未提供开放 API 时,桌面客户端被开发者逆向当成了功能接口。

## Detailed walkthrough ### [00:00](https://www.bilibili.com/video/BV1xfx56JEP2?t=0s) 双版本洞察:去水印的最便宜解是根本不去

DSH(Deep Shell / 类似开发环境平台)里的 Agent 普遍面临一个尴尬的断层现象:写代码十项全能,画一张图却极为费劲。如果走云端 API 路线,需要配置 API Key 且按张扣费;如果退而求其次利用本机安装的豆包桌面版,它确实具备绘画能力,但直接存下来的图片往往带着平台水印。2026 年 10 月 26 日上线 GitHub 的插件 `dsh-doubao-painter`,用一套构思精巧的方案同时化解了“收费”与“水印”两个痛点:通过 Chrome 调试协议(CDP)直接驱动豆包桌面版,实现 Agent 发送一句话指令、豆包后台静默出图、最后本地收回 2K 无水印原图的全自动化闭环。

```mermaid flowchart LR accTitle: 豆包 CDN 图片双版本分发架构 accDescr: 解释缩略图与大图在同一骨架下仅因模板参数不同而导致水印差异

subgraph CDN["豆包 CDN 资源"] direction TB T["聊天缩略图<br/>384×216<br/>带'豆包 AI 生成'水印"] O["预览大图<br/>2848×1600<br/>无水印原图 (WebP)"] end

A["豆包客户端展示"] -->|"聊天面板嵌入"| T A -->|"点击预览弹出"| O ```

该插件最聪明的核心洞察完全落在了平台的水印机制上。豆包在 CDN 上对同一张图片其实分发了两个版本: 1. 聊天界面内默认渲染并允许保存的,是规格为 `384×216` 的缩略图,其右下角硬编码烧录着“豆包 AI 生成”的可见水印; 2. 只有当用户在客户端中主动点击图片弹窗预览时,系统才会挂载分辨率高达 `2848×1600` 的原图,而这个大图版本完全没有水印。

经过比对,两个版本的 CDN 资源链接共享完全相同的 URL 骨架,唯一的区别仅仅在于末端携带的模板名。换言之,水印只是 CDN 图像分发管道上的一个样式模板参数,压根没有烧进生成的源头原图内部。对此,作者在项目的 README 中写下了极为精辟的总结:“去水印的最便宜解是根本不去”。整个链路既不需要 API Key,不按张计费,也省去了各种复杂的局部重绘与图像修复算法,实测出图约 21 秒一张,常态耗时稳定在 20 至 45 秒之间。

[01:24](https://www.bilibili.com/video/BV1xfx56JEP2?t=84s) 极简 CDP 驱动与四步出图流水线

在驱动实现上,豆包桌面端本质上是一个基于 Electron 框架打包的应用。该插件通过开启远程调试端口将豆包拉起,随后依靠手写的大约 60 行精简代码直连 Chrome 调试协议(CDP),全程没有引入 Puppeteer、Playwright 等任何重量级自动化框架,真正做到了“零第三方依赖”。

```mermaid flowchart TD accTitle: CDP 四步生图执行流水线 accDescr: 包含新开对话、注入提示词、定时轮询以及模拟点击抓原图的完整流程

S1["第一步:开启新对话<br/>查找'新对话'按钮 / 兜底发 Ctrl+Shift+K"] --> S2["第二步:注入提示词<br/>CDP insertText 命令触发编辑器事件<br/>图生图注入隐藏 input[type=file]"] S2 --> S3["第三步:轮询等图<br/>每 1.5 秒扫描一次生成的 CDN 标识<br/>发现新图静止 1 秒确认完成"] S3 --> S4["第四步:抓取原图存盘<br/>图片中心连发 5 种鼠标事件触发预览<br/>抓取 2848 网址并按 WebP 格式存盘"] ```

插件的整个生命周期拆解为清晰的四步流程: - **第一步:开新对话**。定位页面中文字标记为“新对话”的按钮并执行点击;若 DOM 查找失败,则执行兜底逻辑发送 `Ctrl + Shift + K` 快捷键,随后持续监控顶部地址栏 URL 的变化确认跳转。 - **第二步:输入提示词**。此处包含关键的防坑处理——直接利用 JavaScript 修改输入框内容非常脆弱,无法触发内部响应式状态更新。插件转而调用协议层的 `insertText` 原语,正如代码注释原话强调的那样:“这比改内容可靠”,能完美触发编辑器框架绑定的底层输入事件。若遇到“图生图”任务,设计更为巧妙:完全绕过界面上的上传按钮,直接定位页面中隐藏的文件输入框(`<input type="file">`),将本地图片绝对路径塞入,约 250 毫秒后豆包内部组件便自动完成上传。 - **第三步:轮询等待出图**。插件以 1.5 秒为周期循环扫描页面中的 `<img>` 标签,专门筛选匹配包含“生成图”特定标识的 URL 模式。一旦捕捉到最新生成的图片特征,额外静止等待 1 秒以确保渲染渲染完全完毕。 - **第四步:点击抓取原图**。对目标图片物理中心点连续派发 5 种不同的底层鼠标事件以模拟真实的用户点击。在预览弹窗被激活弹出的瞬间,立即拦截抓取挂载出来的 2848 分辨率原图地址并写入磁盘。源码注释特别提示,不要轻信网络 URL 上的文件后缀,豆包实际向客户端回传的二进制实体均为 WebP 格式。

[02:44](https://www.bilibili.com/video/BV1xfx56JEP2?t=164s) “秘密画室”归档机制与底层工程解耦

为了兼顾生图效率与用户体验,插件在设计层面做出了“快”与“乱”的权衡取舍。如果直接在豆包预设的“项目”空间内生成图片,系统加载慢、耗时偏长;但如果直接在普通对话流中高频画图,又会把用户的日常聊天列表彻底搞乱。为了化解这一冲突,作者设计了自动归档机制:生图依然利用普通对话在 20 秒左右疾速完成,图片落盘后,插件立即将该对话拖拽并移入一个专门自动创建的豆包项目中,该项目被命名为“DSH和豆包的秘密画室”。

这套拖拽归档逻辑的注释里写满了与前端组件库博弈踩坑的经验细节: - 鼠标按下后必须在极短时间内移动超过 5 像素,才能成功激活目标组件的拖拽判定阈值; - 移动的第一跳位移必须直接达到 16 像素,以便跨越组件库内置的判定约束; - 如果位移模拟拖得太慢,极易中途触发容器的自动滚动机制,导致放置落点整体漂移失效。

另一处严谨的工程细节在于执行环境解耦。DSH 桌面端自身的主进程同样基于 Electron 运行,如果在该主进程内直接跑这类重型自动化脚本往往会卡死。插件因此独立衍生出独立的 Node.js 子进程来处理脏活累活,甚至专门编写了一段探测脚本,用于在不同的操作系统环境里稳健定位宿主机器上真正的 Node 可执行文件路径。根据开发轨迹记录,作者在单日内连续发布了三个 DSH 插件,该画图插件是其中的第三款,当晚连发 8 个 Git Commit,版本一路从零推进到 `0.3.0`,而最初的首次提交就是一个多达 1400 行代码的完整可用工程。

[03:49](https://www.bilibili.com/video/BV1xfx56JEP2?t=229s) 本地客户端派与云端 API 的生态光谱

从生态光谱的角度来看,DSH 社区里的画图插件虽然已经存在一批,但以往所有作品无一例外走的是云端 API 路线:包括对接 OpenAI 兼容端点、对接第三方聚合服务商,或是借道 ChatGPT 订阅逆向生图。而走本地桌面客户端驱动路线的,`dsh-doubao-painter` 堪称独一份。

这里存在一笔显而易见的经济账: - **官方 API 成本**:各大商业生图 API 单张成本通常在 0.2 元左右,如果高频调用画 1000 张图,直接开销约合 200 元,相当于开通一个月高级会员服务的价格; - **客户端插件成本**:直接归零,全额消耗绑定豆包账号享有的每日免费生图额度。

更关键的是,这种白嫖方式拿到的并非阉割后的“残血模型”。豆包生图底层依托的是字节跳动自研的 Seedream 模型,其在中文文字排版、字体渲染以及东方语境理解上的表现正是其招牌长项。作者在插件的工具元数据描述中甚至直接建议:“中文海报这类活优先让它干”。由平台激进的水印策略反向倒逼出来的刚性诉求,在社区里找到了这种极客味道十足的解法。

[04:52](https://www.bilibili.com/video/BV1xfx56JEP2?t=292s) 必须清醒算清的五笔账

在展示出惊人性价比的同时,作者与评测者也对这套机制保持了极为克制的清醒态度,列出了使用该插件必须面对的“五笔账”:

| 风险 / 限制维度 | 核心表现与潜在后果 | |:--- |:--- | | **1. 原图获取成功率** | 模拟点击预览弹窗在内部有失败概率;一旦失败系统只能退回带水印的 384 缩略图,甚至抛出 `LF-EA` 错误需要完全重跑一遍。 | | **2. 平台猫鼠游戏** | 去年 11 月豆包就曾收紧策略一度给原图挂上水印,后来又放开;“原图无水印”仅是当前分发策略的短暂状态而非永久契约,一旦豆包前端界面改版或调整模板参数,插件即刻失效。 | | **3. 条款与合规风险** | 豆包用户协议明文禁止使用外挂工具干扰服务运行及模拟批量下载行为,违者平台有权在不通知的情况下直接限制功能或执行封号。此外,依据《互联网信息服务深度合成管理规定》等标识办法,AI 生成内容对外公开发布时依然负有显著标识义务。 | | **4. 本地工程限制** | 方案目前仅支持 Windows 操作系统;仅支持单任务串行队列;生图过程中由于需要操控真实 DOM,豆包客户端前台窗口会被抢占,用户在此期间不能乱动鼠标键盘。 | | **5. 开源协议严谨性** | 虽然项目宣称基于 MIT 协议,但仓库代码根目录下并没有随附完整的 LICENSE 授权许可证全文,法律严格定性上仅属于口头“声明 MIT”。 |

关于合规义务,作者特别在文档中作出了免责自留提醒,说明“这个插件解决的是素材被平台标志污染,不是让你绕过标识义务”。

[05:59](https://www.bilibili.com/video/BV1xfx56JEP2?t=359s) 终局判断:UI 自动化是穷人的接口层

该插件从零星关注到社区发酵,具象化示范了 AI Agent 时代的一种生存实用主义逻辑:当巨头大厂不开放免费、低门槛的开放接口时,开发者自然会调转方向,把本地桌面客户端直接当成 API 接口来用。

这种基于 CDP 协议的浏览器自动化路线展现出独特的生态位:“UI 自动化是穷人的接口层”。相比于不稳定的桌面级纯图像找图模拟点击,CDP 能够深入 DOM 和内部事件,稳定性高出不少;而相比于直接逆向服务端加密协议,它并不篡改任何传输数据,安全防护穿透风险低,灰色程度相对低了一档。它并没有侵入平台盗取他人数据,仅仅是在让用户自己的设备和账号代劳干活。

然而,依托免费额度、抢占真实窗口、高度耦合 DOM 结构的寄生方式,注定了其脆弱的生命周期。一旦大厂开始较真或底层前端架构重构,这条依赖 UI 自动化的通道随时面临中断。

撇开环境风险,技术实现中最具价值的核心洞察依然值得反复玩味:“水印是分发层的参数,不是源头的宿命。很多怎么去掉的问题,答案其实是根本不用去。”

后续该生态有三件事值得紧密跟踪: 1. 豆包官方是否会在 CDN 分发层统一收紧规则,对大图预览模板加盖水印; 2. 插件作者正在提交的 Skill 路线新版本,能否成功绕过脆弱的 UI 渲染直接调用豆包在本地留存的底层能力; 3. 大厂面对此类客户端外挂式自动化工具,是否会开启系统性封控与法务整治。该开源仓库可在 GitHub 检索 `dsh-doubao-painter` 查阅。

## Notable quotes > [05:59](https://www.bilibili.com/video/BV1xfx56JEP2?t=359s) UI 自动化是穷人的接口层 — AI技术投降派

> [05:59](https://www.bilibili.com/video/BV1xfx56JEP2?t=359s) 水印是分发层的参数,不是源头的宿命。很多怎么去掉的问题,答案其实是根本不用去。 — AI技术投降派

## Mentioned DSH, 豆包, dsh-doubao-painter, Chrome 调试协议 (CDP), Electron, 字节跳动, Seedream, Node.js, Puppeteer, Playwright, OpenAI, ChatGPT, GitHub, Windows

## Video description DSH 里的 agent 有个尴尬:写代码十项全能,画一张图都费劲。接 API 要 Key 按张收费;用本机豆包吧,它是会画,可存下来的图带着水印。十月二十六号上 GitHub 的这个插件叫 dsh-doubao-painter,思路一次把两个问题都解了:用 Chrome 调试协议直接驱动豆包桌面版,agent 一句话,豆包后台出图,拿回来的是无水印的 2K 原图。它最聪明的地方在水印上——豆包同一张图在 CDN 上有两个版本:聊天里能存的是 384×216 缩略图,烧着&quot;豆包 AI 生成&quot;;点开预览才挂出 2848×1600 的原图,没有水印。两个网址同一个骨架,只差一段模板名。水印是 CDN 的模板参数,压根没烧进原图。作者 README 原话:去水印的最便宜解,是根本不去。

00:05 双版本洞察:去水印的最便宜解是根本不去 01:24 机制:手写 60 行 CDP 客户端,四步出图 02:44 加分设计:&quot;DSH 和豆包的秘密画室&quot; 03:49 生态光谱:API 派之外独一份的客户端派 04:52 清醒五笔账:条款、猫鼠游戏与限制 05:59 判断:穷人的接口层

它怎么驱动的?豆包桌面版是 Electron 应用,插件用调试端口把它启动,手写约六十行代码直连调试协议——零第三方依赖。四步:开新对话(点按钮,兜底发 Ctrl+Shift+K);输入提示词(用 insertText 触发编辑器事件,比直接改内容可靠;图生图直接把路径塞进隐藏文件框);等图(每 1.5 秒扫一遍,专挑网址带&quot;生成图&quot;标记的);点开拿原图(对图片中心连发五种鼠标事件,预览弹出抓 2848 网址,按返回类型存盘——豆包实际给的是 webp)。加分设计:&quot;秘密画室&quot;自动归档(普通对话 20 秒出图,出完拖进自动创建的豆包项目,拖拽注释全是踩坑:按下后立刻移动超过 5px 激活阈值、第一跳 16px 越过拖拽库约束);独立 Node 子进程绕开 Electron 限制。作者一天发三个 DSH 插件,本仓当晚 8 个提交从零到 0.3 版。

生态里画图插件全是 API 派,走本地客户端路线的独一份。经济账:官方生图 API 约 0.2 元一张,插件路线成本为零吃每日免费额度——而且白嫖的不是残血版,豆包底层是字节 Seedream,中文文字渲染恰是招牌。清醒五笔账:原图不保证每次拿到(点预览失败退回缩略图);猫鼠游戏(去年 11 月豆包一度给原图也加水印又放开,&quot;无水印&quot;是当前策略不是永久契约);条款风险实锤(协议禁止外挂干扰与模拟下载,可不通知封号;作者自留提醒:按标识办法,AI 生成内容对外发布仍应显著标识);仅 Windows、串行、占真实窗口;协议写着 MIT 但没放许可证全文。判断:大厂不开放免费 API,就把客户端当 API 用——UI 自动化是穷人的接口层;最值得记的洞察是:水印是分发层的参数,不是源头的宿命。仓库在 GitHub 搜 dsh-doubao-painter。

[Source](https://www.bilibili.com/video/BV1xfx56JEP2)

中文简报

开源插件驱动豆包桌面版 绕过CDN模板抓取无水印原图 大厂不开放免费API倒逼开发者将客户端变为接口层,而水印本质只是CDN分发参数而非原图宿命。 视频深入拆解了面向 DSH 开发平台的开源插件 dsh-doubao-painter 的技术实现与架构思路。该插件通过手写 60 行极简 CDP 客户端直连豆包桌面端,绕开昂贵的商业 API 与带水印的缩略图,在模拟预览弹窗后直接抓取 CDN 上的 2848×1600 无水印原图。除了分析包括“秘密画室”归档在内的四步自动化流水线,内容还客观算清了关于原图成功率、猫鼠游戏、条款封号及单任务串行等五大维度的清醒账,最终将此类方案定性为“UI 自动化是穷人的接口层”。 开源插件 dsh-doubao-painter 通过 60 行精简代码直连 Chrome 调试协议(CDP),驱动豆包桌面版实现 Agent 本地 0 成本调用,约 21 秒可全自动产出一张 2K 原图。 (0:05) 插件核心洞察在于豆包的水印机制:聊天窗口内的 384×216 缩略图烧录了水印,但预览弹出的 2848×1600 原图无水印,两者 CDN 链接仅模板参数不同,水印属于分发层参数而非源头生成。 (0:05) 相比单张约 0.2 元的商业生图 API,该方案直接利用账号每日免费额度且底层依托字节 Seedream 模型,擅长中文海报与文字渲染。 (3:49) 该方案也存在清醒的代价与风险:仅支持 Windows 单任务串行、运行时强行抢占窗口、面临封号与合规风险,且原图无水印状态随时可能被官方策略变更打破。 (4:52)

Reading summary

GitHub 开源插件 `dsh-doubao-painter` 通过 Chrome 调试协议(CDP)驱动豆包桌面客户端,利用平台 CDN 大图未烧录水印的分发机制,实现了零 API 成本生成 2K 无水印原图的全自动闭环。 CDN双版本分发机制与无水印原图获取 (0:00) 在 DSH 等 Agent 开发环境中,AI 绘图通常面临云端 API 按张付费或本地客户端截屏带水印的难题。该插件的核心洞察在于发现豆包 CDN 实际上分发了两种规格的图片:聊天面板内渲染的 384×216 缩略图硬编码了“豆包 AI 生成”水印,而客户端点击弹出预览的 2848×1600 原图则完全无水印。两者共享相同的 URL 骨架,水印本质上只是 CDN 图像分发管道上的样式模板参数。 作者由此提出“去水印的最便宜解是根本不去”,绕过了复杂的图像重绘或修复算法。整个链路无需配置 API Key,完全依托账号免费额度,常态生图耗时稳定在 20 至 45 秒(实测约 21 秒一张),向客户端回传的二进制文件实际均为 WebP 格式。 轻量CDP流水线与UI交互工程解耦 (1:24) 豆包桌面端基于 Electron 打包,该插件未引入 Puppeteer 或 Playwright 等重量级框架,而是依赖约 60 行精简代码直连 CDP 远程调试端口。自动化生命周期分为四步:查找按钮或发送 `Ctrl + Shift + K` 开启新对话;通过 CDP 的 `insertText` 原语注入提示词以触发响应式状态更新,若为图生图则绕过界面按钮直接向隐藏的 `<input type="file">` 塞入绝对路径;以 1.5 秒周期轮询匹配生成图特征;在图片中心连发 5 种底层鼠标事件触发弹窗并抓取 2848 分辨率原图。 为了避免高频生图打乱日常聊天列表,插件设计了自动归档机制:在普通对话中高速出图后,通过模拟拖拽将其移入名为“DSH和豆包的秘密画室”的项目中。实现中精确处理了拖拽判定阈值,例如必须在短时间内首跳位移达 16 像素以跨越组件库判定,避免触发容器自动滚动。此外,插件从 DSH 主进程独立衍生出 Node.js 子进程执行自动化,防止宿主界面卡死。 本地客户端与云端API的生态经济学 (3:49) 在 DSH 社区普遍采用 OpenAI 兼容端点、第三方聚合或逆向 Web 服务的背景下,驱动本地桌面客户端代表了一种独特的路线。官方或商业生图 API 单张成本通常约 0.2 元,调用 1000 张图需花费约 200 元,而本地客户端路线直接消耗豆包账号自带的每日免费额度,将边际成本降为零。 在模型能力上,该方案依托字节跳动自研的 Seedream 模型,在中文文字排版、字体渲染和东方语境理解上具有天然优势,作者因此特别推荐将其用于中文海报等任务。这种设计体现出一种极客解法:当商业 API 门槛过高时,开发者转而将本地桌面客户端作为替代接口。 使用该方案必须权衡的五大风险 (4:52) 评测指出该方案伴随明确的工程限制与合规代价。首先是原图获取成功率问题,模拟点击弹窗若失败将降级为 384 缩略图或抛出 `LF-EA` 错误重跑;其次是猫鼠游戏,豆包曾在 2025 年 11 月一度对原图加盖水印后又放开,前端 DOM 改版或 CDN 参数调整将随时导致插件失效。再者,方案目前仅支持 Windows 平台及单任务串行队列,执行时会抢占窗口焦点导致用户无法操作键鼠。 法律与合规风险同样显著。豆包用户协议明文禁止使用外挂工具干扰服务及批量下载,平台保留限流封号权利;同时中国《互联网信息服务深度合成管理规定》要求对外发布 AI 内容履行显著标识义务。作者对此免责说明该插件仅解决素材被平台标志污染,而非绕过标识义务。此外,项目虽声明 MIT 协议,但仓库根目录尚未附带完整的 LICENSE 文本。 该方案具象化了“UI 自动化是穷人的接口层”的实用主义逻辑,比桌面找图点击更深、比逆向加密协议更轻,但依托免费额度与高度耦合 DOM 的脆弱性注定了其生命周期受制于平台。后续需观察豆包是否收紧 CDN 水印规则、插件 Skill 新版本能否绕过 UI 渲染直接调用底层能力,以及平台是否会开启针对外挂式工具的封控。

Source quotes

[5:59] AI技术投降派: UI 自动化是穷人的接口层 [5:59] AI技术投降派: 水印是分发层的参数,不是源头的宿命。很多怎么去掉的问题,答案其实是根本不用去。

Original transcript

[0:00] DSH里的Agent有个尴尬写代码实相全能画一张图都费劲接API要Key按张收费用本机豆包吧它是绘画,可存下来的图带着水印。10月26号上GitHub的这个插件叫Dish Double Painter思路一次把两个问题都解了用Chrome吊式协议直接驱动豆包桌面板Agent 一句话 豆包后台出图 拿回来的是无水印的2K原图他最聪明的地方在水印上豆包同一张图在CDN上有两个版本聊天里能存的是384×216的缩略图,右下角烧着豆包AI生成。点开预览,才挂出2848×1600的原图,没有水印。两个版本的网址是同一个股价,只差一段模板名。也就是说,水印是CDN的模板参数,压根没烧进原图。作者ReadMe里那句话说得好,去水印的最便宜解是根本不去,不需要API Key,不按张付费,不用图像修复,实测约21秒一张,常态20到45秒。它怎么驱动的?豆包桌面板是Electron应用,插件用调试端口把它启动,然后手写了大约60行代码直连调试协议,不装任何自动化框架。灵地三方依赖流程四步第一步开心对话找页面里文字为新对话的按钮点一下找不到就发快捷键Ctrl加Shift加K再盯着网址栏等它变化第二步输入提示词,这里有个讲究,直接改输入框内容不可靠,插件用协议的插入文本命令,因为它能触发编辑器框架的事件注视原话说,这比改内容可靠。图生图更妙,不点上传按钮,直接找到隐藏的文件输入框,把图片路径塞进去,250毫秒后,豆包自己就传完了。第三步等图,每一秒半扫一遍页面图片,专挑网址里带生成图标记的。发现新图再等一秒确认第四步点开拿原图对图片中心连发五种鼠标事件模拟点击预览弹出后抓下那个2848的原图网址然后按返回的文件类型存盘,注释里还提醒,网址后缀不可靠,兜包实际给的是WebP。两个加分设计一是快和乱的取舍在豆包项目里出图慢走普通对话只要20秒级但会把聊天记录弄乱解法是出完图,把这条对话拖进一个自动创建的豆包项目,项目名就叫DSH和豆包的秘密画室。拖拽这一步全是踩坑换来的注释按下后必须立刻移动超过五像素激活拖拽预值第一跳直接16像素越过组件库的约束拖太慢回触发自动滚动落点就飘了二是一个工程细节,DSH桌面端的主进程是Electron,直接在里面跑脚本跑不动,插件单独起Node子进程干活,还写了段代码,专门找真正的Node在哪。作者一天发了三个DSH插件。这个画图的是第三个,当晚八个提交从零充到0.300,首提交就是1400行的完整工程。生态视角,DSH里的画图插件本来就有一批,走的全是API路线,接OpenAI兼容端点的,接多家服务商的,还有借ChatGPT订阅生图的。走本地客户端路线的这是独一份算笔经济账官方生图API约两毛一张画一千张两百块购买一个月会员,插件路线成本为零,吃的是豆包账号的每日免费额度,而且白嫖的不是残血版。豆包底层是字节的seed dream模型,中文文字渲染的口碑恰恰是它的招牌。工具描述里都写着,中文海报这类活优先让它干。摆在那里水印策略催生的刚需社区清醒的部分无比第一远途不保证每次都拿到点开预览内部可能失败 [5:00] 失败了退回带水印缩略图LF-EA让你重跑一次。第二,猫鼠游戏。去年11月,豆包一度把原图也挂上水印。后来又放开原图无水印是当前的策略状态,不是永久契约,豆包改版插件就坏。第三,条款风险是实打实的。豆包用户协议禁止用外挂等工具干扰服务运行,也禁止模拟下载为者可以不通知就限制功能或封号作者自己也写了合规提醒按标示办法AI生成内容对外发布仍应显著标识这个插件解决的是素材被平台标志污染不是让你绕过标示义务第四 工程限制一堆仅Windows单任务串行出图时占用豆包窗口别乱动第五 协议里写着MIT但仓库没放许可证权文文件严格用词是声明MIT我的判断这个一天一星的小插件示范了Agent时代的一种实用主义大厂不开放免费API就把客户端当API用这条路叫UI自动化是穷人的接口层CDP路线比模拟点击稳比逆向协议安全灰色程度低一档它不偷别人的数据只是让你自己的账号自己干活但免费和合规的边界每个用户得自己掂量吃免费额度占真实窗口靠Dome活着豆包哪天改版或叫真这条路随时会断技术上最值得记的还是那个洞察本身水印是分发层的参数不是源头的宿命很多怎么去掉的问题答案其实是根本不用去接下来丁三件事豆包会不会改模板策略作者的Skill路线更新解稿时他正在提交绕过UI直接调用豆包本地能力的新版本以及这类客户端自动化插件会不会被大厂出手整治仓库在GitHub搜Dash豆包Painter三连关注评论区聊聊你会给自己的AI接哪个白嫖渠道