DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Image Format Converter — DSH Plugin for DeepSeek Harness
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
I

dsh-image-format-converter

Image Format Converter

Convert model-bound images to JPEG/PNG/WebP for LM Studio compatibility

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:M0R1C/dsh-vision-fix-lmstudio#3a5f8f238cb9088519a919214112e2c5f6ea543f
READMECompatibilityVersions

Compatibility and provenance

Image Format Converter is published as dsh-image-format-converter and currently resolves to version 0.2.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
9/12/2026

Versions

0.2.0stable
9/12/2026

Related plugins

Loading related plugins…

Latest
0.2.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
Not declared
Source
github
GitHub
★ 0
Weekly downloads
0
Last push
9/12/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in vision-media.

Tool Describe Image@linxin666/dsh-tool-describe-imageModel-facing describe_image tool for the dsh web GUI: gives a text-only model image understanding by asking a vision-language model at an OpenAI-compatible endpoint to describe one image (local path, http(s) URL, or attachment reference). Hot-pluggable — Modlens@liustack/modlensPlug-in vision for text-only LLMs, powered by the free Antigravity CLIDeepseek Ivideodeepseek-ivideoiPolloWork HyperFrames Video Studio and 27 editable video templates as a native DeepSeek Harness conversation view.Imagegen@dickpy/dsh-imagegenAI image generation plugin for the dsh web GUI: text-to-image and image-to-image through configurable provider channels (gpt-image-2 / grok-imagine-image / nanobanana series / seedream-5.0-pro / dall-e-3, with native xAI Grok Imagine, Google Nano Banana a

README

dsh-vision-fix-lmstudio

Починка ошибки 400: 'url' field must be a base64 encoded image при работе с локальными vision-моделями в LM Studio из DeepSeek Harness Desktop.

Плагин конвертирует изображения, отправляемые в модель, в подходящий формат — на лету, до того как запрос уйдёт в провайдер. Просто отметьте галочками модели, для которых конвертация включена, и нажмите «отправить».


🎯 Какую проблему решает

LM Studio и большинство локальных vision-моделей ожидают изображения в JPEG и падают с ошибкой 400: 'url' field must be a base64 encoded image при попытке отправить WebP.

Облачные провайдеры (OpenAI, Anthropic, DeepSeek и др.) — наоборот, часто принимают только WebP или PNG, и отправка JPEG в них приводит к ошибке или заметной потере качества.

До этого плагина приходилось выбирать что-то одно:

  • Держать прокси-сервис, который перехватывает запрос и пересобирает его.
  • Мириться с ошибками и вручную конвертировать картинки перед отправкой.

Теперь — один раз настроили галочки в UI DSH, и забыли.


📦 Установка

Через DSH CLI

dsh plugin --profile web add github:MORIC/dsh-vision-fix-lmstudio

Через магазин плагинов

Откройте DSH Desktop → Настройки → Плагины (или «Магазин плагинов»), найдите «Формат изображений» и нажмите «Установить».

Вручную

Склонируйте репозиторий и добавьте его как плагин:

git clone https://github.com/MORIC/dsh-vision-fix-lmstudio.git
cd dsh-vision-fix-lmstudio
pnpm install
pnpm build
dsh plugin --profile web add .

⚙️ Использование

  1. Откройте DSH → Настройки → Формат изображений.
  2. Появится список всех ваших провайдеров и моделей, сгруппированный по провайдеру.
  3. Поставьте галочки напротив моделей, которые должны получать сконвертированные картинки. Модели без галочки получают изображения в исходном формате.
  4. Настройки применяются автоматически — ничего нажимать не нужно, справа снизу появится «Сохранено».

Быстрые действия

  • Кнопки «Вкл / Выкл» у каждого провайдера — массово включить или отключить все модели одного провайдера одним кликом.

  • Поиск — фильтр по имени провайдера или модели. Полезно, когда моделей десятки.

  • «Дополнительные шаблоны» — ручной список wildcard-масок для случаев, когда нужной модели ещё нет в списке (или вы хотите отключить целого провайдера разом):

    lmstudio/*
    openai/gpt-4-vision-preview
    

    Строка, начинающаяся с #, игнорируется.


🔧 Тонкая настройка

Все параметры конвертации задаются в cordis.patch.yml в корне пакета и применяются ко всем моделям, для которых включена конвертация:

- insert:
    - id: image-format-converter
      name: 'dsh-image-format-converter'
      config:
        targetFormat: jpeg       # jpeg | png | webp
        jpegQuality: 90          # 1..100
        pngCompression: 6        # 0..9
        webpQuality: 85          # 1..100
        convertOversized: true   # уменьшать ли слишком большие картинки
        maxDimension: 2048       # максимальная сторона, px

Чтобы изменить — поправьте cordis.patch.yml и перезапустите DSH.

Скоро: выбор формата в самом UI, без правки yml. Следите за обновлениями.


🖥️ Требования

КомпонентВерсия
DeepSeek Harness0.1.2-rc.1 или новее
Node.js≥ 20
DSH Desktop2.0.5+ (если используете десктоп-версию)
ОСWindows 10/11, Linux, macOS

sharp (используется для конвертации) устанавливается автоматически с пре-собранными бинарниками для всех популярных платформ. Если установка падает на этапе сборки — см. документацию sharp.


🩺 Диагностика

Плагин не появился в настройках

Откройте F12 → Console в окне DSH и посмотрите на ошибки. Также проверьте, что при запуске DSH в его логах есть строка:

[image-format-converter] Активен; target=jpeg; excluded=0

Список моделей пустой

Проверьте прямой запрос к роуту плагина (порт DSH виден в адресной строке браузера):

http://127.0.0.1:<port>/image-format-converter/models

Если ответ {"providers":[],"warning":"…"} — пришлите текст warning в Issues: там будет видно, какой именно метод llm не отвечает на вашей версии DSH.

Картинки не конвертируются

В логах хоста DSH при отправке сообщения с картинкой должны пробегать строки:

[image-format-converter] image/webp → image/jpeg (234567 → 89123 байт)
[image-format-converter] lmstudio/… в списке исключений — пропускаем

Если строк нет — значит либо модель без галочки (проверьте UI), либо excludedModels пуст (т.е. всё включено). Если строка есть, но в LM Studio всё равно ошибка — пришлите содержимое строки в Issues.


🤝 Совместимость с другими плагинами

  • dsh-plugin-wallpaper-engine — работает независимо, конфликтов нет.
  • Любые другие llm/stream-хуки — плагин защищён от повторной обработки одного запроса (через WeakSet), так что если несколько плагинов патчат llm/stream, каждый обработает запрос ровно один раз.

🛠️ Разработка

git clone https://github.com/MORIC/dsh-vision-fix-lmstudio.git
cd dsh-vision-fix-lmstudio
pnpm install
pnpm build       # собирает lib/index.js и lib/client.js

Структура

src/
  index.ts        # хост-часть: конвертация, HTTP-роут /models, llm/stream-хук
  client.tsx      # клиентская секция настроек (React)
  shared.ts       # общие типы + BASE_PATH

lib/              # скомпилированный результат (закоммичен)
scripts/
  postbuild-client.mjs   # переименовывает client.iife.js → client.js
cordis.patch.yml  # манифест плагина для DSH

Как это работает

  1. При llm/stream плагин смотрит на поле options.provider/model — это ключ модели.
  2. Сверяет его с excludedModels (wildcard lmstudio/* поддерживается).
  3. Если модели нет в списке исключений — проходит по messages[].content[], находит блоки типа image, читает байты аттачмента, конвертирует через sharp, сохраняет как новый аттачмент и подменяет блок.
  4. Если конвертировать нечего или модель исключена — просто передаёт управление дальше.

📄 Лицензия

MIT — см. LICENSE.


Если плагин сэкономил вам вечер — поставьте ⭐ репозиторию и откройте Issue с описанием вашего сценария: чужие кейсы помогают другим быстрее понять, что это работает не только у них.