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

文生图画布 NinjaSln-labs/dsh-imgdraw

DeepSeek Harnessv0.1.0
NinjaSln-labs59 天前有提交已提供中文文档扫描:含敏感能力

在输入框一键生图,网格预览并保存历史

29.2/100
综合分
1
GitHub 星标
302
npm 周下载
—/5
用户评分

数据截至 2026/9/20 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-imgdraw
npm 源 · dsh-imgdraw 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · vision
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 59 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-imgdraw @ 0.1.0
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/9/23 01:19:16

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

读写/删除本地文件发起外部网络请求
查看扫描证据(共 20 处,展示前 17 条)
  • 写入本地文件
    lib/index.js:69
    mkdirSync(this.outDir, { recursive: true });
  • 读取本地文件
    lib/index.js:80
    const raw = readFileSync(join(this.outDir, 'index.json'), 'utf8');
  • 写入本地文件
    lib/index.js:111
    writeFileSync(tmp, JSON.stringify(this.index, null, 1));
  • 写入本地文件
    lib/index.js:112
    renameSync(tmp, join(this.outDir, 'index.json'));
  • 删除本地文件
    lib/index.js:117
    unlinkSync(tmp);
  • 读取本地文件
    lib/index.js:142
    size = statSync(p).size;
  • 读取本地文件
    lib/index.js:147
    ts = statSync(p).mtimeMs;
  • 读取本地文件
    lib/index.js:154
    return readdirSync(this.outDir)
  • 读取本地文件
    lib/index.js:156
    .map((n) => ({ n, ts: statSync(join(this.outDir, n)).mtimeMs }))
  • 读取本地文件
    lib/index.js:180
    if (!existsSync(p))
  • 删除本地文件
    lib/index.js:207
    unlinkSync(p);
  • 写入本地文件
    lib/index.js:263
    writeFileSync(join(this.outDir, name), g.bytes);
  • 删除本地文件
    lib/index.js:298
    unlinkSync(join(this.outDir, name));
  • 读取本地文件
    lib/generate.js:44
    const raw = readFileSync(keysPath, 'utf8');
  • 发起网络请求
    lib/generate.js:62
    const res = await fetch(url, { signal });
  • 发起网络请求
    lib/generate.js:102
    const res = await fetch(url, {
  • 发起网络请求
    lib/generate.js:145
    const res = await fetch(endpoint, {
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-agent-presets@deepseek-ai/dsh-attachment@deepseek-ai/dsh-brand@deepseek-ai/dsh-code-runtime@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-invariants@deepseek-ai/dsh-llm@deepseek-ai/dsh-scope
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 输入框一键生图
  • 四格网格预览
  • 保存与删除历史
展开完整介绍(124 字)↓

DeepSeek Harness 文生图插件:draw_image 模型工具 + 输入框生图按钮(异步生成/4 格网格/下载保留删除)+ /imgdraw 路由 + 持久化历史。Text-to-image for DeepSeek Harness.

README

由 DeepSeek 最新模型翻译生成
dsh-imgdraw npm version License GitHub stars DeepSeek Harness 文生图插件:输入框「🎨 生图」按钮 + 弹窗(提示词 / 尺寸 / 数量 / 后端 / 配额 / 异步生成 / 4 格网格 / 下载 / 选定保留 / 删除 / 历史重新生成),并注册模型工具 draw_image 与 /imgdraw/ 图片路由。正式 bundle:重启不丢,随 profile 自动加载。后端:DashScope wan2.7-image(免费默认)与 SiliconFlow Qwen-Image。 特性 - draw_image 模型工具 — 同步等待生成,返回 /imgdraw/ URL 列表。支持 prompt / count / size / backend / tag 参数,AI 可直接在对话中调用。180s 超时,适合大图生成。 - 🎨 生图弹窗 — 输入框左侧按钮 → 弹窗交互:提示词输入(可一键填入 Sin v10 头像模板)、尺寸选择(1:1 / 16:9 / 9:16 / 4:3 / 3:4)、数量选择(1–4 张)、后端切换(dashscope / siliconflow)、实时配额显示(剩余次数/总额度)。
展开完整文档(README 剩余 1 节)
dsh-imgdraw

npm version
License
GitHub stars

DeepSeek Harness 文生图插件:输入框「🎨 生图」按钮 + 弹窗(提示词 / 尺寸 / 数量 / 后端 / 配额 / 异步生成 / 4 格网格 / 下载 / 选定保留 / 删除 / 历史重新生成),并注册模型工具 draw_image 与 /imgdraw/ 图片路由。正式 bundle:重启不丢,随 profile 自动加载。后端:DashScope wan2.7-image(免费默认)与 SiliconFlow Qwen-Image。

特性

- draw_image 模型工具 — 同步等待生成,返回 /imgdraw/ URL 列表。支持 prompt / count / size / backend / tag 参数,AI 可直接在对话中调用。180s 超时,适合大图生成。

- 🎨 生图弹窗 — 输入框左侧按钮 → 弹窗交互:提示词输入(可一键填入 Sin v10 头像模板)、尺寸选择(1:1 / 16:9 / 9:16 / 4:3 / 3:4)、数量选择(1–4 张)、后端切换(dashscope / siliconflow)、实时配额显示(剩余次数/总额度)。提交后异步生成(2s 轮询),结果以 4 格网格展示,每张可下载 / 选定保留(永不清理) / 删除。

- /imgdraw 图片路由 — 直链图片访问:http://127.0.0.1:3080/imgdraw/。历史记录跨重启持久化(~/.dsh/imgdraw/index.json,原子写入)。

- 历史持久化与清理 — 所有 job 记录在 index.json,跨重启保留。选定保留的图片永不清理;每轮自动清理保留最新 N 张(默认 24)。支持从历史记录重新生成。

- 多后端支持 — 配置可切换后端与模型,无需改代码。默认 DashScope wan2.7-image(免费额度),可选 SiliconFlow Qwen-Image,用尽后切 qwen-image-2.0 / z-image-turbo。

安装

npm 发布后
dsh plugin add dsh-imgdraw

本地开发(本机 web profile,指向本单库目录):

cd ~/.dsh/profiles/web
npm add dsh-imgdraw@file:/path/to/dsh-imgdraw
并在 package.json 的 dsh.profile.bundles 列表加入 "dsh-imgdraw",然后重启 dsh web

配置(cordis.patch.yml / profile overlay,均可选)

| 字段 | 默认 | 说明 |
| outDir | ~/.dsh/imgdraw | 图片输出目录 |
| keysPath | ~/.dsh/image-api-keys.json | API keys JSON(dashscope / siliconflow 字段) |
| routePrefix | /imgdraw | 图片路由前缀(无尾斜杠) |
| rpcPath | /imgdraw-rpc | 浏览器 JSON RPC 路由 |
| keepLatest | 24 | 每轮清理后保留的最新文件数(选定保留的文件永不清理) |
| maxCount | 4 | 单次最大生成数量 |
| defaultBackend | dashscope | 默认后端:dashscope(百炼 wan2.7-image 免费)或 siliconflow(Qwen-Image) |
| dashscopeModel | wan2.7-image | 百炼模型 |
| siliconflowModel | Qwen/Qwen-Image | SiliconFlow 模型 |
| historyCap | 50 | 历史记录条数上限(index.json 最多保留的 job 数) |

示例:

- id: imgdraw
name: 'dsh-imgdraw'
config:
keepLatest: 40
defaultBackend: 'dashscope'

使用

- 模型工具:draw_image(prompt / count / size / backend / tag)——同步等待生成,返回 /imgdraw/ 列表。
- 浏览器:输入框左侧「🎨 生图」→ 弹窗填提示词(可一键填入 Sin v10 头像模板)→ 生成 → 4 格网格预览 → 下载 / 保留 / 删除;「最近生成」历史跨重启持久化(~/.dsh/imgdraw/index.json)。
- 直链:http://127.0.0.1:3080/imgdraw/。

HTTP API

两条路由均绑定 127.0.0.1(loopback)。所有响应统一 JSON 封套 { ok: true, result } / { ok: false, error }。

GET

| 路由 | 说明 |
| GET /imgdraw/ | { ok, route, files: JobFile[] } —— 输出目录扫描结果(最近 40 个) |
| GET /imgdraw/ | 图片二进制(image/png 等);文件名非法(. / .. / 路径分隔符 / >200 字符)→ 400 { ok:false, error:'invalid name' };文件名合法但不存在 → 404 |
POST /imgdraw-rpc

请求体为单一封套 { "method": "...", "args": { ... } }。

| 方法 | 参数 | 返回 result |
| submit | prompt(必填)· count 1–4,默认 1 · size 默认 1024*1024 · backend dashscope \| siliconflow,默认取配置 · tag 默认 img(仅保留 \w-,截断 40 字符) | { jobId };prompt 为空时 ok:false |
| status | jobId(注意不是 id) | { jobId, status, prompt, backend, files, createdAt, finishedAt }(error 仅失败时出现);查不到时 ok:false 任务不存在 |
| latest | — | { files, jobs, quota }(quota 为累计成功次数,非剩余额度) |
| select | name(文件名)· keep(true 保留 / false 取消) | { kept } |
| delete | name(文件名) | { deleted };只删文件,任务记录与 quota 计数均保留 |
| backends | — | { backends: [{ id, label, model, keyPresent, quota, quotaHint, sizeHint }] } |
| refresh-keys | — | { ok };重新读取 keys 文件(新增 key 后不必重启) |

文件名参数经 basename 归一化并拒绝路径分隔符、. / .. 与超长(>200)名称;tag 参与生成文件名 draw--[-].。

status 只读进程内任务表(仅由 submit 填充,boot 时不从 index.json 回填)—— 重启后重启前提交的任何 jobId 都查不到(运行中的任务被标记为 interrupted);latest 与 GET /imgdraw/ 读磁盘,历史与文件跨重启仍可见。

后端说明

- 百炼 wan2.7-image(默认):DashScope multimodal-generation/generation 同步端点(国内域名优先,intl 备用);免费额度有限,用尽后建议切 qwen-image 系列或 z-image-turbo。
- SiliconFlow Qwen-Image:images/generations 端点,依赖账户券/余额。
- keys 文件:~/.dsh/image-api-keys.json({"dashscope": "sk-...", "siliconflow": "sk-...", ...})。

开发

npm install --legacy-peer-deps # peer 由宿主 dsh 提供,devDeps 供构建/类型检查
npm run build # tsc → lib/ + esbuild → lib/client.js
npm run typecheck # 严格类型检查

已知坑:客户端 RPC 无 harness.handle(bundle 半无此桥),Client→Host 走同源 /imgdraw-rpc HTTP;生成必须异步提交 + 轮询(浏览器 fetch 30s 上限);动态插件重启丢失是 DSH 机制,本包为正式 bundle 不受影响。

设计决策

| 决策 | 原因 |
| 正式 bundle 而非动态插件 | 动态插件重启丢失是 DSH 机制;正式 bundle 重启不丢、随 profile 自动加载、无需重新批准 |
| Client→Host 走同源 /imgdraw-rpc HTTP | bundle Client 无 harness.handle 桥,RPC 需自建同源路由(loopback,文件名 basename 防穿越) |
| 生成异步提交 + 2s 轮询 | 浏览器 fetch 30s 上限,长耗时生成必须异步;draw_image 工具路径可同步等待(180s 超时) |
| 默认 DashScope 而非 Gemini | Gemini 有地区限制(AI Studio "Unable to check subscription");百炼 wan2.7-image 免费额度且国内直连 |
| 本地计数配额 | API 无账单查询接口,先本地计数 + 手动核对,不做假对接 |

⭐ 支持

如果这个插件对你有帮助,欢迎到 GitHub 仓库 点个 ⭐ Star——它是我持续维护的动力。也欢迎提 issue / PR 一起改进。

贡献与发版

贡献指南见 CONTRIBUTING.md,开发流程与部署纪律见 DEVELOPMENT.md,发布流程见 .github/workflows/publish.yml。

License

MIT — Copyright (c) 2026 ninjasln

上方 version 徽章在 0.x 期间显示为橙色,这是 shields.io 对 semver 预发布/零版本的通用着色规则(esbuild 0.x 同样为橙色),不是包状态异常;1.0.0 起转蓝。
预览分享卡片长什么样 ↓NinjaSln-labs/dsh-imgdraw
分享 · DeepSeek Harness Hub
NinjaSln-labs/dsh-imgdraw

在输入框一键生图,网格预览并保存历史

这是你的仓库?认领条目

回到顶部