前言¶
DeepSeek Harness (DSH) 的插件化架构允许开发者扩展其能力。dsh-imgdraw 是一个为 DSH 提供文生图功能的插件,由 ninjasln 维护。它解决了在 DSH 环境中直接调用大模型生成图片的需求,提供了模型工具接口、浏览器交互弹窗以及持久化的图片存储与访问路由。
核心能力¶
该插件主要包含以下能力:
- 模型工具:注册了
draw_image工具,支持通过参数控制提示词、数量、尺寸、后端和标签。 - 浏览器交互:在输入框左侧提供「🎨 生图」按钮,点击后弹出交互窗口。支持选择尺寸(1:1, 16:9 等)、数量(1-4 张)、后端,并实时显示配额。
- 异步生成与预览:支持异步生成图片,结果以 4 格网格展示。每张图片支持下载、选定保留(永不清理)或删除。
- 图片路由:提供
/imgdraw路由,支持通过直链访问生成的图片文件。 - 持久化历史:生成记录保存在
~/.dsh/imgdraw/index.json,跨重启保留。 - 多后端支持:默认支持 DashScope 的
wan2.7-image(免费额度),可选 SiliconFlow 的Qwen-Image。
安装与启用¶
通过 npm 发布的版本,可以使用以下命令安装:
dsh plugin add dsh-imgdraw
安装后,插件会随 profile 自动加载,属于正式 bundle,重启进程不会丢失状态。
配置项¶
插件支持通过 cordis.patch.yml 或 profile overlay 进行配置。主要配置项如下:
| 字段 | 默认值 | 说明 |
|---|---|---|
outDir |
~/.dsh/imgdraw |
图片输出目录 |
keysPath |
~/.dsh/image-api-keys.json |
API keys 配置文件路径 |
routePrefix |
/imgdraw |
图片路由前缀 |
rpcPath |
/imgdraw-rpc |
浏览器 RPC 交互路由 |
keepLatest |
24 |
每轮清理后保留的最新文件数(选定保留的文件不受此限制) |
maxCount |
4 |
单次最大生成数量 |
defaultBackend |
dashscope |
默认后端:dashscope 或 siliconflow |
dashscopeModel |
wan2.7-image |
DashScope 使用的模型 |
siliconflowModel |
Qwen/Qwen-Image |
SiliconFlow 使用的模型 |
historyCap |
50 |
历史记录条数上限 |
使用方法¶
1. 浏览器端操作¶
- 在对话框输入框左侧找到「🎨 生图」按钮并点击。
- 在弹窗中输入提示词,选择尺寸、数量及后端。
- 提交后系统异步生成,结果以 4 格网格展示。
- 对每张图片执行下载、选定保留或删除操作。
2. 模型工具调用¶
AI 可以直接在对话中调用 draw_image 工具。参数包括:
* prompt:提示词
* count:生成数量
* size:图片尺寸
* backend:后端选择
* tag:标记(用于文件命名)
3. 直链访问¶
生成成功的图片可通过直链访问:
http://127.0.0.1:3080/imgdraw/<文件名>
注意事项¶
- 正式 Bundle:本插件为正式 bundle,而非动态插件。重启 DSH 进程不会导致数据丢失。
- 异步机制:浏览器
fetch有 30 秒超时限制,因此生成过程必须异步进行。draw_image工具支持同步等待,但超时设置为 180 秒。 - RPC 通信:Client 与 Host 之间的通信走同源
/imgdraw-rpcHTTP 路由,而非 DSH 原生的 harness.handle。 - 配额逻辑:插件使用本地计数作为配额管理,不提供 API 账单查询接口。用尽免费额度后需切换后端或手动核对。