Configure the manifest
Put dimensions on each asset. Put workflow configuration under
providerOptions.comfyui on the style. Set the top-level provider when every
style is local, or put "provider": "comfyui" on only the local styles in a
mixed manifest:
{
"name": "my-game",
"provider": "comfyui",
"styles": {
"local-environment": {
"generator": "map",
"outDir": "assets/generated/environments",
"quality": {
"outDir": "assets/final/environments",
"palette": [
"#141b1e", "#23312a", "#384d4f", "#526a8d",
"#709fcf", "#865c45", "#c6a766", "#f1bb70"
],
"minGridConfidence": "high",
"fixerPython": ".pixelkiln/pixelfixer/bin/python"
},
"seed": 31415,
"providerOptions": {
"comfyui": {
"workflowFile": "workflows/pixel-environment-api.json",
"outputNodeId": "9",
"numImages": 4,
"bindings": {
"prompt": { "nodeId": "6", "input": "text" },
"width": { "nodeId": "5", "input": "width" },
"height": { "nodeId": "5", "input": "height" },
"batchSize": { "nodeId": "5", "input": "batch_size" },
"seed": { "nodeId": "3", "input": "seed" }
}
}
}
}
},
"assets": {
"cliffside_fortress": {
"prompt": "a fortified monastery carved into a mountain cliff",
"width": 768,
"height": 512
}
}
}
| Option | Meaning |
|---|---|
workflowFile | API-format workflow JSON, relative to the manifest. |
outputNodeId | Node whose completed history contains the final images array. |
numImages | Expected candidates, from 1 to 16. Defaults to 1. |
frames.vary | Custom binding whose asset value is the ordered 2–64 item frame sequence. Requires generator: frames. |
frames.seedStep | Optional integer added per frame to style.seed. Defaults to 0. |
bindings.prompt | Workflow input replaced with the resolved PixelKiln prompt. |
bindings.width / height | Inputs replaced with the asset dimensions. |
bindings.batchSize | Input replaced with numImages. |
bindings.seed | Optional sampler seed input. Required when the style declares seed. |
bindings.<name> | Project-defined input supplied by the asset's matching providerInputs.<name>. Core LoadImage.image and LoadImageMask.image targets upload a manifest-relative PNG/JPEG; other targets receive a scalar. |
The quality block is not a ComfyUI request option. It describes PixelKiln's
offline final-art gate for ordinary stills and atomic ComfyUI frame sets. Its
output directory, palette, confidence threshold, optional transparency floor,
fixer revision, frame playback rate, and local fixer interpreter do not affect
generation identity or cost. The interpreter path is resolved from the
manifest directory. See Manifest quality profiles.
PixelKiln refuses missing nodes and inputs during the offline plan. It also clones the workflow before applying bindings, so one asset cannot mutate the next asset's request.