DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Image Base64 — DeepSeek Harness 插件(DSH Plugin)
← Plugins
I

dsh-image-base64

Image Base64

DeepSeek Harness 插件:在视觉请求前将图像转码为适合 Base64 的格式(PNG),修复 LM Studio 等网关拒绝非 PNG/JPEG/GIF 数据 URL 并显示“'url' field must be a base64 encoded image.”的问题。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:pureexe/dsh-image-base64#68abe65b03ec53bd306d08df8105fc58678f4f03
README兼容性版本

兼容性与来源证明

Image Base64 以 dsh-image-base64 发布,当前版本为 0.1.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
github
Registry 更新时间
2026/9/12

版本

0.1.0stable
2026/9/12

相关插件

正在加载相关插件…

最新版
0.1.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
any
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/9/12
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录

相关插件

继续浏览 vision-media 分类下经过校验的插件。

Tool Describe Image@linxin666/dsh-tool-describe-image面向模型的 describe_image 工具,用于 dsh Web GUI:通过在兼容 OpenAI 的端点调用视觉语言模型,为文本模型提供图像理解能力,以描述一张图像(本地路径、http(s) URL 或附件引用)。可热插拔 —Modlens@liustack/modlens面向仅支持文本的 LLM 的插件视觉能力,由免费的 Antigravity CLI 提供支持Deepseek Ivideodeepseek-ivideoiPolloWork HyperFrames Video Studio,以及 27 个可编辑视频模板,以原生 DeepSeek Harness 对话视图呈现。Imagegen@dickpy/dsh-imagegendsh Web GUI 的 AI 图像生成插件:通过可配置的提供商渠道实现文生图和图生图(gpt-image-2 / grok-imagine-image / nanobanana series / seedream-5.0-pro / dall-e-3,支持原生 xAI Grok Imagine、Google Nano Banana a

README

dsh-image-base64

A DeepSeek Harness plugin that fixes:

This turn failed 400 "'url' field must be a base64 encoded image."
INVALID_REQUEST

when a vision-capable model (e.g. meta/muse-glimmer) is served through an OpenAI-compatible gateway that validates the image MIME type strictly, such as LM Studio.

Why this happens

See deepseek-ai/deepseek-harness#4615 for the full discussion. The short version:

  • dsh-attachment-local's request-image quality ladder re-encodes an image as image/webp whenever the source has an alpha channel (JPEG has no alpha channel to fall back to). A pasted screenshot or a PNG with transparency very often has one.
  • LM Studio's OpenAI-compatible endpoint only accepts image/png, image/jpeg, and image/gif inside a base64 data: URL. It rejects image/webp (and anything else) at the protocol layer with 400, before the request reaches the model.
  • dsh-llm-pi-ai forwards whatever mediaType the attachment store gives it straight into the request — there's no format negotiation between the two, so the mismatch reaches LM Studio unchanged.

What this plugin does

It wraps the attachment store's readImageRequest() (the call dsh-llm-pi-ai makes to get the exact bytes/MIME type that go into the request) and transcodes the result to image/png with sharp whenever its media type isn't in an accepted list (image/png, image/jpeg, image/gif by default). Everything already in an accepted format passes through untouched — only the images that would otherwise be rejected pay the transcode cost.

Install

From your DSH profile directory (or via dsh plugin --profile <name> add, which forwards to pnpm inside the profile):

dsh plugin --profile <name> add /home/pakkapon/dsh-image-base64

Then list it in that profile's package.json under dsh.profile.bundles:

{
  "dsh": {
    "profile": {
      "bundles": [
        "@deepseek-ai/dsh-base",
        "@deepseek-ai/dsh-web-app",
        "dsh-image-base64"
      ]
    }
  }
}

Restart the profile (or let it pick it up automatically if patchReload: live is set) to load it.

Configuration

Accepted media types default to [image/png, image/jpeg, image/gif] (LM Studio's whitelist). To widen or narrow that, target the plugin's id from your own patch layer (profile cordis.patch.yml or $DSH_HOME/cordis.patch.yml):

- id: image-base64-compat
  config:
    acceptedMediaTypes: [image/png, image/jpeg, image/gif, image/webp]

Caveats

  • This patches the attachment store's request-image projection only — it doesn't touch how images are stored, just what's sent on the wire for a model request.
  • Transcoding to PNG is lossless for the pixels it's given, but a PNG re-encode of a large photo is bigger than an equivalent JPEG/WebP. If your gateway actually accepts WebP, add it to acceptedMediaTypes instead of relying on the default.

License

MIT