调用中转站生成图片并保存为会话附件
31/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/9 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
该插件未发布到 npm,按作者文档从 GitHub 源安装即可(静态检查只覆盖 npm 路径,不代表插件不可用)。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add leolee9086/dsh-tool-image该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · vision
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 28 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装仓库 package.json 标记 private,未发布到 npm,需从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包dsh-tool-image(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/10 15:49:50
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 12 处,展示前 12 条)
- 读取本地文件lib/index.js:107
if (!existsSync(file)) return undefined - 读取本地文件lib/index.js:108
const text = readFileSync(file, 'utf8') - 发起网络请求lib/index.js:307
const res = await fetch(url, init) - 写入本地文件lib/index.js:330
await mkdir(saveDir, { recursive: true }) - 写入本地文件lib/index.js:337
await writeFile(file, image.data) - 读取本地文件lib/index.js:544
if (!existsSync(resolvedPath)) throw new Error(`image tool: input image not found — ${resolvedPath}`) - 读取本地文件lib/index.js:550
inputImages.push({ data: await readFile(resolvedPath), filename: basename(resolvedPath), mediaType }) - 写入剪贴板src/client.js:143
return navigator.clipboard.writeText(text).then(() => true, () => copyViaTextarea(text)); - 发起网络请求src/client.js:186
return fetch(url).then((res) => { - 发起网络请求lib/image-protocols.js:88
const response = await fetch(source.url, { signal }) - 发起网络请求lib/image-protocols.js:141
const response = await fetch(url, { method: 'POST', headers, body: JSON.stringify(body), signal: composed }) - 发起网络请求lib/model-catalog.js:74
const response = await fetch(page.href, { headers, signal })
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 调用中转站生成图片
- 出图落盘保存
- 注册为会话附件
DeepSeek Harness 的远程文生图/参考生图 Cordis 插件:接入 OpenAI 兼容中转站,出图落盘并注册为附件,自带工具卡与中转站查询
README
由 DeepSeek 最新模型翻译生成dsh-tool-image
DeepSeek Harness 的远程图像生成 / 参考生图插件,挂载在 HOST 平面,供不同 agent 预设下的会话共用。支持 OpenAI 兼容的图像接口、图像聊天接口和 Gemini 原生接口;出图同时保存为文件,并注册为会话附件,让模型和界面都能看见结果。
站点地址和凭据名来自运行时配置,插件不内置供应商地址或密钥。当前版本 0.4.0,更新内容见 CHANGELOG。
工具
| 工具 | 用途 | 必填参数 |
| image_generate | 文生图 | prompt |
| image_edit | 参考生图 / 改图,支持一次传多张参考图 | prompt、image_path(路径或路径数组) |
| image_providers | 查询已配置 provider,按需探测当前凭据可见的模型目录 | 无 |
生图工具共用的可选参数:
| 参数 | 说明 |
| provider | DSH 中已配置的 provider id;从运行时读取其 baseURL、apiKeyEnv 和协议类型 |
| base_url、api_key_env | 显式指定 API 基址和保存密钥的变量名,可覆盖 provider 中对应的配置;密钥值不作为工具参数传入 |
| model | 默认 gpt-image-2。
展开完整文档(README 剩余 1 节)
dsh-tool-image
DeepSeek Harness 的远程图像生成 / 参考生图插件,挂载在 HOST 平面,供不同 agent 预设下的会话共用。支持 OpenAI 兼容的图像接口、图像聊天接口和 Gemini 原生接口;出图同时保存为文件,并注册为会话附件,让模型和界面都能看见结果。
站点地址和凭据名来自运行时配置,插件不内置供应商地址或密钥。当前版本 0.4.0,更新内容见 CHANGELOG。
工具
| 工具 | 用途 | 必填参数 |
| image_generate | 文生图 | prompt |
| image_edit | 参考生图 / 改图,支持一次传多张参考图 | prompt、image_path(路径或路径数组) |
| image_providers | 查询已配置 provider,按需探测当前凭据可见的模型目录 | 无 |
生图工具共用的可选参数:
| 参数 | 说明 |
| provider | DSH 中已配置的 provider id;从运行时读取其 baseURL、apiKeyEnv 和协议类型 |
| base_url、api_key_env | 显式指定 API 基址和保存密钥的变量名,可覆盖 provider 中对应的配置;密钥值不作为工具参数传入 |
| model | 默认 gpt-image-2。具体模型 id 以目标站点为准,插件不会把名称当成可用性保证 |
| api | auto(默认)、images、chat 或 gemini;自动选择仅是路由建议,可显式覆盖 |
| count | 图像接口支持 1–8,默认 1;chat / gemini 只接受 1,禁止自动拆成多个付费请求 |
| size | 如 1536x2048。图像接口直接传尺寸;chat / gemini 转成标准宽高比,非标准比例在请求前报错 |
| resolution | 1K、2K、4K,仅适用于 chat / gemini;模型是否支持对应档位由站点决定 |
| transparent | 仅 images 支持,设置 background=transparent;其它协议在请求前拒绝,避免悄悄忽略 |
| save_dir | 长期保留素材时显式指定。默认 <系统临时目录>/dsh-image,也可用插件配置 saveDir 设置默认值 |
自动路由:provider 的协议类型为 google-generative-ai 时使用 Gemini 原生接口;否则 Gemini image / nano-banana 名称走 chat,其它名称走 images。显式覆盖 base_url 后不沿用原 provider 的协议类型。自动路由不会在失败后尝试另一种收费接口。
选择接口
| api | 文生图和参考生图的请求 | 返回图片形态 |
| images | /images/generations JSON、/images/edits multipart,多张参考图使用重复的 image 字段 | data[].b64_json 或 data[].url |
| chat | /chat/completions,提示词和全部参考图放进用户消息 | message.images、内容中的图像块,或 Markdown 图片链接 |
| gemini | /models/{model}:generateContent,提示词和参考图以 parts / inlineData 传入 | candidates[].content.parts[].inlineData,兼容 inline_data |
OpenAI 兼容站的 base_url 应包含该站的 API 前缀,例如 https://relay.example/v1;Gemini 原生基址未带版本时会补 /v1beta,已带 /v1 或 /v1beta 时保留。请求失败会返回原接口错误,不自动重试、不切换站点,也不追加付费生成。
例如,工具参数可以这样填写(provider id 和 model 需换成自己的配置):
{
"provider": "my-image-provider",
"model": "gpt-image-2",
"api": "images",
"prompt": "一张适合手机阅读的竖版漫画", "size": "1536x2048", "save_dir": "./image-out" }
参考生图在同一组参数中加 image_path:
{ "image_path": ["./reference-a.png", "./reference-b.png"] }
查询模型与判断依据
先调用 image_providers 查看运行时站点;probe=true 查询当前凭据能访问的模型目录,不调用收费生图。目录协议 api 可选 auto、openai 或 gemini,Gemini 目录支持分页。
show_all 默认 true,输出目录与配置模型的并集,保留陌生名称和仅配置的别名;设为 false 时只显示图像候选。每项标明来自目录、配置或两者,并区分:
- 输出模态 / 端点元数据:站点明确声明图像输出或图像生成接口。
- 名称推断:名称像已知图像模型家族,仍需确认实际接口与权限。
- 未确认图像输出:不因名字陌生而删掉,也不把能输入图片的视觉模型当成能生成图片。
显式文本输出信息会阻止仅凭模型名认定为图像模型。普通 generateContent 方法本身也不是图像输出的证据。同地址的不同 provider 可能使用不同凭据分组;目录里有某模型,不等于当前分组有生图权限。
文件、附件与尺寸
每次生成先保存真实图片,再向可选的 attachments 服务注册。返回 summary、files 和 images;output.render 为每张附件提供 image block。附件服务不可用时保留文件路径,不把已生成的图片当成生成失败。
附件服务可能缩小预览。插件保留 originalDimensions,在结果中分别说明原图尺寸与预览尺寸,输出契约严格声明这些字段并继续拒绝未知字段。原文件不会因预览缩小而被覆盖;4K 文件尺寸也不代表插件能证明模型的内部采样分辨率。
图片返回格式优先按 PNG / JPEG / WebP / GIF 文件特征识别。API 返回的图片下载链接不携带模型端点的 API 密钥。无图响应会报告拒绝或结束原因,避免只说「成功但没图片」。
安装与运行时配置
本仓库是可安装的 Cordis bundle,package.json 的 dsh.bundle.patch 指向 cordis.patch.yml。通过 DSH 的插件安装入口安装,挂载到 HOST 平面;不要把跨会话图片工具当作某个 agent 预设独占的服务。
凭据优先读取 api_key_env 或 provider 的 apiKeyEnv 指定的同名环境变量,再读取 DSH_HOME 下的凭据文件(默认 ~/.dsh/.credentials.yaml)。插件仅报告凭据名,不返回密钥值。
无 provider 时可通过 base_url + api_key_env 完整指定。DSH_IMAGE_BASE_URL 可作为地址后备;如果密钥保存在 DSH_IMAGE_API_KEY,显式传 api_key_env: "DSH_IMAGE_API_KEY" 即可使用。
本地开发时 Host 入口是 lib/index.js,Client 入口是 src/client.js。修改后按当前部署的插件重载 / 构建机制处理,并验证既有 GUI;单改文件或另开服务器不能保证现有页面已更新。
界面与工具检索
浏览器侧为 image_generate / image_edit 提供专属工具卡,显示全部附件,支持复制图片和存文件;透明区域以棋盘格呈现。图片由会话授权的 loadImage 加载。
工具描述包含「生成图片」「画图」「图生图」「模型查询」等检索词,适合配合 dsh-tool-gateway 的 find_tools 工具箱方式使用。
验证与限制
pnpm test
测试不依赖 DSH 内部包,也不发收费请求;覆盖输出契约的宿主关键词子集、严格返回值、原尺寸 / 缩小预览、模型目录合并与分页、多参考图传输、图片解析及失败不重试。受限环境中也可直接执行 node test/output-schema.test.mjs、node test/image-tool.test.mjs、node test/prompt-copy.test.mjs。
图像接口已做实际生成验证;新增聊天 / Gemini 原生适配的自动化验证使用模拟服务,不宣称所有站点和型号都已端到端实测。尺寸、分辨率档位、透明选项和多张生成仍取决于模型及站点适配。插件未实现取消之外的全局并发调度。
交流群
欢迎加个人讨论群【工具软件爱好者折腾群-综合讨论】:点击加入(群号 1017854502)。
赞赏
如果这个项目帮到了你,可以请我喝杯咖啡:
赞赏码
也欢迎通过 爱发电 支持。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
leolee9086/dsh-tool-image
调用中转站生成图片并保存为会话附件
相关插件 · 视觉能力
智能体工作台Devin-AXIS/iPolloWork
企业级、本地优先的智能体工作台,面向个人和智能体团队——一个工作区,容纳多个智能体引擎;一套统一体系,管理插件和技能;支…
★ 7,332已汉化DSH
72
开源设计工作台nexu-io/open-design
OpenDesign:首个协作式 AI 设计智能体工作区
★ 105,153已汉化DSH
71.8
多智能体编码工作区spacering-net/codeg
多智能体协作的 AI 编程工作区:汇总 Claude Code、Codex、OpenCode、Pi、Grok Build 等来源的会话。支持桌面应用、自托管服务器或 Docker。
★ 4,244已汉化DSH
71.6
GPT 图像提示词库freestylefly/awesome-gpt-image-2
Prompt as Code | GPT Image 2 / 2.5 提示词与案例库,530+ 个案例、20+…
★ 34,534已汉化DSH
71.5
架构图生成器tt-a1i/archify
把你想理解、规划或分享的事,变成可以互动的可视化作品。
★ 92,046已汉化DSH
71.1
AI 用量桌面小部件Javis603/token-monitor
EN | 简 | 繁 | KO | JA | PT
★ 3,480已汉化DSH
71