dsh-image-gen:给 DSH 加上图像生成能力
一句话结论
DSH 本身没有画图工具,装上它之后就能用 generate_image 直接把图生成到对话里,还支持改图、抠图、多比例出图。
安装包:
@goodandready/dsh-image-gen 源码 / 发布页 踩坑提示
- 配置接口改完只在内存里生效,重启会丢;正确的持久化位置是 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/目录即可
踩坑清单
- 配置不落盘:插件的设置分节写在
~/.dsh/settings.yaml里不会被加载,配置接口只改内存。 正确做法是写进 profile 的cordis.patch.yml(组合层base),冷启动才生效。 - loop-guard 计数不归零:源码里调用时从不传
isUserTurn,所以一个进程内出满 N 张后永久拦截。 临时解法是把loopGuardLimit调大;根治要等版本修复。 - 质量闸门会静默花钱:判定缺陷就重掷,废稿也会落盘。介意成本就关掉
qualityGate。 - 非标准比例的坑:插件只认 7 种标准比例;要 4:5 得临时把
customSize钉成1024x1280。