前言¶
在 DeepSeek Harness(DSH)里做 Agent,常见需求是让模型「说画就画」并把文件落到本机工作区。若自己写 Host 工具、拼请求体、做设置页和聊天卡片,工作量不小;若只在对话里贴 API 文档,模型也难以稳定调用 /images/generations 或 /images/edits。
下面介绍社区插件 dsh-image-gen-plugin(维护者 miller-owo):它向 Agent 注册 generate_image 工具,并在 DSH「设置」中增加「图片生成」页,用 OpenAI 兼容的图片接口完成文生图与图生图。请求参数与 Dasipaint 的 openai.rs::build_request 对齐,官方 OpenAI、中转网关或自建反向代理均可对接。插件分类为「模型推理」;仓库 GitHub 当前星标为 0,许可证 MIT(package.json 版本 1.1.0)。
这是什么¶
dsh-image-gen-plugin 是一个 DSH 插件包,主要做两件事:
- 给 Agent 注入
generate_image:传入提示词即可出图,结果写入本机目录。 - 在 设置 → 图片生成 中配置模型、接口地址、密钥、输出格式、默认张数、落盘路径等。
HTTP 层走 POST {apiUrl}/images/generations(文生图)或 POST {apiUrl}/images/edits(图生图,multipart)。端点背后是自然语言驱动的绘画模型时,提示词原样透传,不做 GPT-image 风格模板包装;仅 OpenAI 图片接口才认的字段(如 moderation)默认不发,并可通过设置开关控制。
核心功能¶
generate_image 工具¶
工具暴露 8 个参数(画质 quality 仅作为调用参数,不在设置页里配;省略时按 high 出图):
| 参数 | 必填 | 说明 |
|---|---|---|
prompt |
是 | 自然语言提示词;图内文字用引号写清并说明位置 |
resolution |
否 | auto(默认)或 宽x高,如 1536x864 |
quality |
否 | low / medium / high / xhigh / max |
count |
否 | 1–10 张;不传用设置默认值 |
background |
否 | auto / transparent / opaque |
location |
否 | 落盘位置;不传为会话工作区 |
images |
否 | 图生图源图路径数组,最多 16 张,每张 ≤50MB |
mask |
否 | 可选 PNG 蒙版,须恰好 1 张源图 |
没有单独的 mode 参数:传 images 即走编辑(/images/edits),不传即走生成(/images/generations)。
自定义分辨率校验顺序与 OpenAI 文档一致:宽高为 16 的倍数;长宽比 1:3–3:1;最长边 ≤3840(可由 maxEdge 调小);总像素在 655,360–8,294,400 之间(故 3840×3840 超限,最大合法正方形约为 2880×2880)。
设置页与 Config¶
配置写入 profile 的 cordis.patch.yml,主要字段包括:
| 字段 | 默认值 | 说明 |
|---|---|---|
apiUrl |
https://api.openai.com/v1 |
基地址,自动拼 /images/generations |
secret |
空 | Bearer 令牌 |
model |
gpt-image-2.5-flare |
可改为端点支持的任意模型 id |
count |
1 |
默认张数 |
outputFormat |
png |
png / jpeg / webp |
outputCompression |
100 |
仅 jpeg / webp |
background |
auto |
默认背景 |
moderation |
auto |
仅显式选 low 时才发该字段 |
defaultResolution |
auto |
调用未写分辨率时使用 |
maxEdge |
3840 |
自定义分辨率最长边上限 |
outputDir |
空 | 留空用插件包内 assets/ |
fileNameFormat |
{time}-{prompt} |
占位符:{time}、{prompt}、{index}、{uniq} |
requestTimeoutSec |
600 |
单次请求超时 |
sendsModeration |
true |
关闭后永不发 moderation |
sendsOutputCompression |
true |
关闭后永不发 output_compression |
文件名模板支持排他创建,同名自动加 -2、-3 后缀,避免覆盖。
工具卡片与提示词建议¶
聊天中会展示工具卡片:生成中显示提示词前几行;出图后可展开完整提示词与实际传入参数。插件把提示词原样交给端点模型,README 建议侧重「内容、版式、引号内文字」,避免 Stable Diffusion 式权重语法或质量咒语;图生图应描述改动而非重述整图。
安装与启用¶
dsh plugin add 会把包装进 profile,并按包内 dsh.bundle.patch 追加到 bundle 栈,无需手改配置文件。
面向 web profile 的安装命令(来自 README 原文):
dsh plugin --profile web add dsh-image-gen-plugin
也可在 Harness 内让 Agent 执行 plugin_manager 的 install_bundle,target 填 dsh-image-gen-plugin。
从本地目录安装时,将包名换成本插件目录的绝对路径,例如:
dsh plugin --profile web add "D:\MyProject\deepseek-image-generation\dsh-image-gen-plugin"
装完后刷新页面(http://127.0.0.1:3080)。Host 侧 JavaScript 变更需重启 DSH 后才会加载新一代;升级可重新执行 add 覆盖安装。
卸载:
dsh plugin --profile web remove dsh-image-gen-plugin
典型用法¶
经过上面的步骤,可按 README 中的顺序使用:
- 打开 设置 → 图片生成,填写 API 地址、API 密钥并选择模型。
- 在新会话中对 Agent 说例如「画一只戴帽子的柯基」;Agent 调用
generate_image,图片写入输出目录并在卡片中显示。 - 图生图时把源图路径交给 Agent,并说明要改什么(例如换背景、改毛色、加围巾)。
维护者提供的自检命令(在插件目录下):
npm run check
可用 node show-prompt.mjs 查看模型实际读到的工具定义全文。
适用场景与注意¶
适合谁:已在 DSH 中跑 Agent、希望用 OpenAI 兼容图片 API(含自建或网关)做文生图 / 图生图,且需要设置页与聊天内预览的开发者。
权限与安全:插件以当前 DSH 进程权限运行,可读写配置中的目录并携带你填写的 API 密钥出网请求;安装前应阅读 源码与 LICENSE,确认接口与数据落盘位置符合你的环境策略。README 另有「安全」专节说明密钥字段存法,部署前建议通读。
生态说明:DSH 采用「一切皆插件」的扩展方式;SkillHub 目录页 为社区站点,与 DeepSeek / 幻方无官方从属关系,并非官方应用商店。
结尾¶
dsh-image-gen-plugin 把 OpenAI 兼容出图收敛成一个 generate_image 工具加一页设置,并区分 JSON 文生图与 multipart 图生图两条链路。若你要在 Harness 里让 Agent 稳定出图并落盘,可按本文安装命令接入,并在设置中配好 apiUrl 与 secret 后在新会话中直接自然语言调用。
- 目录页:https://www.skillhub.cn/plugins/miller-owo/dsh-image-gen-plugin
- GitHub:https://github.com/miller-owo/dsh-image-gen-plugin