Comfy-Org / Comfy-Org/ComfyUI_frontend
Promoted subgraph widget changes do not invoke the source node widget callback
- Dominant language
- TypeScript
- Stars
- 2k
- Forks
- 702
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 512
Description
### Prerequisites
- [x] I am running the latest version of ComfyUI
- [ ] I have custom nodes enabled
### What happened?
ComfyUI frontend version: 1.50.0 (nightly)
Regression observed since: approximately 1.47.x
Steps to reproduce:
1. Create a custom node with a COMBO widget and assign a widget.callback in a frontend extension.
2. Place the node inside a subgraph.
3. Promote that widget to the subgraph's outer node interface.
4. Change the promoted widget value on the outer subgraph node.
Expected:
Changing the promoted widget invokes the source widget callback, or ComfyUI exposes a supported event/API for custom nodes to react to the change.
Actual:
The inner node's widget.callback is not invoked. The promoted input writes directly to the widget value store, so custom-node logic depending on the original callback does not run.
Impact:
Dependent widget state cannot be refreshed. For example, changing a promoted project selector should fetch and populate a dependent task selector on the inner custom node.
Relevant frontend behavior:
In frontend 1.50.0, promotedInputWidget.callback calls only:
store.setValue(widgetId, next)
It does not forward the change to the source widget callback.
### Steps to Reproduce
1. Create a custom node with a COMBO widget and assign a widget.callback in a frontend extension.
2. Place the node inside a subgraph.
3. Promote that widget to the subgraph's outer node interface.
4. Change the promoted widget value on the outer subgraph node.
### How is this affecting you?
Feature doesn't work as expected
### ComfyUI Frontend Version
1.47.+
### Browser
Chrome/Chromium
### Console Errors
```javascript
```
### Logs
```shell
```
### Additional Context
_No response_
Contributor guide
Research direction
Search the frontend for promotedInputWidget.callback and the store.setValue call described in the issue, then trace how the promoted input relates to its source widget. Reproduce the subgraph and COMBO-widget scenario, and verify that changing the outer value produces the expected callback behavior or supported event/API response.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 65/100