前言¶
DeepSeek Harness(DSH)的 LLM provider 通常只处理「文本进、文本出」的 chat 路由。DashScope 的图像模型(如 qwen-image-3.0)不是 chat 模型,直接配成 provider 会返回 404 或 400 错误。文生图要走 DashScope 原生的 multimodal-generation 端点,因此需要以工具的形式暴露能力,而不是伪装成一个 chat 模型。
ninjasle/dsh-imagegen 就是这样一个插件:它为 DSH 接上了文生图能力,让模型可以直接画图,图片直接显示在对话里;同时提供输入框上的按钮,可以在不重启进程的情况下改接口地址、模型名和 API Key。
插件定位¶
- 名称:dsh-imagegen
- 维护者:ninjasle
- 分类:模型推理
- 简介:Text-to-image for DeepSeek Harness:一个
generate_image工具,加上输入框上的按钮,可在不重启的情况下实时修改接口地址、模型和 API Key。
核心功能¶
插件提供 4 个 agent 工具、1 个输入框按钮、1 张「插件」设置卡片。
- 工具:
generate_image(文生图 / 参考图改图)、imagegen_models(查看当前配置、可用模型、密钥来源)、imagegen_config(读当前生效配置)、imagegen_set_config(改接口地址、模型名、超时、API Key)。 - UI 按钮:输入框左下角工具行会出现一个图片按钮(在表情按钮右边),点开浮层可以改接口地址、模型名、超时、API Key。保存后立刻生效。
- 设置页:同一张表单也会出现在「设置 → 插件 → 图片生成」里。
- 即时生效:配置字段是 volatile 引用,loader 就地更新,不需要重启进程。
安装¶
前提:DSH ≥ 0.2,profile 里已装载 @deepseek-ai/dsh-tools(默认就有)与 @deepseek-ai/dsh-settings(Web profile 默认就有)。
插件已发布到 npm:@danenze/dsh-imagegeneration。
在 DSH 会话里让 agent 安装,或直接调用 plugin_manager 工具,三选一:
# 1) npm(推荐,版本可锁)
plugin_manager(action: "install_bundle", target: "@danenze/dsh-imagegeneration")
# 2) GitHub 源码
plugin_manager(action: "install_bundle", target: "github:ninjasle/dsh-imagegen")
# 3) 本地源码目录(绝对路径)
plugin_manager(action: "install_bundle", target: "/path/to/dsh-imagegen")
安装成功后,profile 的 package.json 会出现 "@danenze/dsh-imagegeneration": "0.3.0"(或 link: / github: 形式),dsh.profile.bundles 末尾会出现 @danenze/dsh-imagegeneration。需要重启一次 DSH Web / 桌面端(宿主插件在启动时组装,没有热更)。
npm 包名带
@danenze/前缀是因为dsh-image-generation这个无前缀名字已被别人占用,且dsh-imagegeneration被 npm 判为「与已有包过于相似」而拒收。
典型用法¶
1. 对话里直接说¶
在对话中直接说:「画一只戴围巾的橘猫」。agent 会调用 generate_image 工具,图片落盘并作为附件显示在对话里。
2. 输入框上的按钮¶
输入框左下角工具行会出现一个图片按钮(在表情按钮右边)。点开是一个浮层,可以直接改接口地址、模型名、超时、API Key。保存后立刻生效。
3. 用工具改¶
调用工具可以直接控制生成行为。
generate_image:文生图 / 参考图改图。参数包括prompt(必填,画面描述)、model(覆盖默认模型)、size(DashScope 用1024*1024形式,OpenAI 用1024x1024)、n(1–4,生成张数)、negative(不想出现的元素)、refImages(最多 3 张参考图 http(s) 地址)、watermark(是否加水印)、promptExtend(服务端是否自动扩写提示词)、name(文件名前缀)。imagegen_models:查看当前配置、可用模型、密钥来源(不回显密钥)。imagegen_config:读取当前生效配置。imagegen_set_config:修改接口地址、模型名、超时、API Key。
图片写入 outputDir,同时存进 DSH 附件服务,最终以 text + image 内容块渲染,所以在对话里能直接看到图。
配置项¶
cordis.patch.yml 里的 config,全部可在运行时改(credentialsFile 除外)。
| 键 | 默认 | 说明 |
|---|---|---|
provider |
dashscope |
dashscope 走 multimodal-generation;openai 走 /v1/images/generations |
baseURL |
https://dashscope.aliyuncs.com |
端点根地址 |
model |
qwen-image-3.0 |
默认模型 |
apiKeyEnv |
DASHSCOPE_API_KEY |
从这个环境变量找密钥 |
apiKey |
空 | 直接把密钥写配置里(不推荐,优先用凭据库) |
credentialsFile |
$DSH_HOME/.credentials.yaml |
DSH 凭据文件路径 |
credentialsKey |
MULTIMODAL_GENERATION_API_KEY |
从凭据文件读哪个键 |
outputDir |
$DSH_HOME/imagegen |
图片落盘目录 |
timeoutMs |
180000 |
单次生成超时 |
密钥解析顺序:调用参数 key > config.apiKey > 环境变量 apiKeyEnv > DSH 凭据服务(apiKeyEnv 与 credentialsKey 两个名字都试)> 直接扫 credentialsFile。
密钥不会出现在工具返回值、日志或配置文件里(apiKey 字段标了 role('secret'),跨线前被剔除)。
已知模型¶
qwen-image-3.0(默认)、qwen-image-3.0-pro、qwen-image-2.1-pro、qwen-image-2.0-pro、qwen-image-2.0。
列表只是提示——服务端支持但没列出的 id 也能直接传。
适用场景与注意¶
- 适合需要在 DSH 中直接调用文生图能力的场景,比如让模型生成配图、根据参考图改图等。
- 插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。
- 配置改动无需重启进程,但宿主插件在启动时组装,修改
lib/client.js需要重启服务才能生效。
短结尾¶
dsh-imagegen 通过工具形式将 DashScope Qwen-Image 或 OpenAI 兼容端点接入 DSH,让模型可以直接画图并显示在对话中,同时提供输入框按钮和设置页,支持在运行时修改接口地址、模型名和 API Key,无需重启进程。
- 目录页:https://www.skillhub.cn/plugins/ninjasle/dsh-imagegen
- GitHub:https://github.com/ninjasle/dsh-imagegen