Addon Workflow Interface
Declare what your host addon should show, instead of guessing
- workflow_interface_json
- field_keys_csv
- summary_json
Most of the MKRShift addon nodes are about moving data between ComfyUI and a host app. Addon Workflow Interface is about a different, fuzzier problem: describing what that workflow expects from the host. It's a spec node - you declare an interface name, which host family it's for, and the list of fields the workflow needs, and it produces a structured JSON contract that the host-side addon can read to build its own UI. Think of it as the API contract for a human-facing panel, written out in the graph instead of living in an undocumented script.
It sits in the addon/workflow lane of MKRShift Nodes, Cris K B's production pack, and it's squarely aimed at people building addon scaffolds - the pack ships per-app addon projects under addons/ that consume exactly this shape of interface.
How it works
The inputs are the contract fields. interface_name and workflow_id are your identifiers - workflow_id is the stable key the addon looks up. host_family is a dropdown covering the eleven supported hosts (generic, blender, touchdesigner, tixl, nuke, photoshop, after_effects, premiere_pro, affinity, fusion360, maya), so the generated interface is tagged for the right app. fields_json is the list of field definitions - you describe each field with its key and metadata (the shared library groups them by a group key, defaulting to "Workflow"), and the node normalizes that into the interface document.
output_targets_json and notes are the extras: output_targets declares where results should land, and notes is free text for humans. The output does the useful aggregation work - field_keys_csv gives you the ordered list of field keys as a plain comma-joined string, which is exactly the shape a host script wants when iterating fields, and summary_json reports the field count and the distinct groups your fields span.
Outputs
workflow_interface_json- the full interface contract, ready for the addonfield_keys_csv- comma-joined field keys for host-side iterationsummary_json- name, ID, host, field count, groups, warnings
Installation
cd ComfyUI/custom_nodes
git clone https://github.com/criskb/MKRShift_Nodes
Restart ComfyUI, or use ComfyUI Manager ("MKRShift Nodes"). No pip dependencies - it's JSON construction and validation only.
Common issues
The trap is treating this like a runtime node. It builds a document; it doesn't execute anything, and without a host addon that reads the interface JSON, the output is just text sitting in your graph. Pair it with the actual per-app addon scaffolds or you've built documentation. Second, fields_json must be a JSON array - if you paste an object or a stray trailing comma, the parser falls back to empty and your field_keys_csv comes out blank with no loud error, so validate the JSON before wiring it in. And keep field keys stable: the whole point of workflow_id is that host panels and workflow definitions agree on keys across versions. Change a key and every saved host session built on the old interface quietly breaks. It's a planner's node - boring by design, and the reason bigger addon workflows don't collapse the first time the host updates.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| interface_name | STRING | MKRShift Workflow | — |
| workflow_id | STRING | mkrshift-workflow | — |
| host_family | COMBO | blender | 11 options: generic, blender, touchdesigner, tixl, nuke, photoshop, +5 |
| fields_json | STRING | [] | — |
| output_targets_jsonopt | STRING | {} | — |
| notesopt | STRING | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| workflow_interface_json | STRING | — |
| field_keys_csv | STRING | — |
| summary_json | STRING | — |