comfy.workflow.json
The versioned manifest every workflow package ships. specVersion is 1 (legacy string nodePacks) or 2 (rich pack objects). Consumers must reject manifests whose contract they don't understand.
JSON Schema: schema/comfy.workflow.schema.json, also @stepupgaming/comfy-workflows/schema.
Minimal example
json
{
"specVersion": 1,
"name": "text-to-image",
"title": "Text to Image",
"entry": "./workflow.ir.json",
"parameters": {
"checkpoint": { "type": "string", "required": true },
"prompt": { "type": "string", "required": true },
"seed": { "type": "integer", "required": true }
},
"outputs": [{ "name": "image", "type": "IMAGE" }],
"requires": {
"nodeClasses": [
"CheckpointLoaderSimple",
"CLIPTextEncode",
"KSampler",
"VAEDecode",
"SaveImage"
],
"nodePacks": [],
"models": []
}
}Fields
specVersion(1|2, required)name(string, required) — machine identitytitle(string, required)entry(string, required) — package-relative path to IR. Absolute paths and../escapes rejected.descriptionparameters— keyed by name.type(int/float/string/boolean/combo;"integer"aliasesint),required, optionaldefault,options,description. Must cohere with the IR template.outputs—{ name, type }[], must match graph output declsrequires.nodeClasses— must match classes used in IR (cwf packfails on omit or stale)requires.nodePacks— v1 strings / v2 objects. See Custom nodesrequires.models—{ kind, name, optional? }. Reported, never downloadedcoreVersion— semver range of@stepupgaming/comfy-workflows. During 0.x:^0.<minor>.0compatibility—minComfyUIVersion,notes