全部插件

DSH / BUNDLE / CLIENT-UI

dsh-yuanbao-t2i

v0.10.7lm846802297-bit / dsh-yuanbao-t2ib1dc9d529c

可安装组合包UI 与客户端插件社区 · Topic 自动分析Web UI

概览

dsh-yuanbao-t2i

源码级技术说明DSH 插件:腾讯元宝网页版文生图 + 图生图(yuanbao_t2i 工具 + yuanbao_t2i_styles 画风检索工具 + 插件内设置卡,支持参考图上传 + LaMa 去水印)。走 yuanbao.tencent.com 的 /api/chat SSE,从 type=replace 的 multimedias 取图,落盘为 PNG。支持 refImages 参数传参考图(本地路径/URL/文件夹)自动走图生图,参考图由元宝前端原生上传通道处理。支持 style 参数套用元宝官方模板库的画风预设(复古岩彩风/野兽派/日系复古平涂等)。自带 patchright,独立于 dsh-playwright-ag。自带浏览器端设置卡(Plugins 页可选输出目录、去水印开关,支持系统目录选择器)。展开完整技术说明收起技术说明
DSH 插件:腾讯元宝网页版文生图 + 图生图(yuanbao_t2i 工具 + yuanbao_t2i_styles 画风检索工具 + 插件内设置卡,支持参考图上传 + LaMa 去水印)。走 yuanbao.tencent.com 的 /api/chat SSE,从 type=replace 的 multimedias 取图,落盘为 PNG。支持 refImages 参数传参考图(本地路径/URL/文件夹)自动走图生图,参考图由元宝前端原生上传通道处理。支持 style 参数套用元宝官方模板库的画风预设(复古岩彩风/野兽派/日系复古平涂等)。自带 patchright,独立于 dsh-playwright-ag。自带浏览器端设置卡(Plugins 页可选输出目录、去水印开关,支持系统目录选择器)。

README / ZH

插件文档

目录摘要

DSH 插件:腾讯元宝网页版文生图 + 图生图(yuanbao_t2i 工具 + yuanbao_t2i_styles 画风检索工具 + 插件内设置卡,支持参考图上传 + LaMa 去水印)。走 yuanbao.tencent.com 的 /api/chat SSE,从 type=replace 的 multimedias 取图,落盘为 PNG。支持 refImages 参数传参考图(本地路径/URL/文件夹)自动走图生图,参考图由元宝前端原生上传通道处理。支持 style 参数套用元宝官方模板库的画风预设(复古岩彩风/野兽派/日系复古平涂等)。自带 patchright,独立于 dsh-playwright-ag。自带浏览器端设置卡(Plugins 页可选输出目录、去水印开关,支持系统目录选择器)。

dsh.pub 核对固定版本的组合包契约、运行时事实与分发语义;完整 README 请查看源仓库。

在 GitHub 阅读完整 README

LIMITATIONS

已知限制

- 文生图一次固定 4 张图,尺寸由 `imageRatio`/`imageResolution` 决定(实测 16:9+1.5K → 1680×928、16:9+2K → 2240×1248、3:4+1.5K → 1088×1440;不指定则由元宝服务端决定),单张 3MB 左右;**图生图实测只返回 1 张**。 - **同一提示词不可复现(`seed` 已移除)**:2026-10-21 全量扫描(98 个前端 bundle + 全部请求体 + SSE)证实元宝协议层没有 seed 落点,`extra.image_gen_param` 结构上只有 `model`/`ratio`/`resolution` 三个键。既然做不到,v0.9.0 干脆把 `seed` 参数**删掉**——与其留一个只回显、永不起作用的参数让人误以为能锁种子,不如让「不能复现」这件事在调用时就看得见。 - **比例/分辨率依赖「AI 生图」模式存在**:若元宝改版或该账号没有这个模式,插件会退化为「不设比例」(日志会写「未指定比例/分辨率/模型 → 走默认对话生图路径」),不会崩。 - 水印 ROI 按 2026-10 的版面量得(默认 `x 0.710–0.992, y 0.878–0.996`,只包住文字本体);元宝改版面后需重新量,或用环境变量 `DSH_WM_ROI` 覆盖。 - 掩膜默认走**内部自适应**(`auto`:先紧贴字形检,不可信才整块),但**极端画面仍可能失效**:水印与背景亮度差小于 3 个灰度级时无法分离。`auto` 的降级判据是**命中率可信区间**:检出命中率不在 `[0.5%, 25%]` 内 ⇒ 自动降级 `rect`(重修面积变大);修完还有**残痕自检**(残留 ≥ `max(0.4%, 35%×原始命中)` 就用 `rect` 重修)。排障时可用环境变量 `DSH_WM_MASK=rect` 强制整块重绘,或调 `DSH_WM_ROI`。 - **去水印失败不会再被静默吞掉**(v0.8.1):v0.8.0 及更早,工具入口漏传日志回调 ⇒ 去水印报错被 catch 吞掉,调用仍返回 `ok: true` + **带水印的原图**。现在返回 `watermarkError`(非空=没成功,`files` 是原图)并在界面提示里写明。 - **水彩 / 中灰背景图上 `tight` 可能漏字**(2026-10-20 实测):元宝水印是半透明灰字,在中灰水彩底上与背景亮度差 < 15 灰度级且分布几乎完全重叠 ⇒ 逐像素阈值原理上不可分,掩膜可能整块落在背景纸纹上而水印文字残留。已试过 blackhat / 局部差 / adaptiveThreshold / 行投影+列峰等结构先验方案,16 张样本上均不能可靠定位文字行(暗底图文字区反差能量仅为背景的 1.5–2.3 倍,信号弱于纸纹)⇒ 未接入。遇到这类图请用环境变量 `DSH_WM_MASK=rect`(整块重绘,不会漏字但重修面积大)。 - ⚠️ **v0.10.0 更新**:检测器已换成 v2 口径(位置先验 + 局部中值背景 + MAD,见「内部自适应掩膜」一节),上述「逐像素固定阈值不可分」的结论**不再直接适用于当前实现**——v0.10.0 的 20 张真样本里水彩/木纹/带鸟的水彩都走通了 `auto`(无一张降级)。上文 2026-10-20 的读数保留为旧口径下的历史记录;若在新口径下仍遇到残影,同样用 `DSH_WM_MASK=rect` 兜底。 - **图生图已实测打通**(2026-10-20):参考图走**元宝前端原生上传通道**(点「添加」→「上传图片」→ 前端动态创建的 `input[type=file]`),前端自己完成 `genUploadInfo` → COS PUT → `asyncFileParse`,发送时自动把 `multimedia[]` 填进 `/api/chat/` 请求体 ⇒ **不需要自己做签名**。实测产物与参考图灰度 NCC = **0.79–0.88**(同提示词纯文生图对照组仅 0.01–0.18)⇒ 参考图确实被采用。 - ⛔ 曾尝试自研上传(`genUploadInfo` + HMAC-SHA1 + COS PUT + `TIMImageElem`)⇒ **失败**:元宝不认 `X-Token`/`X-ID`(那是 hermes-agent 的旧协议),实际要 `x-hy92`/`x-hy93`/`x-id` + 前端侧签名,逆无可逆。 - ✅ **v0.6.2 修复:上传时不再弹系统「打开」文件框**(2026-10-21)。前端那一步是真实的 `input.click()`,浏览器会弹 Windows 原生文件对话框;patchright 只有在存在 `filechooser` 监听器时才下发 `Page.setInterceptFileChooserDialog`(见 `patchright-core/lib/coreBundle.js` 的 `fileChooserIntercepted()`),没监听 ⇒ 不拦截 ⇒ 系统框弹出后无人关闭,会一直压在桌面上。现改为**先注册 `filechooser` 监听、再点「上传图片」、用 `chooser.setFiles()` 灌文件**(不再用 `locator.setInputFiles`,那是 CDP 直灌、关不掉已弹出的原生框)。实测对照:旧写法会弹 `title='打开'` 的系统框,新写法全程无系统框。 - **临时会话轮次上限会自动重试**(2026-10-20):元宝的 `chatMode=temp` 临时对话累积轮次后会返回 `code 21003`「当前对话已达到对话次数上限」。插件捕获该错误后**自动重新载入临时会话**(实测重新加载 `chatMode=temp` 会拿到新的 `conversationId` 且仍是临时对话,不落历史)并重发一次(参考图会重新上传)。连续两次都撞上限才报错。 - **批量出图请用 `lib/session.js`(v0.10.7)**:一次 `launchPersistentContext`、同一个窗口连续出图——`openSession({ profileDir })` 拿到会话后反复 `session.generate({...})`,或用 `generateMany(session, jobs, { gapMs })` 自带间隔抖动与「连续失败即刹车」。2026-10-22 主号在 3 小时内批量出 45 张图生图后被元宝冻结(页面提示「账号已冻结 · 申诉处理中」),复盘第一嫌疑是**每张图都开关一次浏览器窗口**(旧实现每调一次 `generate()` 就 launch 一次、close 一次)⇒ 批量务必复用会话,并把节奏控制在每天 ≤40 张。 - **画风预设只接受 `image2image` 类模板**(v0.8.0):`text2image` 类(电商海报等成品场景模板)当画风用会和你自己的画面描述打架,插件会直接报错并提示换模板。 - **画风模板库是官方快照**:缓存 `~/.dsh/yuanbao-t2i-templates.json`,一周刷新一次;元宝改版后可能要手动删缓存重拉。首次拉取需要联网(走元宝自己的登录态)。 - LaMa 修复在白色背景 + 细纸纹图上仍可能留下轻微平滑痕——这也是「默认不去水印」的原因。