news 2026/8/19 9:46:11

ComfyUI-Manager 工作流分享 API 集成指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ComfyUI-Manager 工作流分享 API 集成指南

ComfyUI-Manager 工作流分享 API 集成指南

【免费下载链接】ComfyUI-ManagerComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and enable various custom nodes of ComfyUI. Furthermore, this extension provides a hub feature and convenience functions to access a wide range of information within ComfyUI.项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-Manager

从"发链接靠截图"到"一键发布":你的工作流分享困局

做 ComfyUI 的开发者或资深用户,几乎都遇到过这样的窘境:精心调好的工作流想分享给朋友,要么截图一堆节点图、要么把 workflow JSON 复制到聊天框里让人家手动导入,既费时又容易丢信息。其实 ComfyUI-Manager 内置了一套完整的工作流分享 API 集成方案,它把"工作流 + 生成结果 + 元数据"打包成一条可直接发布的内容,对接 OpenArt、YouML、Copus、Matrix、eSheep、ComfyWorkflows 等多个平台。下面这篇文章就带你从零跑通这套集成,约 15 分钟即可见效。

最短路径快速上手:3 步完成接入

先看效果、再讲原理。这套 API 的调用链非常短,你只需要在 ComfyUI 的前端环境里做三件事:

第 1 步:引入分享模块

// 在 comfyui-manager.js 同目录下导入公共分享入口 import { showOpenArtShareDialog, showCopusShareDialog, showYouMLShareDialog, ShareDialogChooser } from "./comfyui-share-common.js";

第 2 步:绑定一个触发按钮

<button onclick="handleShare()">把当前工作流分享出去</button>

第 3 步:调用统一入口

async function handleShare() { // 弹出平台选择器,让用户挑选目标站点 if (!ShareDialogChooser.instance) { ShareDialogChooser.instance = new ShareDialogChooser(); } ShareDialogChooser.instance.show(); }

到这里,你的页面上已经拥有了一个可用的"分享"入口,用户点开后能自由选择六个目标平台。如果只想要单平台直达,直接调用showOpenArtShareDialog()这类函数即可。

核心能力拆解:这套 API 到底能做什么

能力一:把工作流"翻译"成可传输的 JSON

app.graphToPrompt()是 ComfyUI 官方提供的方法,返回的对象里workflow字段就是可导入、可复用的工作流定义,output字段则是本次执行的完整提示词数据。所有分享逻辑都以此为数据源,你可以把它理解成把"图纸"(workflow)和"施工记录"(prompt)一起打包带走。

能力二:自动识别输出节点与产物

画布上的节点五花八门,API 不会盲目全部打包。getPotentialOutputsAndOutputNodes(nodes)会遍历所有节点,只认SUPPORTED_OUTPUT_NODE_TYPES里登记的六类"出口":

export const SUPPORTED_OUTPUT_NODE_TYPES = [ "PreviewImage", "SaveImage", "VHS_VideoCombine", "ADE_AnimateDiffCombine", "SaveAnimatedWEBP", "CR Image Output" ];

对于视频类节点(如VHS_VideoCombine),还会通过parseURLPath()解析预览 widget 中的 URL 参数,过滤出formatimage开头的产物,避免把不支持格式塞进请求。这一步的结果是一个结构清晰的数组:

{ type: "output", // 产物类型:image 或 output title: "我的预览图", // 节点标题 node_id: 12, // 节点 id output: { // 具体的文件定位信息 filename: "abc.png", subfolder: "outputs", format: "image/png" } }

能力三:按平台分发,一套逻辑多处复用

不同平台的能力差异,统一收敛在两个层面:前端各自实现一个继承自ComfyDialog的对话框类(如OpenArtShareDialogCopusShareDialog),后端则通过glob/share_3rdparty.py里的若干/manager/*路由提供服务。下表可帮你快速对齐:

平台前端入口认证方式特色能力
OpenArtshowOpenArtShareDialog()API Key(存.openart_key发布 + 开发者管理模式
YouMLshowYouMLShareDialog().youml配置文件工作流转交互式应用
CopusshowCopusShareDialog()平台账号元数据丰富,支持区块链存储
MatrixshowShareDialog('matrix')账号密码(存matrix_auth发图 + 发 workflow 文件到聊天室
ComfyWorkflowsshowShareDialog('comfyworkflows')shareKey附带模型 SHA256 与快照信息
eSheepshareToEsheep()无需认证弹窗跳转到平台网页上传

完整实战案例:把工作流发布到 OpenArt

下面以 OpenArt 为例,走一遍从"读配置"到"发布成功"的完整链路。

环境准备

确保你的 ComfyUI 已安装 ComfyUI-Manager,并在前端环境中能看到window.appwindow.api(这两个对象由 ComfyUI 注入)。

第一步:读取/保存 API Key

// 保存密钥:POST 到 /manager/set_openart_auth await api.fetchApi(`/manager/set_openart_auth`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ openart_key: '你的密钥' }) }); // 读取密钥:GET /manager/get_openart_auth,未配置时后端返回 404 const key = await api.fetchApi(`/manager/get_openart_auth`) .then(r => r.ok ? r.json() : { openart_key: '' }) .then(d => d.openart_key);

第二步:组装发布数据

const prompt = await app.graphToPrompt(); const workflowJSON = prompt["workflow"]; // 工作流定义 const nodes = app.graph._nodes; const { potential_outputs } = getPotentialOutputsAndOutputNodes(nodes); const payload = { workflow: workflowJSON, images: potential_outputs, // 用户勾选的产物 title: "人像重绘工作流", description: "一键完成人脸修复与风格迁移", credits: "作者名", is_nsfw: false };

第三步:调用后端路由完成发布

const resp = await api.fetchApi(`/manager/share`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ ...payload, matrix_auth: { homeserver: "", username: "", password: "" }, cw_auth: { cw_sharekey: "" }, share_destinations: ["openart"] }) });

发布成功后,前端对话框里会渲染出"已发布,点击查看"的跳转链接,整个流程即告完成。

进阶技巧与避坑指南

常见报错对照表

现象根因处理建议
提示找不到输出节点画布上没有六类受支持节点,或未跑过一次生成先添加 PreviewImage/SaveImage 并执行一次
产物列表为空节点存在但images数组为空先跑通一次生成再点分享
读取 API Key 返回 404密钥从未保存先 POST 保存,再 GET 读取
OpenArt 校验失败密钥错误或网络不通检查密钥、确认能访问 openart.ai
分享对话框打不开缺少配套 CSS确认custom-nodes-manager.css等样式已引入

安全与认证建议

  • 🔑 密钥写在后端文件(如.openart_key),前端只读不回显,避免把密钥硬编码进源码。
  • 📌 区分环境:comfyui-share-copus.js里用env变量切换 prod/test 的 API 地址,联调时记得切到测试环境。
  • ⚠️ 若你的应用走 HTTPS,跳转外站时注意混入内容警告;eSheep 流程依赖前端构造window.location地址并window.open,请确保域名与端口拼接正确。

个性化定制

  • 想改默认分享站点?读写/manager/share_option路由即可持久化用户偏好,前端comfyui-manager.js中的分享按钮会据此决定直达还是弹出选择器。
  • 想扩展输出节点类型?把新节点名加进SUPPORTED_OUTPUT_NODE_TYPES,并在getPotentialOutputsAndOutputNodes里补充对应的产物解析分支。

总结与延伸资源

回顾一下这次集成:入口在js/comfyui-share-common.js,分发逻辑在各平台的分享对话框类里,后端路由集中在glob/share_3rdparty.py。你只需要掌握app.graphToPrompt()取数据、getPotentialOutputsAndOutputNodes()筛产物、api.fetchApi()走接口这三板斧,就能在自己的应用里复刻一套完整的工作流分享能力。

想继续深入,推荐按这份清单延展阅读:

  • 统一入口与工具函数:js/comfyui-share-common.js
  • 各平台对话框实现:js/comfyui-share-openart.js、js/comfyui-share-copus.js、js/comfyui-share-youml.js
  • 后端路由与认证存取:glob/share_3rdparty.py
  • 前端接线示例:js/comfyui-manager.js

动手跑一遍上面的示例,再对照源码逐行读,你很快就能在 ComfyUI-Manager 的分享体系上搭建出自己的发布管道。如果你对某个平台的细节(比如 YouML 的交互式应用转换、Copus 的区块链存储)感兴趣,欢迎带着问题再去翻对应的对话框源码,那里有更完整的答案。

【免费下载链接】ComfyUI-ManagerComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and enable various custom nodes of ComfyUI. Furthermore, this extension provides a hub feature and convenience functions to access a wide range of information within ComfyUI.项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-Manager

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/19 9:44:39

3分钟上手PPT计时器:全屏自动倒计时,演讲超时从此再见

3分钟上手PPT计时器&#xff1a;全屏自动倒计时&#xff0c;演讲超时从此再见 【免费下载链接】ppttimer 一个简易的 PPT 计时器 项目地址: https://gitcode.com/gh_mirrors/pp/ppttimer 你有没有过这样的时刻&#xff1a;PPT 刚翻到第五页&#xff0c;脑子里正组织下一…

作者头像 李华
网站建设 2026/8/19 9:43:30

Spring Boot 写得快不等于写得好:10 个让资深开发者也翻车的坑

Spring Boot 有多快&#xff1f;几分钟搭个 REST API&#xff0c;几分钟连上数据库&#xff0c;安全、缓存、校验、 测试——别的框架还在配环境&#xff0c;你已经 demo 给老板看了。 但快&#xff0c;是有代价的。 应用能跑&#xff0c;接口能通&#xff0c;测试能过&#xf…

作者头像 李华
网站建设 2026/8/19 9:43:20

网络编程知识点记录

IPV4的知识讲解IPV4是32位的xxx.xxx.xxx.xxx前8位&#xff1a;网络号后24位&#xff1a;主机号xxx .xxx.xxx.xxx网络号 主机号其中工具网络号的分布来划分ABCDE类A类&#xff1a;0~127&#xff08;其中 0 和 127 被保留&#xff09;-->A类只有…

作者头像 李华
网站建设 2026/8/19 9:43:01

为TI RSLK MAX机器人添加CC3100 Wi-Fi模块的嵌入式物联网实践

1. 项目概述与核心价值 最近在折腾TI的机器人系统学习套件RSLK MAX&#xff0c;这确实是个学习嵌入式系统的好平台&#xff0c;但玩久了总觉得缺了点什么。它的核心是MSP432P401R微控制器&#xff0c;性能不错&#xff0c;外设也丰富&#xff0c;但原生缺少一个关键能力——网络…

作者头像 李华
网站建设 2026/8/19 9:42:06

数字万用表使用教程

文章目录&#xff1a; 一&#xff1a;扩展 1.单位相关 2.核心公式 二&#xff1a;了解万用表 三&#xff1a;测量通断&#xff08;校表&#xff09; 四&#xff1a;测量 1.测电流 2.测电压 3.测电阻/电容 4.测二极管 五&#xff1a;如何判断漏电 六&#xff1a;注意…

作者头像 李华
网站建设 2026/8/19 9:39:18

多智能体协作中的记忆诅咒:完美记忆如何破坏AI团队合作

1. 引言&#xff1a;当AI拥有“完美记忆”&#xff0c;合作反而变难了&#xff1f; 最近在折腾多智能体系统时&#xff0c;我遇到了一个反直觉的现象&#xff1a;我们总以为给AI智能体&#xff08;Agent&#xff09;的记忆力越强&#xff0c;它们之间的协作就应该越顺畅。毕竟&…

作者头像 李华