🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

远程生图工具 leolee9086/dsh-tool-image

DeepSeek Harness
leolee908628 天前有提交已提供中文文档扫描:含敏感能力

调用中转站生成图片并保存为会话附件

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
装得上吗
本站已在 dsh 0.2.1-rc.5 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 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
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 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)。

赞赏

如果这个项目帮到了你,可以请我喝杯咖啡:

赞赏码

也欢迎通过 爱发电 支持。
预览分享卡片长什么样 ↓leolee9086/dsh-tool-image
分享 · DeepSeek Harness Hub
leolee9086/dsh-tool-image

调用中转站生成图片并保存为会话附件

回到顶部