Skip to content

[backport cloud/1.41] Add support for values factory function in widget select combo#9883

Merged
christian-byrne merged 1 commit intocloud/1.41from
backport-8775-to-cloud-1.41
Mar 13, 2026
Merged

[backport cloud/1.41] Add support for values factory function in widget select combo#9883
christian-byrne merged 1 commit intocloud/1.41from
backport-8775-to-cloud-1.41

Conversation

@comfy-pr-bot
Copy link
Member

@comfy-pr-bot comfy-pr-bot commented Mar 13, 2026

Backport of #8775 to cloud/1.41

Automatically created by backport workflow.

┆Issue is synchronized with this Notion page by Unito

## Summary

Adds support for values factory functions, e.g.
```
this.addWidget(
    "combo",
    "Dynamic",
    "",
    (e) => { },
    {
        values: () => {
            return getSomeValuesHere() 
        }
    }
)
```

Specifically for fixing KJNodes get/set

## Changes

- **What**:  Check if object is a function, if so, calls it.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8775-Add-support-for-values-factory-function-in-widget-select-combo-3036d73d3650819bb4e4f9181445cb1d)
by [Unito](https://www.unito.io)
@comfy-pr-bot comfy-pr-bot requested a review from a team as a code owner March 13, 2026 16:52
@comfy-pr-bot comfy-pr-bot added the backport Backporting a PR onto a release candidate label Mar 13, 2026
@github-actions
Copy link

github-actions bot commented Mar 13, 2026

🎨 Storybook: ✅ Built — View Storybook

Details

⏰ Completed at: 03/13/2026, 04:53:50 PM UTC

Links

@github-actions
Copy link

github-actions bot commented Mar 13, 2026

🎭 Playwright: ✅ 562 passed, 0 failed · 1 flaky

📊 Browser Reports
  • chromium: View Report (✅ 549 / ❌ 0 / ⚠️ 1 / ⏭️ 10)
  • chromium-2x: View Report (✅ 2 / ❌ 0 / ⚠️ 0 / ⏭️ 0)
  • chromium-0.5x: View Report (✅ 1 / ❌ 0 / ⚠️ 0 / ⏭️ 0)
  • mobile-chrome: View Report (✅ 10 / ❌ 0 / ⚠️ 0 / ⏭️ 0)

@github-actions
Copy link

⚡ Performance Report

No baseline found — showing absolute values.

Metric Value
canvas-idle: style recalcs 124
canvas-idle: layouts 0
canvas-idle: task duration 417ms
canvas-idle: heap delta -3.9 MB
canvas-mouse-sweep: style recalcs 173
canvas-mouse-sweep: layouts 12
canvas-mouse-sweep: task duration 859ms
canvas-mouse-sweep: heap delta -3.8 MB
dom-widget-clipping: style recalcs 42
dom-widget-clipping: layouts 0
dom-widget-clipping: task duration 368ms
dom-widget-clipping: heap delta 6.7 MB
subgraph-dom-widget-clipping: style recalcs 74
subgraph-dom-widget-clipping: layouts 0
subgraph-dom-widget-clipping: task duration 422ms
subgraph-dom-widget-clipping: heap delta -1.1 MB
subgraph-idle: style recalcs 121
subgraph-idle: layouts 0
subgraph-idle: task duration 415ms
subgraph-idle: heap delta -3.6 MB
subgraph-mouse-sweep: style recalcs 167
subgraph-mouse-sweep: layouts 16
subgraph-mouse-sweep: task duration 906ms
subgraph-mouse-sweep: heap delta -5.2 MB
Raw data
{
  "timestamp": "2026-03-13T16:57:15.826Z",
  "gitSha": "5d44a6cbb12c28a0d1d62bac766ffcce4481b351",
  "branch": "backport-8775-to-cloud-1.41",
  "measurements": [
    {
      "name": "canvas-idle",
      "durationMs": 2038.4940000000142,
      "styleRecalcs": 124,
      "styleRecalcDurationMs": 22.19,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 398.238,
      "heapDeltaBytes": -3494344
    },
    {
      "name": "canvas-idle",
      "durationMs": 2025.9479999999996,
      "styleRecalcs": 124,
      "styleRecalcDurationMs": 25.035,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 411.8310000000001,
      "heapDeltaBytes": -4235504
    },
    {
      "name": "canvas-idle",
      "durationMs": 2024.5539999999664,
      "styleRecalcs": 123,
      "styleRecalcDurationMs": 27.197000000000003,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 441.86199999999997,
      "heapDeltaBytes": -4417512
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 1987.3580000000004,
      "styleRecalcs": 180,
      "styleRecalcDurationMs": 62.395,
      "layouts": 12,
      "layoutDurationMs": 3.9880000000000004,
      "taskDurationMs": 968.896,
      "heapDeltaBytes": -3242448
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 1841.5610000000129,
      "styleRecalcs": 168,
      "styleRecalcDurationMs": 51.790000000000006,
      "layouts": 12,
      "layoutDurationMs": 3.568,
      "taskDurationMs": 826.23,
      "heapDeltaBytes": -4474540
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 1864.6820000000162,
      "styleRecalcs": 170,
      "styleRecalcDurationMs": 46.800000000000004,
      "layouts": 12,
      "layoutDurationMs": 3.412,
      "taskDurationMs": 782.9639999999999,
      "heapDeltaBytes": -4088416
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 597.2089999999923,
      "styleRecalcs": 43,
      "styleRecalcDurationMs": 12.64,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 374.151,
      "heapDeltaBytes": 7878676
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 540.3670000000034,
      "styleRecalcs": 40,
      "styleRecalcDurationMs": 12.397,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 353.41600000000005,
      "heapDeltaBytes": 7127904
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 580.0229999999829,
      "styleRecalcs": 43,
      "styleRecalcDurationMs": 13.777,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 377.21700000000004,
      "heapDeltaBytes": 6199724
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 645.6340000000012,
      "styleRecalcs": 76,
      "styleRecalcDurationMs": 16.698999999999998,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 431.18,
      "heapDeltaBytes": -8868004
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 604.0110000000141,
      "styleRecalcs": 74,
      "styleRecalcDurationMs": 15.725000000000003,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 408.483,
      "heapDeltaBytes": 14441560
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 596.6150000000425,
      "styleRecalcs": 73,
      "styleRecalcDurationMs": 15.262,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 425.24600000000004,
      "heapDeltaBytes": -8899352
    },
    {
      "name": "subgraph-idle",
      "durationMs": 1994.1850000000159,
      "styleRecalcs": 120,
      "styleRecalcDurationMs": 23.27,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 418.496,
      "heapDeltaBytes": -3040456
    },
    {
      "name": "subgraph-idle",
      "durationMs": 2009.7000000000094,
      "styleRecalcs": 122,
      "styleRecalcDurationMs": 24.449000000000005,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 422.38300000000004,
      "heapDeltaBytes": -3476352
    },
    {
      "name": "subgraph-idle",
      "durationMs": 2006.7019999999616,
      "styleRecalcs": 121,
      "styleRecalcDurationMs": 24.668000000000003,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 403.49899999999997,
      "heapDeltaBytes": -4669128
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 1993.8849999999775,
      "styleRecalcs": 172,
      "styleRecalcDurationMs": 52.373999999999995,
      "layouts": 16,
      "layoutDurationMs": 4.314,
      "taskDurationMs": 968.862,
      "heapDeltaBytes": -5154372
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 1742.7999999999884,
      "styleRecalcs": 157,
      "styleRecalcDurationMs": 50.357,
      "layouts": 16,
      "layoutDurationMs": 4.864,
      "taskDurationMs": 781.703,
      "heapDeltaBytes": -5201184
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 1966.0910000000058,
      "styleRecalcs": 171,
      "styleRecalcDurationMs": 54.754000000000005,
      "layouts": 16,
      "layoutDurationMs": 4.035,
      "taskDurationMs": 966.4019999999999,
      "heapDeltaBytes": -5849152
    }
  ]
}

@dosubot dosubot bot added the size:L This PR changes 100-499 lines, ignoring generated files. label Mar 13, 2026
@christian-byrne christian-byrne merged commit 951a267 into cloud/1.41 Mar 13, 2026
39 checks passed
@christian-byrne christian-byrne deleted the backport-8775-to-cloud-1.41 branch March 13, 2026 17:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport Backporting a PR onto a release candidate size:L This PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants