ComfyUI 支持保存和读取工作流配置。配置文件为 Json
格式。本文列出 workflow.json
中主要的对象及其配置项的含义,以便直接编辑或生成配置文件。
说明:
- 部分不影响生成的对象和我没用到的未探明作用的配置项没有被列出(如卡片外观风格等)。
- 一级、二级等表述指的是对象的嵌套关系。
一级:节点数组
- 名称:
nodes
- 值类型:
Array
- 值含义:节点数组。保存所有 ComfyUI 中以单个方形组件表示的节点对象,包括用户通过组合基本节点自定义的节点。每个节点由一个二级节点对象表示。
二级:节点
- 名称:无
- 值类型:
Object
- 值含义:节点对象,存储于一级节点数组中。一个节点对象表达 ComfyUI 中的一个节点,并包含以下三级配置对象。
三级:节点 ID
- 名称:
id
- 值类型:
number:int
- 值含义:节点 ID。用于标识节点,不可重复。
三级:节点标题
- 名称:
title
- 值类型:
string
- 值含义:节点标题,展示于 ComfyUI 中节点的顶部。
三级:节点类型
- 名称:
type
- 值类型:
string
- 值含义:节点类型,既在 ComfyUI 中添加节点时用于唯一标识和搜索的名称。对于用户自定义组合节点,该值的格式为
workflow/组合节点名称
。
三级:节点位置
- 名称:
pos
- 值类型:
Array
- 值含义:该数组包含两个元素,分别表示节点在 ComfyUI 中的横坐标和纵坐标。
三级:节点输入
- 名称:
inputs
- 值类型:
Array
- 值含义:节点的输入数组。每个输入由一个输入对象表示。输入对象包含三个四级配置项。其名称和值分别为:
name
:string
,输入名称;type
:string
,输入类型;link/links
:number:int/Array
,链接该输入的链接对象的 ID / ID 数组。
三级:节点输出
- 名称:
outputs
- 值类型:
Array
- 值含义:节点的输出数组。每个输出由一个输出对象表示。输出对象包含四个四级配置项。前三个名称和值与输入数组相同。第四个为:
slot_index
:number:int
,输出在 ComfyUI 中显示为从上到下第几个接口。
三级:节点组件值
- 名称:
widgets_values
- 值类型:
Array
- 值含义:ComfyUI 中每个用于表示节点的方形组件卡片中从上到下有若干配置项。该数组从前到后保存了这些配置项的初始值。
一级:链接数组
- 名称:
links
- 值类型:
Array
- 值含义:链接数组。保存所有 ComfyUI 中直接链接两个节点的链接对象。每个链接由一个二级链接表示。
二级:链接
- 名称:无
- 值类型:
Array
- 值含义:链接对象,存储于一级链接数组中。一个链接对象表达 ComfyUI 中的一个链接连线,并包含 5 个
number:int
值:第 1 个表示链接 ID,第 2 个表示起始节点 ID,第 3 个表示起始节点输出slot_index
,第 4 个表示终止节点 ID,第 5 个表示终止节点输入slot_index
。
一级:额外配置
- 名称:
extra
- 值类型:
Object
- 值含义:额外配置对象。包含了 ComfyUI 中的一些全局配置项。例如用户自定义组合节点的配置。
二级:组合节点
- 名称:
groupNodes
- 值类型:
Object
- 值含义:用户自定义组合节点的配置对象,存储于额外配置对象中。该对象中每一个
名称/值对
表示一种用户自定义组合节点。其中名称为该组合节点名称,值为一个对象,内容格式与完整配置文件基本相同,即包含从一级对象开始的所有配置项。但组合节点内一级链接数组中的链接对象的 ID 仅接受组合节点内部的节点 ID。