
fandc520/dsh-comfyui
dsh-comfyui
dsh-comfyui is a community DeepSeek Harness plugin. Read the repository README before installing.
Install
npx @deepseek-ai/dsh plugin --profile web add dsh-comfyuiRestart `dsh web` after install. Bundle APIs can change during the developer preview.
README badge
[](https://dshhub.dev/plugins/dsh-comfyui)Paste this into your README. The star count updates with every catalog sync.
From the README
Excerpt from fandc520/dsh-comfyui, cleaned of badges and images.
dsh-comfyui
English | 中文
<h1 align="center">dsh-comfyui</h1> <p align="center">让 DeepSeek Harness 的 Agent 直接驱动 ComfyUI 生成与处理图像、视频。</p>功能
Agent 工具
comfyui_run—— 提交 ComfyUI API 格式的工作流,或选用内置模板,返回生成的媒体。两种模式:sync(等待并返回媒体)与async(后台任务,用job_output收集结果——视频生成强烈建议)。comfyui_object_info—— 列出你的 ComfyUI 服务器支持的节点定义,让 Agent 能当场构造合法的工作流。comfyui_workflow—— 列出并运行插件库中的可运行工作流。action: list还会报告你在 ComfyUI 端保存的图工作流以及每个是否已提取出可运行执行流;未提取的会明确标注,Agent 会先转告你在面板里点"提取"。
UI 面板
右侧停靠;从侧边栏轨道打开——三个页签:
- 工作流 —— 插件库(可运行的 API 工作流):新建 / 编辑 / 运行 / 删除,支持"导入文件"直接加载 API 格式
.json。"ComfyUI 端保存"分区自动检测你在 ComfyUI 里保存的图工作流,显示每个已提取出的执行流,并提供提取:画布上往往躺着多个独立流程,可整体提取 / 按分量提取 / 只提取主流程。工作流可用标签分类(见下)。 - 资产 —— 插件生成的所有结果,最新在前,带详情视图和下载链接。鼠标悬停卡片右上角出现红色垃圾桶,点击弹出确认框(列出将删除的文件名),确认后移除索引记录并删除 ComfyUI 输出目录里的对应文件。ComfyUI 自身没有删除输出文件的接口,这一步由插件直接操作文件系统,因此只有当 DSH 能访问到输出目录(通常是同机部署)时才会真正删文件,否则只移除记录并在对话框里说明。
- 队列 —— 基于 ComfyUI 统一任务 API(
/api/jobs)的任务中心:实时队列和历史里所有任务按五态展示(待生成 / 生成中 / 已完成 / 失败 / 已取消),可按状态筛选;插件提交的任务带进度条(进度来自 ComfyUI WS 的 progress 事件),终态任务带预览缩略图、失败原因与耗时;支持操作:删除、中断、重跑、清空队列/历史、释放内存。插件提交的任务标注工作流名。
加载区
仿 ComfyUI LoadImage 节点的媒体加载器,位于工作流页顶部:除图片外,选择窗口也会列出 ComfyUI 加载节点(LoadVideo / LoadAudio)可用的视频与音频文件。
- 多加载位:加载区由若干加载位组成——只有一个时横向铺满面板,两个及以上时等宽排列并自动换行。底部"+ 添加加载区"新增加载位;空加载位显示"加载位 N / 添加素材",点击即可放入;鼠标悬停在任一加载位右上角会出现 ×,点击删除该加载位;在选择窗口第一格选"空"则只清空该位、保留加载位。已放入的素材按顺序填进工作流里未显式指定的加载参数——两张参考图的工作流放两个加载位即可,Agent 无需点名文件。
- 点击任一加载位打开加载窗口:上方导航条(全部 / 已导入 / 已生成)、类型筛选、右侧粘贴/上传区、下方瀑布流网格展示 ComfyUI
input目录里图像 / 视频 / 音频的全部可加载文件 + 插件生成的全部结果。视频与音频可就地播放试听(卡片内自带播放器,点播放器只播放、不会误选);点卡片下方的文件名即选定并关闭窗口。加载文件的类型按扩展名判定,加载节点的输入键从 ComfyUI 节点定义读取(LoadImage.image/LoadVideo.file/LoadAudio.audio),不会漏掉某一类媒体。 - 加载区素材即默认输入:工作流运行中未显式指定的加载参数按加载位顺序自动填入(第 1 位 → 第 1 个图片参数,第 2 位 → 第 2 个;视频/音频参数各取同类型加载位)——无需指定文件名。没有对应加载位的参数保持工作流原值。
- Agent 可见:
comfyui_workflow action: list的输出带loadArea(加载位数量、已放入素材数、文件清单),Agent 能直接知道用户加载了几个素材、分别是什么。 - 分辨率自动匹配:上传时记录像素尺寸;运行时不传
width/height则自动用源图实际分辨率。 - 哈希命名 + 去重:上传重命名为
原名_短哈希.ext(SHA-256 前 10 位十六进制);重复上传相同文件直接复用已有文件名,不产生重复存储。上传后列表实时刷新。 - 选中已生成的图时会自动从输出目录复制到
input,图像加载节点即可使用。
工作流标签
用预设分类(图生图 / 文生图 / 文生视频 / 图生视频 / 参考生视频 / 文生音频 / 参考生音频)+ 自定义标签给可运行工作流分类。标签在编辑工作流时勾选/添加,显示在卡片右上角,列表顶部有带计数的标签筛选条。
内置模板
txt2img(SDXL 文生图)、img2img(SDXL 图生图)、video(Wan 2.1 文生视频,需要 ComfyUI-WanVideoWrapper)。模板节点 id 写在工具描述里,Agent 会覆盖正确的输入。
媒体代理
生成文件按 文件名 + 子目录 + 类型 经同源路由(/comfyui/media)转发,不依赖 ComfyUI 的内存态历史记录——重启 ComfyUI 或清空历史后,资产面板里的旧结果照样能打开(只要文件还在输出目录)。浏览器不直接接触 ComfyUI:没有 CORS、没有混合内容、页面里不出现 API Key,远程 ComfyUI 部署也可直接使用。媒体 URL 的访问地址自动检测:页面加载时浏览器经 /comfyui/ping 自报实际访问的 origin(局域网 IP / 域名 / 反向代理都能拼出正确的链接),也可用配置键 mediaHost 显式指定基址。
工具卡片
结果在对话里渲染成媒体墙(图片/视频带下载链接),后台任务也有状态提示。
设置页
DH 设置里新增 "ComfyUI" 分区:改服务器地址(baseUrl)、API Key 环境变量名(apiKeyEnv)、媒体访问地址(mediaHost)、测试连接,并可切换插件界面语言(中文 / English——存于浏览器,作用于整个插件 UI),无需改动 cordis.yml。数据目录与资产上限只通过 cordis.yml 配置,不在设置页暴露。
配套 skill
通过 ctx.skills.register 注册的运行时 skill(dsh-comfyui-workflows):让 Agent 掌握图工作流 vs 执行流的概念、画布分析规则(连通分量、绕过组、悬空节点)、何时该询问你提取方式,以及图→API 提取的技术规则。
…

