跳到主要内容

工作流上传与托管

托管工作流是指将本地已开发好的 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"第二个输出槽

后续步骤

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