DSH 插件

dsh-image-gen:给 DSH 加上图像生成能力

更新于 2026-09-29 约 1 分钟 版本 0.11.11 见 npm 包页 进阶
一句话结论
DSH 本身没有画图工具,装上它之后就能用 generate_image 直接把图生成到对话里,还支持改图、抠图、多比例出图。
踩坑提示
  • 配置接口改完只在内存里生效,重启会丢;正确的持久化位置是 profile 的 cordis.patch.yml
  • 插件内置 loop-guard 在当前版本从不重置计数,会在连续生成若干张后永久报 loop limit reached
  • 质量闸门默认开启,判定缺陷时会静默重掷,一次调用最多真跑 3 次生成(3 倍额度)
  • 同一中转对标准比例很稳,非标准比例(如 4:5)容易出现空响应,需要临时固定尺寸

它解决什么问题

DSH 默认只接文本/视觉模型,没有“画图”这个动作。装了这个插件后,会话里就多了 generate_image 等工具, 模型可以直接调用它出图,并把图片作为附件内联到对话里(deliverAs: image)。

最小可用配置

要点是把 provider 指到自己的后端,而不是插件默认的 fal:

配置项 值
provider custom
customBaseURL 你的 OpenAI 兼容地址
customModel 图像模型名
customKeyEnv 存放密钥的凭据引用名
deliverAs image(内联展示)

配置写在 profile 的 cordis.patch.yml 里最稳(见下节踩坑)。改完用插件的配置接口核对一次:

curl -s http://127.0.0.1:3080/dsh-image-gen/config

实测表现

  • 出图质量对中文文案的还原出奇地好:信息图、手绘路线图这类“文字密集”需求,一次成图基本逐字正确
  • 一张 1024×1536 的图约 35–60 秒;带参考图(图生图)会更慢,容易撞上工具 210 秒上限
  • 超时不等于失败:后端往往已经把文件写盘了,找 generated-images/ 目录即可

踩坑清单

  1. 配置不落盘:插件的设置分节写在 ~/.dsh/settings.yaml 里不会被加载,配置接口只改内存。 正确做法是写进 profile 的 cordis.patch.yml(组合层 base),冷启动才生效。
  2. loop-guard 计数不归零:源码里调用时从不传 isUserTurn,所以一个进程内出满 N 张后永久拦截。 临时解法是把 loopGuardLimit 调大;根治要等版本修复。
  3. 质量闸门会静默花钱:判定缺陷就重掷,废稿也会落盘。介意成本就关掉 qualityGate。
  4. 非标准比例的坑:插件只认 7 种标准比例;要 4:5 得临时把 customSize 钉成 1024x1280。