Model or dataset
shanliuling/dsh-image-gen avatar
shanliuling/dsh-image-gen

dsh-image-gen: an image generation plugin for DeepSeek Harness

AI image studio for DeepSeek Harness — generate, edit & compare images in chat, with 500+ prompts, gallery, multi-model workflows and ComfyUI.

419 stars30 forksTypeScriptMIT

At a glance

What is it?
dsh-image-gen adds chat-based image generation, an infinite canvas, batch Studio work and local ComfyUI workflows to DeepSeek Harness. It is a plugin, not a standalone app, so it only makes sense if you already run DSH.
Who is it for?
Adopt dsh-image-gen if you already run DeepSeek Harness and want image generation inside the same conversation, especially if you have a ChatGPT, Grok or Google subscription and would rather log in than buy an image API key. Skip it if you need a standalone image tool, if your work depends on ComfyUI inside Studio or multi-model comparison, or if you cannot run Node.js ^22.19.0 or >= 24.0.0.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What dsh-image-gen actually adds to DeepSeek Harness

DeepSeek Harness is a conversational agent environment, and on its own it has no image pipeline. dsh-image-gen fills that gap as a plugin: it registers image generation as something the agent can do mid-conversation, then wraps the results in a gallery, a canvas and a batch workbench. The README describes the goal as bringing "完整的 AI 图像创作工作流" to DSH, and the entry table splits that workflow across five surfaces: chat, canvas, workbench, inspiration library and gallery.

The intended user is someone already inside DSH who wants to iterate on images without switching tools. That is a narrower audience than a general image generator. If you do not run DSH, nothing here applies to you, because the plugin has no standalone interface. The package.json confirms this: the exports map points at lib/index.js and lib/client.js, and the dsh block declares a bundle patch plus a web client that injects DSH UI packages such as @deepseek-ai/dsh-client-ui-conversation and @deepseek-ai/dsh-client-ui-settings-plugins. It is an extension of a host application, and its whole value depends on that host.

How the plugin is wired: bundle patch, web client and provider layer

The architecture visible in the repository has three layers. The first is the bundle patch declared in cordis.patch.yml, which DSH applies when the plugin is added. The second is the client entry at lib/client.js, which injects into named DSH UI slots: the conversation view, the settings pages, the plugin settings page, the right sidebar, the tool UI and the locale package. That is how a chat message turns into an image card with a revision switcher, and how the gallery appears at the top of a session.

The third layer is the provider abstraction. The README lists Gemini, OpenAI and OpenAI-compatible endpoints, Seedream, DashScope, Grok Imagine, GLM-Image and local ComfyUI. Each provider is configured with an API key, a model, and where relevant an endpoint or base URL. Subscription providers are a separate path: instead of a key, the user expands the provider row and clicks 登录 to authorize in a browser. Two settings deserve attention because they shape daily use. The 测试连接 button validates credentials before you generate anything, and 拉取模型 queries the vendor for its supported image models rather than making you transcribe model names from vendor documentation.

ComfyUI is handled differently from the cloud providers. It takes an API Format Workflow JSON file, and the DSH host must be able to reach the ComfyUI service address you enter. Workflows are named and managed as a set, with optional preset prompts and placeholders, and the agent selects one by name during a conversation.

Installing dsh-image-gen and generating your first image

The prerequisites are a stable DeepSeek Harness release and Node.js ^22.19.0 or >= 24.0.0, as stated in the README's environment requirements. Run the install from the root of your DSH project. The README also notes a global-command variant if dsh is installed system-wide.

bash
pnpm dsh plugin --profile web add dsh-image-gen@latest

After the command completes, restart DSH. The README then directs you to 设置 → 插件 → 插件配置 → 图像生成. Pick a provider, paste an API key, adjust model and endpoint as needed, and set your workspace save options. Click 测试连接 to confirm the credentials work, or 拉取模型 to list the image models the vendor exposes. If you have a ChatGPT, Grok or Google subscription, the README says no API key is required: expand that provider row, click 登录, and finish authorization in the browser.

Once configured, generate from the chat box with a plain description. The README's example is a text prompt:

text
画一张雨夜霓虹街头的赛博朋克猫咪,电影感光线,16:9。

For edits, upload a reference image and describe the change instead. The README's example keeps the composition and alters one detail:

text
保持角色与构图不变,给猫咪戴上一副黑色墨镜。

The result arrives as an image card in the conversation. Editing the original prompt regenerates in place, and the card keeps a history you can switch between. For batch work or finer parameter control, open the gallery entry at the top of the session to reach 图库, 工作台, 灵感 and 收藏.

Where the workflow breaks down: ComfyUI gaps and workspace storage

The README is explicit about one boundary: ComfyUI 暂未接入 Studio 和多模型对比. If your routine is comparing local GPU outputs across workflows, or batching ComfyUI generations from the workbench, this plugin will not do it. You get ComfyUI in chat, selected by workflow name, and you get Studio and multi-model comparison for the cloud providers. Those two halves do not meet.

The storage model is the second constraint. Generated results are stored with workspace isolation, and the plugin settings include workspace save options. That is sensible for separating projects, but it means images live inside the DSH workspace rather than in a neutral folder you can point any viewer at. The README does not document an export path beyond per-image download and batch management in the gallery, so if your downstream pipeline expects files in a fixed directory, check where the workspace actually writes before you build on it.

A third limitation is version churn. The README carries an update notice saying the current version changed substantially and that existing users should update to the latest release. Three releases landed on 2026-09-14 alone: v0.6.5 (订阅免 Key 生图), v0.6.7 (无限画布持久化与落地修复) and v0.6.8 (订阅渠道图生图). The v0.6.7 title mentions canvas persistence fixes, which suggests canvas state handling was still settling. Fast iteration is not a defect, but it does mean you should pin a version you have checked rather than tracking @latest in anything you depend on.

dsh-image-gen versus calling a provider API directly

The obvious alternative is skipping the plugin and calling an image API from your own script. The difference is not capability, it is where the state lives. A direct API call gives you a file and a response object; everything else, prompt history, reference images, revisions, comparison grids, is yours to build. dsh-image-gen supplies those as UI: the revision switcher on an image card, the canvas that holds drafts and reference images, the Studio grid, the 500+ prompt library cached locally so browsing costs no tokens or generation quota.

A second alternative, if you already run ComfyUI, is to work in ComfyUI's own interface and treat DSH as unrelated. That keeps full control over the node graph and every sampler setting, and it avoids the API Format Workflow JSON import step. What you lose is the conversational loop: describing a change in words and having the agent pick the workflow and run it. For a user who thinks in prompts, the plugin is the shorter path. For a user who thinks in node graphs, it is an extra layer.

The subscription path is the sharpest differentiator. If you already pay for ChatGPT, Grok or Google, the README's claim is that you can log in and generate without buying a separate image API key. That is a real cost argument, and it is the reason the plugin exists in its current form. Whether the subscription providers support every operation is worth checking: v0.6.5 was titled 订阅免 Key 生图 and v0.6.8 订阅渠道图生图, which reads as image-to-image arriving for subscription channels later than text-to-image.

Licence, maintenance and what an upgrade costs you

The project is MIT licensed, and the LICENSE file sits at the repository root. MIT is permissive: you can use, modify and redistribute the code, including commercially, provided the copyright notice and permission notice are retained. The repository also ships a SECURITY.md and a CONTRIBUTING.md, which is a reasonable sign that issues and patches have a defined route. This is not legal advice; if you are embedding the plugin in a product, read the LICENSE file yourself.

On maintenance, the last push to the default branch was on 2026-09-14, the same day as the most recent release, v0.6.8. The repository is not archived. The release cadence is high, with three tagged releases in a single day. That cuts both ways. Fixes arrive quickly, and so do changes that can move configuration or storage behaviour under you.

The upgrade cost is mostly configuration drift rather than code. The README's own update notice tells existing users to move to the latest version because the current one changed substantially. If you rely on ComfyUI workflows, keep the API Format Workflow JSON files under version control outside the plugin, since the README does not describe a rollback path for imported workflows. Pin the version in your install command instead of using @latest, and re-run 测试连接 after each upgrade to confirm your provider credentials still resolve.

Who should install it, and what to check first

Install dsh-image-gen if you already run DeepSeek Harness and want image generation to happen in the same conversation as everything else, particularly if you hold a ChatGPT, Grok or Google subscription and would rather authorize than buy another API key. The chat-first flow, the revision switcher on image cards and the locally cached prompt library are the parts that justify the plugin over a script.

Do not install it if you need a standalone image tool, if your work depends on ComfyUI inside Studio or in multi-model comparison, or if your environment cannot meet the Node.js requirement of ^22.19.0 or >= 24.0.0. Do not install it expecting a stable surface either. The README itself warns that the current version changed substantially, and the release history shows rapid movement.

Before you commit, check three things. Confirm your provider is in the supported list and that 拉取模型 returns the models you want. Confirm 测试连接 succeeds with your key or subscription login. Confirm where workspace-isolated storage writes on your machine, and whether the gallery's search, favourite, download and batch operations cover how you intend to retrieve images. If any of those three fails, the plugin's value drops sharply, because the alternatives it competes with are a direct API call and ComfyUI's own interface, both of which you can run without it.

Editorial conclusion

Adopt dsh-image-gen if you already run DeepSeek Harness and want image generation inside the same conversation, especially if you have a ChatGPT, Grok or Google subscription and would rather log in than buy an image API key. Skip it if you need a standalone image tool, if your work depends on ComfyUI inside Studio or multi-model comparison, or if you cannot run Node.js ^22.19.0 or >= 24.0.0. Before committing, verify that your chosen provider appears in the plugin's provider list, that Test Connection succeeds in Settings, and that workspace storage lands where you expect.

Frequently asked questions

What is dsh-image-gen and what does it do?

It is an MIT-licensed TypeScript plugin for DeepSeek Harness that adds image generation and editing to the chat, plus an infinite canvas, a batch Studio workbench, multi-model comparison, a 500+ prompt library, a gallery and local ComfyUI workflows.

How do I install dsh-image-gen?

From your DeepSeek Harness project root, run pnpm dsh plugin --profile web add dsh-image-gen@latest, then restart DSH. The README also lists a global-command variant, a GitHub install and a local clone install.

Does dsh-image-gen need an API key?

Not necessarily. It supports BYOK for providers such as Gemini, OpenAI, Seedream, DashScope, Grok Imagine and GLM-Image, and the README states that if you have a ChatGPT, Grok or Google subscription you can log in instead of supplying a key.

Which image providers does dsh-image-gen support?

The README lists Gemini, OpenAI and compatible endpoints, Seedream, DashScope, Grok Imagine, GLM-Image and local ComfyUI. In the plugin settings you can click 拉取模型 to retrieve the image models a vendor supports.

Does dsh-image-gen work with local ComfyUI?

Yes, but only in chat. You import API Format Workflow JSON files and the agent selects a workflow by name; the README states that ComfyUI is not yet connected to Studio or multi-model comparison.

What are the system requirements for dsh-image-gen?

A stable DeepSeek Harness release and Node.js ^22.19.0 or >= 24.0.0, according to the README's environment requirements.

Official sources

  1. License: MIT
  2. Project website
  3. README
  4. Releases
  5. shanliuling/dsh-image-gen on GitHub
Community notes

Community notes