dsh-moss-image
给 DSH 装一只会画图的手 —— 说一句话,图上桌。
它防的是什么
「想画一张图,得先离开对话」。
DSH 本身不生图。要出一张图,路子是这样的:
开浏览器 → 找生图站点 → 把想法复述一遍 → 下载 → 再传回会话
四步里,只有第一步需要你。后面三步全是搬运 —— 而搬运会丢东西:提示词在复述时变味,参数在换站点时重置,图存哪儿了转头就忘。
这个包把四步压成一句「画一只橘猫坐在窗边」。
它怎么做
不接管模型、不改会话存储。只加一个工具和两个界面,四步:
① 模型调 image_generate(提示词, 尺寸?, 种子?)
② 本地先校验尺寸 —— 不合格就别发,省一次失败调用也省一次计费
③ POST 到 Moss,拿回图片 URL
④ 下载落盘 → 存进附件 → 聊天里直接可看可点开
关键一条:尺寸在本地就拦掉。 服务端每边只收 256–2048、16 的倍数、总像素 ≤ 2097152, 在本地先算一遍,比发出去被拒再解释便宜得多。
接口
| 项 | 值 |
|---|---|
| Endpoint | POST https://api.mosi.cn/v1/images/generations |
| 鉴权 | Authorization: Bearer <MOSS_API_KEY> |
| 模型 | moss-image-base-1.0、moss-image-sft-1.0(含快照版) |
| 返回 | 一次一张 PNG 的 URL |
一次只生成一张,不支持流式,单张耗时可能到分钟级 —— 这是这个接口的常态,不是卡了。
装
node install.mjs # 干跑:只打印要改什么,不动文件
node install.mjs --apply # 真装:从 GitHub 拉包并写进 profile
node install.mjs --from local --apply # 从本地目录装(改代码时用,建软链)
node install.mjs --uninstall --apply # 卸掉
默认装进 $DSH_HOME/profiles/desktop,依赖写 github:Akashyc/dsh-moss-image。
换 profile 用 --profile <名字>,指定 pnpm 用 --pnpm <路径>。
装完要重启 DSH,设置 → 插件 里才会出现「Moss 生图」页。
前置
✓ 一个 Moss API Key —— 去 https://platform.moss.cn/ 申请
✓ 能把包写进 profile 的 pnpm
脚本不会自动备份 package.json。要留底先自己复制一份。
配置
全部在 设置 → 插件 → dsh-moss-image 里改,改完即时生效。
| 分组 | 项 | 说明 |
|---|---|---|
| 连接 | API Key | 填一次;存进 DSH 凭据服务,不写进配置文件、不回显 |
| Base URL | 默认 https://api.mosi.cn |
|
| 超时 | 默认 900 秒,生图慢是这个接口的常态 | |
| 模型 | 默认模型 | base / sft / 各自的固定快照版 |
| 提示词增强 | 默认关 | |
| 生图 | 尺寸 | 下拉选预设(长宽比 × 低/高两档),也可手填宽x高 |
| 负向提示词 | 默认给一组通用负向词 | |
| 步数 / 引导系数 / 种子 | 留空则用服务端默认 | |
| 可见水印 | 默认关 | |
| 落盘 | 保存到工作区 | 默认开 |
| 目录 | 默认 images,可填绝对路径 |
|
| 文件名模板 | 默认 {date}-{time}-{slug}-s{seed},seed 直接写进文件名 |
尺寸矩阵
| 长宽比 | 低档 | 高档 |
|---|---|---|
| 1:1 | 1024×1024 | 1440×1440 |
| 4:3 | 1152×864 | 1664×1248 |
| 3:4 | 864×1152 | 1248×1664 |
| 16:9 | 1360×768 | 1920×1088 |
| 9:16 | 768×1360 | 1088×1920 |
这些数不是随手挑的,每个都得同时满足三条约束(每边 256–2048、16 的倍数、总像素 ≤ 2097152):
✗ 2048×2048 → 总像素 419 万,超上限一倍
✗ 1920×1080 → 1080 不是 16 的倍数,改成 1088
✓ 1920×1088 → 208 万像素,刚好卡在上限内
用法
对话里直接说:
画一只橘猫坐在窗边,窗外是雨后的花园,柔和的自然光,温暖细腻的摄影风格
模型会自己调工具并带回图片。要指定尺寸或种子就直接说,例如「横版 1536x1024,种子 42」。
输入框左侧还有一个「生图」按钮:点一下把「画一张图:」模板塞进草稿, 并保留你已经写的内容,接着补画面描述发出去即可。
判据
✓ 装完应该看到:设置 → 插件 里多一页「Moss 生图」
✓ 填完 Key 点「试生成」:几十秒后一张图回来,能点开
✓ 说「画一只橘猫」:模型自己调工具,不用你点名
✓ 设 3:4 低档:出来的就是 864×1152
✗ 不该看到:Key 明文出现在配置、日志或会话里
✗ 不该看到:设了 3:4 却出 9:16 高档
最后那条是踩过的坑:模型会自作主张把 size 传成别的值。
现在的做法是工具描述里写死「除非用户明说,否则不要传 size」,
并在返回行里标明这次用的是哪来的尺寸 —— 是用户说的、配置的,还是默认的。
边界
✗ 一次请求只出 1 张图
✗ 只支持 URL 返回,不支持 base64
✗ 不自动重试 —— 超时那头可能还在生成,自动重发就是重复计费
✗ 不判断内容合规 —— 那一层由 Moss 平台与使用者自己负责
目录结构
dsh-moss-image/
package.json # dsh.bundle.patch + dsh.client 段
cordis.patch.yml # profile bundles 里插一条自己的行
install.mjs # 安装/卸载,默认干跑
lib/index.js # host:配置、工具、本地路由
lib/moss.js # 纯逻辑:参数校验、设置页校验、请求体、错误翻译、文件名
lib/client.js # client:设置页与输入框按钮
test/moss.test.mjs # 纯逻辑单测(node --test)
icon.svg
README.md
PLAN.md
LICENSE
开源说明
本插件以 MIT 许可开源,可自由使用、修改、分发,保留版权声明即可。
| 项 | 说明 |
|---|---|
| 许可 | MIT,全文见 LICENSE |
| 作者 | Akashyc |
| 性质 | 社区插件,非 DeepSeek 或 Moss 官方出品,与两家官方无隶属关系 |
| 费用 | 需自备 Moss API Key;调用产生的费用由使用者自行承担。本插件不代收费用、不转售额度、不上报用量 |
| 数据流向 | 提示词与生图参数发往所配置的 Moss API 端点;图片落在你指定的本地目录;API Key 存在 DSH 凭据服务里,不回显、不写日志 |
| 内容责任 | 生成内容由使用者负责,需遵守 Moss 平台的内容政策与所在地法律 |
| 依赖 | 运行时只依赖 DSH 与 Moss API,无其他第三方运行时依赖;不打包任何受版权保护的素材 |
| 反馈 | 问题与改进建议直接提 issue,或在工作区里改完提 PR;改动请保持 mac / Windows 双平台可用 |
贡献约定
- 提交前跑
node --check,保证每个 JS 文件语法通过 - 不把 API Key、真实会话日志、生成的图片提交进仓库
- 改了接口参数或尺寸约束,同步更新本文件与 PLAN.md 的接口表
License
MIT
No comments yet. Be the first to write one.