前言¶
在 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 也能出图。
核心功能¶
-
会话内文生图:插件加载后,新会话中的 AI 可调用
creative_generate_image;你只需用自然语言描述画面(README 示例包括水墨风竹子、像素风图标、16:9 插画等),无需自己拼 shell 命令。 -
OpenAI 兼容桥接:只依赖标准
POST /images/generations。默认baseUrl为https://api.stepfun.com/step_plan/v1,默认模型step-image-edit-2;可通过工具参数或 CLI 换成其它兼容服务。 -
本地 PNG 与明确返回:成功时返回 JSON,含
ok、message、path及logs;失败时ok为 false,并带上gen.mjs的 stderr(例如API_ERROR 401、NO_B64_JSON in response)。 -
零第三方依赖:要求 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。插件按顺序读取:
- 环境变量
STEPFUN_API_KEY ~/.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