promote_workspace_inputs
Promote subgraph inputs to the parent workspace, exposing them for external wiring and control.
Instructions
Expose an inner node's inputs on the face of the subgraph that holds it.
A subgraph with nothing promoted is a sealed box: the values that drive it can only be reached by going inside, and nothing outside can be wired to it. This is what ComfyUI offers as "Promote widget" on a widget's context menu, and it is the difference between a subgraph that is usable from the outside and one that merely hides its contents.
Both kinds of input take the same path. A widget row (steps, cfg) becomes
a widget on the subgraph node's face; a plain socket (image, model)
becomes a socket that can be wired to. Name them the same way either way.
The id names both ends. 98:12 is node 12 inside subgraph node 98, and
the input is exposed on 98. There is no separate "which subgraph" argument
and no need to navigate inside first. To carry something further out, ask
again with the shorter id - each level is its own step, and its own entry in
the reply.
One call is one Ctrl+Z. Nothing is written unless every named input resolves, so a typo refuses the batch rather than half-applying it.
Args:
promote: which inputs to expose, as {":": [names]}.
An input already exposed is reported in skipped, not an error. An
input already wired to something inside the subgraph is refused,
since promoting it would replace that link.
demote: which to take off again, same shape. A boundary slot with
something wired into it from outside is disconnected rather than
removed, so the outer link survives.
client_id: which browser tab to act in; defaults to the most recently
focused one.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| demote | No | ||
| promote | No | ||
| client_id | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||