yanfei0725/dsh-qwen-paint
dsh-qwen-paint
dsh-qwen-paint is a community DeepSeek Harness plugin. Read the repository README before installing.
Install
npx @deepseek-ai/dsh plugin --profile <name> add <本包>`Restart `dsh web` after install. Bundle APIs can change during the developer preview.
README badge
[](https://dshhub.dev/plugins/dsh-qwen-paint)Paste this into your README. The star count updates with every catalog sync.
From the README
Excerpt from yanfei0725/dsh-qwen-paint, cleaned of badges and images.
dsh-qwen-paint · (绘图)千问(优化版)
面向 DeepSeek Harness 的本地图像生成插件。经由本机 ComfyUI 调用 Qwen-Image 2.1 模型,
在对话中直接完成文生图与图生图;生成的图像落盘保存,并在会话界面内直接呈现。
网络边界(请以本节为准):插件的网络出口有两类,边界不同。
① 出图数据流(提示词、参考图)—— 只发往 comfyUrl(ComfyUI)与 hipfireUrl(hipfire serve)。
默认仅本机回环(127.0.0.1 / localhost / ::1),且这一约束由代码层强制(lib/net-guard.js):
任一地址被配成本机以外时,插件会拒绝启动而不是照发请求。所有出站请求统一走 guardedFetch,
强制 redirect: 'error'(不跟随任何 HTTP 重定向)。因此出图全程不依赖外部网络,无需任何 API 密钥,亦不产生调用费用。
② 加速包下载(可选,默认开启)—— accelAutoInstall(默认 true)时,插件会从 pip 源与 GitHub
下载厂商专用加速包(pip install --upgrade / git clone)。这会访问外部地址,
但不发送任何提示词或图片。设为 accelAutoInstall: false 即可完全关闭,出图功能不受影响。
详见下文「权限与已知风险」。
⚠ 为如实披露能力:插件提供了
allowRemoteComfy开关(默认false)。用户显式设为true后, 才可把comfyUrl/hipfireUrl指向局域网(如192.168.1.100)或远程主机——此时插件会向你指定的地址发送提示词与图片数据。 这是用户主动选择的行为,不是默认状态。
原作者:@奇迹与你(https://github.com/wonderandyou/dsh-qwen-paint)
优化版作者:@yanfei0725(https://github.com/yanfei0725/dsh-qwen-paint) | 许可协议:MIT | 当前版本:0.17.13
0.16.0 新增说明
- OOM 自动回退:生图遇到显存不足时,自动将 VAE 解码切换为分块模式并重试一次;二次失败会保留错误原因并给出排查建议。需当前 ComfyUI 提供内置
VAEDecodeTiled节点。 - SADA 探索性接入(默认关闭):先探测可选节点,只有节点存在且用户显式开启才加入工作流;本项目尚未安装该第三方节点,节点类型/输入及画质和速度收益未做真机验证,不自动下载。
- 本机扩展 API:新增
/api/qwen-paint/health、/capabilities、/presets、/memory/recent、/memory/preference,供本地工具集成;端点仅接受本机请求。 - 记忆联动基础:每次成功出图追加一条 JSONL 到输出目录
.qwen-paint-memory.jsonl,dsh-auto-memory可从 recent 端点读取;偏好 GET/POST 目前只持久化,不自动改变生图参数。 - ComfyUI Registry 元数据:加入
pyproject.toml以供 Registry 索引发现。此仓库仍是 DSH 插件而非 ComfyUI Python custom node;元数据不代表已发布或已获 Registry 收录。
0.16.1 新增说明(串行抽卡 / 一键出大图)
- 串行抽卡(排队模式):显存不足时(默认 < 16 GB 自动判定)一次要出多张会改成「提交 1 张 → 等结果 → 落盘 → 再提交下一张」,显存里始终只有一份 latent,适合挂机批量生成。可用
serialBatch设为auto(默认)/on/off手动控制。- ⚠ 重要:串行不会卸载主模型。若真的每轮卸载,下一张就要重新加载约 13.5 GB 模型,反而更慢;串行省的是「不同时持有多份 latent」。
- 生成后自动放大(一键出大图):设置
upscaleAfter(如 2,即 1024² → 2048)后,生图完成会自动接着做分块放大。放大失败不影响已生成的原图(原图已落盘,只记录警告)。- 放大逻辑与
upscale_image工具共用同一套节点图,不存在两套实现。
- 放大逻辑与
0.17.1 新增说明(DSH STORE 合规整改 / Registry 元数据)
本版没有改动出图逻辑 —— 全是"让别人能正确收录我们"的元数据与文档整改。
- 权限与已知风险披露(README 新增「权限与已知风险」章节):按 DSH STORE 的口径逐项写明
files=write/network=默认仅 127.0.0.1(代码强制,另有 allowRemoteComfy opt-in)/commands=restricted/credentials=none, 以及 6 条已知风险 —— 不再让用户靠猜。 .comfyignore:把开发脚本、构建产物、内部报告排除出发布归档。.github/workflows/publish_action.yml:推送到main且改动涉及pyproject.toml时自动发版。pyproject.toml按 ComfyUI Registry 官方规范重写:PublisherId/DisplayName字段名大小写、[project.urls].Repository、移除非规范字段。 ⚠ 记录一个踩过的坑:Publisher ID 不等于 GitHub 用户名, 写错时报的是Failed to validate token(完全没提 publisher),极具误导性。- ⚠ 修正一处会导致收录被拒的问题:仓库里曾放着两个构建产物 zip(各约 0.8 MB), 它们同时撞穿 DSH STORE 的「单文件 262,144 B」与「总体积 2,097,152 B」两条上限, 使源码扫描被判为"扫描面不完整"。已全部移除(安装包改由 Release 分发)。
⚠ 关于 DSH STORE 的如实说明:本插件必然具备文件 / 网络 / 命令能力, 因此不满足其"自动准入"要求(
automaticApproval.permissionSignals必须全为false), 只能走user-reviewed人工通道。这是功能决定的,不是缺陷,也不打算为此阉割功能。
0.17.13 新增说明(圈选重绘 UI 三项修复 —— 蒙版不再留垃圾 / 结果图不再裂图)
这一版没有新功能,是把 0.17.12 刚上的圈选浮层修干净。三条都是只看代码不跑就可能漏掉的隐患,
新增回归套件 _inpaint_ui_test.mjs(19 项断言,已并入 npm test)逐条锁住。
1. 一次性蒙版不再留在你的出图目录里 ★
改之前的流程:面板圈选 → host 把 base64 蒙版存成 outputDir/.qwen-paint-mask-<时间戳>.png
→ 重绘 → 这个文件就留在那儿了。每圈一次堆一个,还是 dotfile —— 用户自己在目录里
根本看不见,日子久了就是一排隐形垃圾。
…

