dsh-creative-plugin:为 DSH 会话接入文生图工具

前言

在 DeepSeek Harness(DSH)里做智能体对话时,模型可以调用宿主注册的工具完成联网检索、执行脚本等任务,但默认并不会把「生成一张图并保存到本机」当成一等能力。常见做法是自己在会话外跑脚本、或手写 curl 调 OpenAI 兼容的 /images/generations,再把文件路径贴回对话——步骤多,也不符合 DSH「在会话里用自然语言驱动工具」的习惯。

下面介绍社区插件 dsh-creative-plugin(维护者 xiaohuo130,分类:联网工具):它在 DSH 中注册宿主工具 creative_generate_image,把 AI 会话桥接到任意 OpenAI 兼容文生图接口;默认对接 StepFun 的 step-image-edit-2,脚本侧零 npm 依赖。装好后可以直接对助手说「帮我画一张 XXX」,由模型组织提示词、调用接口、把 PNG 写到本地并返回路径。

这是什么

dsh-creative-plugin 是面向 DSH Web profile 的插件(当前版本 0.2.0,许可证 MIT)。核心只有一件事:在 DSH 服务端注册 creative_generate_image,内部以子进程方式执行 lib/gen.mjs,向 <baseUrl>/images/generations 发 POST,解码 b64_json 后落盘。

除 DSH 外,lib/gen.mjs 也可单独当命令行脚本使用,不安装 DSH 也能出图。

核心功能

  1. 会话内文生图:插件加载后,新会话中的 AI 可调用 creative_generate_image;你只需用自然语言描述画面(README 示例包括水墨风竹子、像素风图标、16:9 插画等),无需自己拼 shell 命令。

  2. OpenAI 兼容桥接:只依赖标准 POST /images/generations。默认 baseUrl 为 https://api.stepfun.com/step_plan/v1,默认模型 step-image-edit-2;可通过工具参数或 CLI 换成其它兼容服务。

  3. 本地 PNG 与明确返回:成功时返回 JSON,含 ok、message、path 及 logs;失败时 ok 为 false,并带上 gen.mjs 的 stderr(例如 API_ERROR 401、NO_B64_JSON in response)。

  4. 零第三方依赖:要求 Node.js ≥ 18(使用内置 fetch),DSH ≥ 0.1.2(0.2.x 亦可)。

说明:本插件走的是纯文生图路径;图生图需 POST /images/edits,generations 接口即使传 image 也会被静默忽略,不宜在此插件上试图生图。

安装与启用

官方推荐从 GitHub 安装到 web profile,并带 -w 写入工作区配置:

dsh plugin --profile web add github:xiaohuo130/dsh-creative-plugin -w

安装后重启 DSH(客户端插件补丁在启动时加载),在新会话中即可使用 creative_generate_image。

环境上需自备图像服务的 API Key。插件按顺序读取:

  1. 环境变量 STEPFUN_API_KEY
  2. ~/.dsh/.credentials.yaml 中的 STEPFUN_API_KEY

Windows PowerShell 临时设置示例:

$env:STEPFUN_API_KEY = 'sk-xxxx'

或写入凭证文件:

STEPFUN_API_KEY: sk-xxxx

Key 需在你启动 DSH 的同一进程环境中生效;改环境变量后若 DSH 已在跑,需重启客户端。

典型用法

在 DSH 里

安装、配置 Key 并重启后,在对话中用中文或英文描述即可,例如:

  • 「帮我画一张水墨风格的竹子,宣纸背景」
  • 「生成一个像素风游戏角色图标,透明背景」

模型会调用工具;默认输出路径为 ~/Pictures/dsh-creative/creative-<时间戳>.png,也可在调用时通过参数 out 指定路径。

工具主要参数(与 README 一致):

参数 必填 说明 默认值
prompt 是 图片提示词(英文描述通常效果更好) —
out 否 输出 PNG 的本地路径 ~/Pictures/dsh-creative/creative-<时间戳>.png
model 否 图像模型名 step-image-edit-2
baseUrl 否 服务基础地址(不含 /images/generations) https://api.stepfun.com/step_plan/v1

命令行(不装 DSH)

node lib/gen.mjs --prompt "a red apple on a wooden table, photo" --out ./out.png

长提示词可从文件读入:

node lib/gen.mjs --prompt-file prompt.txt --out ./out.png

更换兼容服务:

node lib/gen.mjs --prompt "cat in space" --base-url https://api.example.com/v1 --model your-image-model --out ./cat.png

原理简述

用户说「画一张 XXX」
      ↓
DSH 会话 → creative_generate_image(lib/index.js)
      ↓  execFile 调用 node lib/gen.mjs
POST <base-url>/images/generations
      ↓  取 data[0].b64_json,解码写 PNG
返回 path 给会话

若对接非 StepFun 服务且报未知参数,可编辑 lib/gen.mjs 请求体(README 提到 text_mode、cfg_scale、steps 等为 StepFun 调优字段)。

适用场景与注意

适合:已在用 DSH Web profile、希望会话内一句话出图并落盘的开发者;已有 OpenAI 兼容文生图 Key、想快速接到 DSH 工具链的场景;需要轻量 CLI 出图、不想拉一堆 npm 依赖时,可直接用 gen.mjs。

注意:

  • 插件以当前 DSH 进程权限运行,会读写你指定的 out 路径;安装前建议查看 GitHub 仓库 源码与 MIT 许可证,勿把 API Key 提交到仓库或截图外传。
  • 服务须支持 response_format: "b64_json",否则会出现 NO_B64_JSON in response。
  • DSH 生态理念是「一切皆插件」;社区目录 SkillHub 插件页 为独立站点,与 DeepSeek / 幻方无官方从属关系,本文介绍的是社区维护插件,非官方应用商店条目。

结尾

dsh-creative-plugin 把 DSH 会话与 OpenAI 兼容文生图接口用单一宿主工具连起来:配置 Key、重启 DSH 后,用自然语言即可生成 PNG 并拿到本地路径;需要时可换 baseUrl / model,或单独运行 lib/gen.mjs。

  • 目录页:https://www.skillhub.cn/plugins/xiaohuo130/dsh-creative-plugin
  • 源码与文档:https://github.com/xiaohuo130/dsh-creative-plugin
羽毛球分组比赛记分
小程序二维码

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

小夜