dsh-free-image
Manifest validKeyless image generation for DeepSeek Harness: no API key, no paid account, rate-limit aware.
dsh-free-image
Keyless image generation for DeepSeek Harness.
dsh-free-image gives your DSH agent a generate_image tool that needs no API
key and no paid account. A provider is just an HTTP GET endpoint that returns
image bytes for a prompt, so the plugin works out of the box against a free
public endpoint and can be pointed at a self-hosted one by changing config.
Free endpoints are rate limited per IP. The plugin therefore runs one call at a time, honours the endpoint's "retry after N s" answer within a bounded budget, and tells you the remaining wait instead of failing blindly.
Tools
| Tool | Kind | What it does |
|---|---|---|
generate_image | writes one file | Generates one image from a prompt, saves it under the configured directory, returns the absolute path, real pixel size and byte size. |
list_image_models | read-only | Lists the configured providers: endpoint, model, size limits, pacing, timeout, output directory. |
How it works
prompt ──▶ GET <baseUrl>/<url-encoded prompt>?width=…&height=…&nologo=true
◀── image bytes
saved to <output.dir>/<YYYYMMDD-HHMMSS>-<slug>.<ext>
- No key is stored or sent; the request carries only the prompt and size.
- The response is validated as
image/*before anything is written. - Images larger than
output.maxBytesare refused, not written. - A
402/429/503answer is retried after the wait it asks for, as long as the wait fits inretry.budgetMs; otherwise the tool reports the wait.
Install
dsh plugin --profile web add dsh-free-image
systemctl restart dsh-web # or restart your DSH process
No configuration is required: the default provider is the keyless public endpoint. To change the endpoint, size limits or output directory:
- id: free-image
config:
providers:
- id: pollinations
label: Pollinations (keyless)
baseUrl: https://image.pollinations.ai/prompt
model: ''
maxWidth: 1024
maxHeight: 1024
rateLimitMs: 45000
timeoutMs: 120000
defaults:
provider: pollinations
width: 512
height: 512
output:
dir: /root/work/generated/images
maxBytes: 10485760
retry:
budgetMs: 90000
maxAttempts: 3
Configuration
| Key | Default | Meaning |
|---|---|---|
providers[].id | — | Provider id used by the tools. |
providers[].baseUrl | https://image.pollinations.ai/prompt | Prompt endpoint; the encoded prompt is appended as the last path segment. |
providers[].model | '' | Optional model query parameter. |
providers[].maxWidth / maxHeight | 1024 | Largest size the tool may request from this provider. |
providers[].rateLimitMs | 45000 | Advertised pacing, reported to the model. |
providers[].timeoutMs | 120000 | Per-request HTTP timeout. |
defaults.provider | first provider | Provider used when a call omits one. |
defaults.width / height | 512 | Default image size. |
output.dir | <DSH_HOME>/generated/images | Where images are written. |
output.maxBytes | 10485760 | Largest image the plugin will write. |
retry.budgetMs | 90000 | How long one call may wait for a rate limit to clear. |
retry.maxAttempts | 3 | Total HTTP attempts per call. |
Self-hosted endpoints
The same plugin works against a local generation server that accepts a prompt in
the URL path and returns image bytes — for example an Automatic1111/ComfyUI front
end you put in front of it. Point baseUrl at it and the plugin needs no key
there either. This is the private alternative to a public free endpoint: prompts
never leave your machine, and there is no 45-second pacing.
Honest limits
- Public free endpoints are rate limited (about one image per 45 s per IP at the
time of writing), sometimes answer
503, and may change their terms. - Image quality is whatever the endpoint's default model produces.
- The prompt is sent to the endpoint; do not use a public endpoint for anything private.
Requirements
- DSH
>= 0.2.1-rc.4(Node^22.19.0 || >=24.0.0). - Outbound HTTPS to the configured endpoint.
Development
npm run link-peers # link @deepseek-ai peer packages from the local dsh install
node --test
License
MIT
Comments
Loading…
Similar plugins
by ZhaoJun233
Provider-neutral image generation plugin for DeepSeek Harness with Gemini and OpenAI Images compatible APIs.
★ 0
JavaScript
Aug 21, 2026
dsh plugin --profile web add dsh-imagegenby dong2007-png
DSH plugin: generate images via a New API relay (tools: generate_image, list_image_models)
★ 0
MIT
JavaScript
Oct 1, 2026
dsh plugin --profile web add dsh-imagegenby Cikian
OpenAI-compatible image generation for DeepSeek Harness — text-to-image, image editing and batch generation, rendered straight in the conversation.
★ 2
↓ 43/wk
MIT
JavaScript
Oct 14, 2026
dsh plugin --profile web add @cikian/dsh-cture-imageby ShiXiangYu2
DeepSeek Harness plugin: generate_image tool (Qwen-Image / DeepSeek Janus-Pro-7B via SiliconFlow).
★ 0
JavaScript
Aug 15, 2026
dsh plugin --profile web add dsh-imagegen-pluginby SZTMBABY
Agnes image & video generation for DeepSeek Harness: two agent tools, an AI prompt optimizer and a sidebar panel — poster-first cards, honest progress. No API key shipped. / DSH 的 Agnes 图像与视频生成插件:两个 A
★ 7
↓ 441/wk
MIT
JavaScript
Oct 18, 2026
dsh plugin --profile web add dsh-agnes-imageby xiaohuo130
给 DSH(DeepSeek Harness)的 AI 会话加画图能力:注册 creative_generate_image 工具,桥接任意 OpenAI 兼容文生图接口(默认 StepFun step-image-edit-2,零依赖)。
★ 0
MIT
JavaScript
Oct 11, 2026
dsh plugin --profile web add dsh-creative-plugin