Skip to main content

工作流上传与托管

托管工作流是指将本地已开发好的 ComfyUI 工作流上传至 Comfyflow平台。

导出工作流文件

请在本地 ComfyUI 编辑器中导出本地可正常运行的工作流,同时导出工作流 JSON 文件和 API JSON 文件。

上传工作流

前往 ComfyFlow 托管工作流的管理界面,上传从 ComfyUI 导出的工作流 JSON 文件。这一步中,平台仅会校验 JSON 合法性,不校验工作流文件中的节点。

上传 JSON 文件(必传)平台兼容两类工作流文件格式:

  • Workflow JSON(支持节点可视化预览)
  • Workflow API JSON

注意
若上传的是标准 Workflow JSON,上传完成后工作流将显示为 「校验失败」 状态。

  • 运行环境(必须) 上传工作流时,必须同时完成运行环境关联

  • 预置环境 平台已提供官方预置 ComfyUI 运行环境,内置:

    • 主流 ComfyUI 节点
    • 常用模型(Checkpoint、VAE、LoRA 等)
    • 支持使用户自行上传的模型资产

什么是工作流 JSON 文件

在 ComfyUI 中,有两种不同的 JSON 格式用于表示工作流程。一种是 Workflow.json (前端格式),另一种是 Workflow API JSON (后端格式)

Workflow

这可能是更广泛使用和认可的格式。它是在 ComfyUI 前端用户界面中布局图编辑器所必需的,用于工作流程的可视化表示和编辑。在 ComfyStack 新增 ComfyUI 托管工作流时,如果上传 Workflow.json,则可展示工作流节点预览,但不强制要求上传该文件。

Workflow.json 的特性与用途

  • 可视化布局文件
    用于 ComfyUI 前端界面的图形化编辑,呈现节点位置、连线、大小等 UI 信息。
  • 包含节点 UI 元数据
    每个节点都包含唯一视觉 ID(通常为数字,如 "1", "2" 等),用于渲染节点组件。
  • 显式链接结构(links)
    节点之间的连接关系以链接数组明确表达,便于图形编辑器构建可视化连线。
  • 遵循 Litegraph 规范
    ComfyUI 前端图形编辑器基于 Litegraph.js,因此 Workflow.json 结构完全符合 Litegraph 图形节点格式。

Workflow.json 示例

{
"nodes": [
{
"id": 7,
"type": "CLIPTextEncode",
"pos": [352, 176],
"size": [425.27801513671875, 180.6060791015625],
"flags": {},
"order": 5,
"mode": 0,
"inputs": [
{
"name": "clip",
"type": "CLIP",
"link": 39
}
],
"outputs": [
{
"name": "CONDITIONING",
"type": "CONDITIONING",
"links": [20],
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "CLIPTextEncode"
},
"widgets_values": ["text, watermark"]
}
],
"links": [
[18, 14, 0, 13, 3, "SAMPLER"],
[19, 6, 0, 13, 1, "CONDITIONING"]
]
}

Workflow API JSON

可以通过切换到开发模式(Dev Mode),将工作流程导出为 API JSON。ComfyUI 内部也用于工作流程的执行。

关键点:

  • 提供更紧凑的表示,针对执行进行了优化
  • 消除视觉/UI 特定的元数据(如节点位置、大小)
  • 节点链接直接嵌入 inputs 中
  • 每个节点由唯一的键标识(如 "5", "6", "7"

Workflow API JSON 示例

{
"7": {
"inputs": {
"text": "text, watermark",
"clip": ["20", 1]
},
"class_type": "CLIPTextEncode",
"_meta": {
"title": "CLIP Text Encode (Prompt)"
}
},
"20": {
"inputs": {
"ckpt_name": "sd_xl_turbo_1.0_fp16.safetensors"
},
"class_type": "CheckpointLoaderSimple",
"_meta": {
"title": "Load Checkpoint"
}
}
}

在本例中,节点 "7"inputs.clip 字段值为 ["20", 1],表示该输入连接到节点 "20"第二个输出槽

后续步骤

新建托管工作流后,工作流处于「待上线」状态,下一步需要关联工作流运行环境,上线等操作。