前言¶
在 DeepSeek Harness(dsh)里接大模型对话时,用户常会直接说「画一张……」「生成一张……的图」。纯文本模型默认会回答无法生成图片,这和「在 Harness 里完成一次真实出图」不是同一条路:前者是拒答,后者需要本机或可达的 ComfyUI 服务、HTTP API、以及把结果写回会话并作为附件展示。
dsh-plugin-comfyui(维护者 Making-acid,GitHub:Making-acid/dsh-plugin-comfyui)是社区 DSH bundle,分类为模型推理。它在系统提示词里增加「本地图像生成能力」策略,并提供 comfyui_status、comfyui_start、comfyui_generate 三个工具:查找或启动本机 ComfyUI、执行文生图,并把图片附回对话。插件已收录 awesome-dsh-plugin(dsh-market 目录来源之一);社区插件目录与 DeepSeek / 幻方无官方从属关系。
下面介绍插件定位、能力、安装与配置,以及使用时的注意点。
这是什么¶
一句话:dsh-plugin-comfyui 让 Harness 在本机(或配置的远程地址)连接 ComfyUI,把聊天里的生图请求变成真实图片,保存到会话工作区并在对话中显示附件。
没有插件时,模型面对生图请求往往直接拒绝。装上之后:
- 系统提示词明确规定生图请求必须走 ComfyUI;
- 模型通过三个工具探测服务、必要时启动、再生成;
- 插件自动发现本机 ComfyUI 安装目录(portable 或源码版),首次自动启动成功后可把路径写回配置;
- 生成结果默认落在会话工作区
comfyui-output/,并作为对话附件。
实现上仅使用 Node 内置模块(fetch、fs、child_process),无第三方 npm 依赖,无需构建步骤。ComfyUI 以 detached 方式启动,会话结束或卸载插件不会关闭用户已在跑的 ComfyUI。
核心功能¶
三个模型工具¶
| 工具 | 作用 |
|---|---|
comfyui_status |
查服务是否运行、版本、GPU 显存、队列、安装目录、checkpoint/LoRA 清单、采样器与默认参数,并给出下一步建议 |
comfyui_start |
启动本机 ComfyUI 并等待就绪;可用 install_dir 指定目录(成功后会被记住);已运行则返回状态 |
comfyui_generate |
文生图:prompt 必填;可选尺寸、步数、CFG、采样器、scheduler、seed、张数、checkpoint、LoRA;服务未运行且允许自动启动时会拉起;完成后图片附回对话并返回可复现参数 |
comfyui_generate 返回的 checkpoint、尺寸、steps、CFG、sampler/scheduler、seed、保存路径等,足以复现或微调同一张图。
典型对话流程¶
用户例如说「画一张雨夜霓虹街景」时,大致路径为:
模型读到「本地图像生成能力」策略
→ comfyui_status 探测 /system_stats、/queue、模型清单、安装目录
→ comfyui_start 未运行时:发现安装目录 → detached 启动 → 轮询就绪
→ comfyui_generate 校验模型与采样器 → POST /prompt → 轮询 /history
→ GET /view 下载 → 写入工作区 + 对话附件
→ 模型汇报:图片已附上、保存路径、完整可复现参数
工具调用被中断时,插件会尽力 POST /queue {delete} 与 POST /interrupt 取消队列。ComfyUI 的 execution_error、被拒绝的 prompt、启动失败日志尾部会被翻译成模型可执行的信息。
安装发现与连接¶
ComfyUI 可放在任意目录:插件会在 AIpainting、ComfyUI、用户主目录、桌面、下载等常见位置搜索,也可在配置里写死 installDir,或通过 searchDirs 追加路径。
baseUrl 指向非本机地址时只连接与生成,不代启动;本机地址在 autoStart: true 时可在生图前自动拉起服务。已在 ComfyUI v0.34.0 上验证;至少需要一个 checkpoint 放在 ComfyUI/models/checkpoints(例如 SDXL / Illustrious 系)。
安装与前置条件¶
插件是标准 DSH bundle(package.json 声明 dsh.bundle.patch)。安装命令以仓库 README 为准:
# 已发布到 npm 时(市场一键安装走这条路)
dsh plugin --profile desktop add dsh-plugin-comfyui
# 或从本地路径安装(开发常用)
dsh plugin --profile desktop add link:/path/to/dsh-plugin-comfyui
DSH 桌面端也可用插件管理器的「安装本地 bundle」,或插件市场的一键安装卡片。安装后一般无需重启;若安装时 ComfyUI 未运行,第一次生图可按配置自动拉起。
| 依赖 | 说明 |
|---|---|
| DSH 核心 | >=0.2.0-rc.1 <0.3.0-0(插件在 0.2.0-rc.2 上验证) |
| Node | >=20 |
| ComfyUI | 本机 portable(ComfyUI/ + python_embeded/)或源码版;README 在 v0.34.0 验证 |
| 模型 | 至少一个 checkpoint 于 ComfyUI/models/checkpoints |
当前 npm 包版本为 1.0.0,许可证 MIT。
配置¶
配置写在 profile 的 cordis.patch.yml 里(bundle 自带默认值,字段均可选)。最小示例:
- id: comfyui
name: dsh-plugin-comfyui
config:
baseUrl: http://127.0.0.1:8188
autoStart: true
常用字段摘要:
| 字段 | 默认值 | 说明 |
|---|---|---|
baseUrl |
http://127.0.0.1:8188 |
ComfyUI HTTP API;远程地址不代启动 |
autoStart |
true |
生图时服务未运行是否自动启动 |
installDir |
空 | 指定安装根或其中的 ComfyUI 文件夹;空则自动查找 |
checkpoint |
空 | 默认 checkpoint;空则用服务返回的第一个 |
sampler / scheduler |
dpmpp_2m / karras |
默认采样器与调度器 |
steps / cfg |
28 / 5 |
默认步数与 CFG |
width / height |
1024 / 1024 |
默认尺寸(生成时对齐到 8 的倍数) |
generationTimeoutSeconds |
900 |
单次生成等待上限 |
startTimeoutSeconds |
180 |
等待服务启动上限 |
maxImages |
4 |
单次张数上限 |
outputDir |
空 | 空则 <会话工作区>/comfyui-output |
persistDiscovery |
true |
自动发现的安装目录是否写回配置 |
extraLaunchArgs |
[] |
例如 ["--lowvram"] |
pythonPath |
空 | 源码版 ComfyUI 的 Python(portable 忽略) |
换端口时修改 baseUrl 即可;插件会按新地址连接,本机场景下也可按新端口启动。
典型用法与自行验证¶
日常用法:在已安装插件的 DSH 桌面 profile 中,用自然语言描述画面即可,例如「画一张橘猫在窗台上」或「生成雨夜霓虹街景」;模型应按策略调用工具链,最终在对话里看到附件,并在工作区 comfyui-output/(或你配置的 outputDir)找到文件。
维护者在 README 中给出的仓库内验证命令(需本机 ComfyUI 可运行或可被插件拉起):
node scripts/smoke.mjs
node scripts/test-attachments.mjs
README 还记录了 Windows / RTX 5070 Laptop 8 GB / ComfyUI v0.34.0 等环境下的实测项(如 comfyui_start 约 11.1 秒就绪、832×1216 / 24 steps 约 26.2 秒出图等),可作为性能预期参考,而非对所有硬件的承诺。
适用场景与注意¶
适合谁: 已在本地安装 ComfyUI 和 checkpoint、希望在 DSH 对话里用同一套 Stable Diffusion 工作流出图,且希望模型不要再用「我不能生图」搪塞的用户或集成开发者。
权限与安全: 插件随当前 dsh 进程权限运行,会启动子进程、读写会话工作区、访问配置的 ComfyUI API。安装前应阅读仓库源码与 MIT 许可证,确认 baseUrl、installDir 等配置符合你的环境策略。
常见问题(来自 README):
- 没有可用 checkpoint:将
.safetensors放入<ComfyUI>/models/checkpoints,必要时重启 ComfyUI。 - 写 output 报
Permission denied:可手动先启动 ComfyUI 再生成,或检查沙箱/杀软对 ComfyUI 进程的限制。 - 显存不足或很慢:降低尺寸与步数,或在
extraLaunchArgs中加["--lowvram"]。 - 服务连不上:先看
comfyui_status的serverError,再查端口占用。
结尾¶
dsh-plugin-comfyui 把 Harness 里的生图请求接到本机 ComfyUI:自动发现或启动服务、走标准 HTTP API 完成文生图,并把 PNG 等结果附在对话里,同时保留可复现参数。它是社区模型推理类插件,通过 dsh plugin add 或市场安装即可接入 DSH 的 Cordis 插件体系。
- 插件目录页:https://www.skillhub.cn/plugins/Making-acid/dsh-plugin-comfyui
- 源码与完整说明:https://github.com/Making-acid/dsh-plugin-comfyui