dsh-moss-image
DSH 插件:在对话里说一句要画什么,就用 Moss(MOSS-Image)文生图接口出一张图,显示在会话里并存到本地。
安装
从 GitHub 仓库直接安装,不打包、不发 npm、不用下载 tgz。
| 方式 | 做法 |
|---|
| 让 Agent 装(推荐) | 对 agent 说:安装插件 github:Akashyc/dsh-moss-image |
| 插件管理页 | 插件 → 添加插件 → 地址填 github:Akashyc/dsh-moss-image → 安装 |
| 安装脚本 | 在本仓库目录执行 node install.mjs --apply;不加 --apply 只打印要改什么 |
| 手动写 profile | 见下一节 |
github: 前缀由 pnpm 解析,公开仓库不用登录;装的是仓库默认分支的当前提交。
装完重启 DSH,到 设置 → 插件 → Moss 生图 里填一次 API Key(去 platform.moss.cn 申请)。
手动写 profile
编辑 ~/.dsh/profiles/<profile>/package.json(默认 profile 是 desktop),加两处:
{
"dependencies": {
"dsh-moss-image": "github:Akashyc/dsh-moss-image"
},
"dsh": {
"profile": {
"bundles": ["dsh-moss-image"]
}
}
}
bundles 里已有内容就追加,不要整段替换。然后在 profile 目录执行:
pnpm install
重启 DSH,设置 → 插件 里应出现「Moss 生图」页。
更新:重跑 node install.mjs --apply,它会额外跑一次 pnpm update 拉到最新提交;或先卸载再按同一地址安装。plugin_manager 的 install_bundle 对已安装的包会直接拒绝,不会覆盖升级。
效果
| 行为 | 说明 |
|---|
| 对话里出图 | 模型自己调 image_generate,图以附件显示在会话里,可点开 |
| 提示词怎么写由你定 | 默认原文照传,交给服务端智能改写,和官方 Playground 一致;也可让模型扩写、转成英文(MOSS-Image 英文训练数据最多)。画面里要出现的文字始终原样保留 |
| 布局生图 | 默认开启:要海报、精确文字位置时,模型按左上角原点给出每个元素的框,插件换算成接口要的中心坐标布局 JSON |
| 迭代不跳图 | 同一会话里接着改图,自动沿用上一张的种子,模型只改提示词里相关的词;说「换一张」才换新种子 |
| 每张都落盘 | 全部存进同一个绝对目录(默认 ~/Pictures/Moss),设置页试生成也进这里;写不进去先放缓存目录并说明原因,不丢图;同名加序号,不覆盖 |
| 图库 | 侧栏「Moss 图库」,像资源管理器那样用:相册当文件夹排在前面、双击进入、面包屑返回;单击选中、Ctrl/Shift 多选、空白处框选、右键菜单、Delete 删除;双击图片打开大图 |
| 画风 | 设置里下拉选画风,选中的提示词固定拼在你描述最前面;默认不追加 |
| 尺寸本地拦截 | 每边 256–2048、16 的倍数、总像素 ≤ 2097152,不合格不发请求、不计费 |
| 不自动重试 | 超时那头可能还在生成,自动重发就是重复计费 |
| 输入框按钮 | 输入框左侧「生图」按钮,把「画一张图:」塞进草稿,保留已写的内容 |
对话里直接说「画一只橘猫坐在窗边,雨后的花园,柔和的自然光」即可;要指定尺寸或种子就直接说,例如「9:16,种子 42」。
一次只出一张 PNG,单张可能要几十秒到几分钟,这是接口的常态。
同种子能保住构图和大体样子,但改了尺寸或模型就是另一张图,也做不到同一个角色换场景还长一样。
会话种子只记在内存里,重启 DSH 后每个会话的第一张重新随机。
卸载
| 方式 | 做法 |
|---|
| 让 Agent 卸 | 对 agent 说:卸载插件 dsh-moss-image |
| 插件管理页 | 插件 → 已安装 → 该插件 → 卸载 |
| 安装脚本 | node install.mjs --uninstall --apply |
| 手动 | 删掉 dependencies 和 dsh.profile.bundles 里的那两行,pnpm install,重启 DSH |
卸载不动这些:凭据服务里的 API Key、~/.dsh/dsh-moss-image/ 下的设置覆盖层与缓存、已经存下的图片。要清干净就手动删。
配置
全部在 设置 → 侧栏 Moss 生图 里改(不再挤在「插件」页里),保存后下一张图就生效,不用重启。
| 项 | 默认 | 说明 |
|---|
| API Key | 空 | 存进 DSH 凭据服务(键名 MOSS_API_KEY),不写进配置文件、不回显 |
| 接口地址 | https://api.mosi.cn | |
| 超时 | 900 秒 | 只在 Plugins 页的 schema 表单里改 |
| 默认模型 | moss-image-sft-1.0 | base 没做后训练,参数不对容易出废图;带日期的快照版用于固定版本 |
| 尺寸 | 1024x1024 | 下拉选预设,也可手填宽x高,见下表 |
| 负向提示词 | nsfw, worst quality, bad anatomy, watermark, jpeg artifact | 模型另传的负向词追加在后面 |
| 步数 / 引导系数 | 空 | 用服务端默认;官方推荐步数 ≥50、引导系数 3–6(提示词越短越高) |
| 种子模式 | 沿用上一张 | 也可选每张随机、固定值(选固定值才出现数值框) |
| 让 DeepSeek 优化提示词 | 关 | 扩写细节、按主题配场景和构图;关掉就把你的描述原样传过去 |
| 转成英文提示词 | 关 | 开启后模型把提示词写成英文 |
| 开启布局生图 | 开 | 实验功能;关掉后模型就看不到 layout 参数 |
| 服务端智能改写 | 开 | 和「让 DeepSeek 优化提示词」同时开会互相限制,建议只开一个;布局生图时自动关闭 |
| 可见水印 | 关 | |
| 目录 | ~/Pictures/Moss | 必填完整路径,可用 ~ 开头;所有会话、所有相册都在这里,填相对路径保存时就报错 |
| 画风 | 不追加 | 四选一;选中的画风提示词固定在描述最前面。要加画风改 lib/styles.js |
| 文件名模板 | {date}-{time}-{slug}-s{seed} | 可用 {date} {time} {slug} {seed} {width} {height} |
尺寸预设
| 长宽比 | 低档(约 100 万像素) | 高档(约 200 万像素) |
|---|
| 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 |
2048×2048 超总像素上限,所以 1:1 高档只到 1440;1080 不是 16 的倍数,所以 16:9 高档取 1920×1088。
文件
lib/index.js host:配置、image_generate 工具、会话种子、落盘+元数据、本地路由(含 library/*)
lib/moss.js 纯逻辑:参数与设置校验、提示词规则、布局编译、种子挑选、保存目录解析、请求体、错误翻译、文件名
lib/styles.js 画风目录:id / 名字 / 固定提示词串
lib/library.js 图库的文件与元数据层:列表、相册、移动、进废纸篓、library.json
lib/client.js client:设置侧栏一节、图库面板、输入框按钮
cordis.patch.yml profile bundles 里插一条自己的行
install.mjs 安装/卸载脚本,默认干跑
icon.svg 图标
test/ node:test 单测
PLAN.md 接口事实、设计与实现记录
验证
npm test
npm run check
装上之后:设置 → 侧栏 Moss 生图 里点「测试连接」(只查模型列表,不计费),再点「试生成」看能否出图;侧栏点「Moss 图库」看图库。
工具是否换上了新版:调用 cordis_inspect_query(provider Tool,method listTools),看 image_generate 的 schema 里是否带 new_seed、style 之外的画风说明;开了布局生图的还应带 layout。
图库接口自测:GET /x-moss-image/library/list、GET /x-moss-image/library/file?rel=<相对路径>(同源、只认保存目录里的 PNG)。
设置页改了提示词或布局开关,保存后工具会重新注册,下一轮对话即按新规则写提示词。
更新记录
旧版本见 Releases。
2.1.0 · 2026-11-03
- 图库改成文件夹式操作:相册排进列表(用里面最新一张图当封面,也可右键「设为相册封面」),双击进入,面包屑 /
Backspace 返回
- 单击选中、
Ctrl/Cmd 加选、Shift 连选、空白处拖拽框选、Ctrl+A 全选、Delete 删除、Enter 打开
- 右键菜单:图片(打开 / 改图 / 设为封面 / 移到相册 / 删除)、相册(打开 / 重命名 / 删除)、空白处(新建相册)
- 新建 / 重命名相册改成图格里就地输入,不再有工具条输入框
- 删相册可选「仅删相册(图移回根目录)」或「连图一起删(进废纸篓)」;有非 PNG 文件挡着就不删并说明
- 工具条:
Moss 图库 标题 + 面包屑 + 删除 / 新建相册在左,排序(时间 / 名称 / 大小)与刷新在右
- 底部状态栏显示项目数、选中数、总大小和保存目录;操作提示改成浮层,几秒后自动消失,不再挤在网格里
- 样式重做:工具条、菜单、浮层用毛玻璃(同屏最多 3 个 backdrop-filter),磁贴有 hover / 选中态,颜色跟着主题走
library.json 升到 v2({version:2, files, albums}),旧格式读取时自动兼容
- 单测新增
test/client.test.mjs:真装载 client、校验四个槽位都注册、逐个组件渲染一次(防「引用了不存在的函数」导致侧栏入口消失)
2.0.0 · 2026-11-03
- 设置从「插件」标签搬到设置侧栏,独立一节「Moss 生图」
- 新增「Moss 图库」:点开放大、上一张/下一张、改图、删除(进系统废纸篓)、多选、相册归档
- 保存目录收敛为唯一绝对路径,设置页试生成也落这里;相册就是它下面一层文件夹
- 新增四套可选画风,选中即把固定提示词拼在你描述最前面
- 关掉「让 DeepSeek 优化提示词」后严格原文照传,想改措辞必须先问你;英文模式改为逐句忠实翻译
- 改图沿用原种子与原尺寸,构图不跳
升级注意:pathMode 已移除。老配置里配过相对目录的会被丢弃、回落到默认 ~/Pictures/Moss;已配的绝对目录原样保留。升级后重启一次 dsh。
node install.mjs --apply # 从主干升级
node install.mjs --uninstall --apply # 卸掉
许可
MIT,全文见 LICENSE。Copyright (c) 2026 Akashyc。
社区插件,非 DeepSeek 或 Moss 官方出品,与两家无隶属关系。需自备 Moss API Key,调用费用由使用者承担;插件不代收费用、不上报用量。
提示词与生图参数只发往所配置的 Moss 接口,图片落在你指定的本地目录。生成内容由使用者负责,需遵守 Moss 平台的内容政策与所在地法律。
private: true 只防误执行 npm publish,不影响源码开放。