dsh-imagen:在 DeepSeek Harness 对话里配置化文生图与改图

前言

在 DeepSeek Harness(DSH)里做智能体时,画图往往要单独接 SDK、自己处理返回 URL 和会话展示。上游有些接口给的是短时签名外链,翻回历史对话图就挂了。dsh-imagen 把「选平台 → 调模型 → 落盘 → 在对话里显示」收成一条插件链路,并在配置里切换火山方舟、OpenAI 兼容、Gemini,无需改代码。下面按定位、能力、配置与用法说明。

这是什么

dsh-imagen 是面向 DSH 的文生图 / 改图插件:模型在对话中调用工具 dsh-imagen,按配置对接一家图像 API,把结果写到当前工作区并在回复里以 Markdown 图片展示。

工作方式

调用关系可以概括为:

模型调用 dsh-imagen 工具
  → 按配置选一家接口 → 拿回图片字节
  → 落盘到当前工作区 generated-images/
  → 用一个 HMAC 签名的本地 URL
  → 在对话里显示成 Markdown 图片

插件不把上游外链直接丢给前端,是因为例如火山方舟返回的签名 URL 会在几小时后失效;本地存一份后,回看同一会话仍能看到图。

支持的接口

在 providers[].kind 上切换,三家含义如下:

kind 平台 说明
ark 火山方舟 Seedream 豆包生图,URL 或 base64 返回都认
openai OpenAI Images 兼容 官方 gpt-image-*、各类中转站、兼容网关
gemini Google Gemini gemini-*-image,原生 generateContent

安装与卸载

资料写明:已通过插件管理器装进 desktop profile。源码改动后让宿主重新加载即可,不必重启整个 DSH——在对话里执行 set_plugin false → true,或重启 DSH。

卸载命令:

dsh plugin --profile desktop remove dsh-imagen

配置

配置文件:~/.dsh/imagen/config.json(建议权限 600,密钥只放这里)。

示例(节选):

{
  "version": 2,
  "active": "ark",
  "activeModel": "doubao-seedream-5-0-flash-260915",
  "size": "2K",
  "outputDir": "generated-images",
  "providers": [
    {
      "id": "ark",
      "kind": "ark",
      "name": "火山方舟 Seedream",
      "baseUrl": "https://ark.cn-beijing.volces.com/api/v3",
      "apiKey": "ark-xxxxxxxx",
      "models": [
        "doubao-seedream-5-0-flash-260915",
        "doubao-seedream-5-0-260915"
      ],
      "watermark": false
    }
  ]
}

主要字段:active 为当前提供商 id;activeModel 为当前模型(不在列表则退到第一个);size 可为 1K / 2K / 4K / 宽x高,空字符串表示交给上游;outputDir 默认 generated-images。每个 provider 需 id、kind、apiKey、models(至少一个),baseUrl 可不填则用默认地址。

换模型或尺寸可以不手改文件:输入栏右侧有「当前生图模型」和「图像大小」下拉,切换后会写回配置;也可在单次工具调用里用 provider / model / size 覆盖,不会改配置文件。旧版 v1 单 model 配置会在读取时自动兼容,首次保存后写成 v2。

三家配置差异(易踩点)

  1. ark:size 支持 1K/2K/4K 或 宽x高;参考图放在请求体 image 数组(URL 或 data URL),不是 multipart。
  2. openai:官方尺寸多为 1024x1024 等或 auto,写 1K/2K/4K 会被换成 auto;显式宽高才原样透传;改图走 multipart。
  3. gemini:无尺寸参数,size 被忽略;比例需写进提示词。

设置页

路径:设置 → 生图(在 workbuddy 项下面)。可增删提供商、填 API 与多个模型 id、设默认大小与输出目录;保存后每次出图都会重读配置,立即生效。API Key 输入框默认为空,留空保存表示不改动原 key;配置相关接口仅接受本机请求,外部 Origin 返回 403。

工具参数与典型用法

工具名:dsh-imagen。

参数 必填 说明
prompt 是 完整画面描述
size 否 1K / 2K / 4K / 宽x高
model 否 本次临时覆盖模型
provider 否 本次临时指定提供商
image 否 参考图 1–8 张,本地绝对路径或 http(s) URL;纯文生图请省略
watermark 否 本次是否加水印

用户在对话里说「画一张…」「按参考图改…」时,插件还会在系统提示里注册路由规则(dsh-imagen:routing,order 2940),引导模型在用户要新图或改图时调用本工具;仅讨论已有图片、或交付物是文字/代码/文档时不应调用。

生成文件路径:<当前工作区>/generated-images/imagen-<时间>-<随机>.png。预览地址形如 http://127.0.0.1:60682/api/imagen/preview/<令牌>,令牌由 ~/.dsh/imagen/preview.key 做 HMAC 签名。

本地不花钱自测:在仓库目录 npm test(15 个适配层单测);node scripts/mock-ark.mjs 18080 起假方舟,在 config.json 增加指向 http://127.0.0.1:18080/api/v3 的 provider,调用时传 provider: "mock"。

适用场景与注意

适合在 DSH 桌面 profile 里需要对话内出图、多上游可切换、历史会话稳定看图的场景。插件以当前 DSH 进程权限运行,密钥落在用户主目录配置里;安装或启用前应自行查看仓库源码与 MIT 许可证。改 index.js / adapters.js 才需要重载插件;只改 config.json 不需重载。

常见上游错误:方舟 SetLimitExceeded / 安全体验模式需在控制台关闭或调限额;401 查 apiKey;404 核对模型 id 是否已在账号开通。

结尾

dsh-imagen 把三家图像 API 和 DSH 工具、本地预览、设置页串在一起,减少自建出图胶水代码。更多字段与 FAQ 见仓库 README。

  • 目录页:https://www.skillhub.cn/plugins/AlexMillerOvO/dsh-imagen
  • GitHub:https://github.com/AlexMillerOvO/dsh-imagen
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye