Skip to content

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

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

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

Conversation

@comfy-pr-bot
Copy link
Member

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

Backport of #8775 to core/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: ✅ 560 passed, 0 failed · 2 flaky

📊 Browser Reports
  • chromium: View Report (✅ 547 / ❌ 0 / ⚠️ 2 / ⏭️ 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

ℹ️ Collecting baseline variance data (0/5 runs). Significance will appear after 2 main branch runs.

Metric Baseline PR Δ
canvas-idle: style recalcs 124 124 -0%
canvas-idle: layouts 0 0 +0%
canvas-idle: task duration 461ms 490ms +6%
canvas-mouse-sweep: style recalcs 181 186 +3%
canvas-mouse-sweep: layouts 12 12 +3%
canvas-mouse-sweep: task duration 1013ms 1113ms +10%
dom-widget-clipping: style recalcs 44 43 -3%
dom-widget-clipping: layouts 0 0 +0%
dom-widget-clipping: task duration 392ms 381ms -3%
subgraph-dom-widget-clipping: style recalcs 74 76 +3%
subgraph-dom-widget-clipping: layouts 0 0
subgraph-dom-widget-clipping: task duration 424ms 445ms +5%
subgraph-idle: style recalcs 122 121 -1%
subgraph-idle: layouts 1 0 -100%
subgraph-idle: task duration 448ms 453ms +1%
subgraph-mouse-sweep: style recalcs 163 162 -0%
subgraph-mouse-sweep: layouts 16 16 -2%
subgraph-mouse-sweep: task duration 867ms 881ms +2%
Raw data
{
  "timestamp": "2026-03-13T16:57:07.437Z",
  "gitSha": "0b9c1d84a5908a9fce74ef0a572b01c97d23d57c",
  "branch": "backport-8775-to-core-1.41",
  "measurements": [
    {
      "name": "canvas-idle",
      "durationMs": 2038.8099999999838,
      "styleRecalcs": 125,
      "styleRecalcDurationMs": 31.051,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 542.4,
      "heapDeltaBytes": -3734524
    },
    {
      "name": "canvas-idle",
      "durationMs": 2028.694999999999,
      "styleRecalcs": 123,
      "styleRecalcDurationMs": 28.155999999999995,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 496.6649999999999,
      "heapDeltaBytes": -4165516
    },
    {
      "name": "canvas-idle",
      "durationMs": 2012.5810000000115,
      "styleRecalcs": 123,
      "styleRecalcDurationMs": 25.572999999999997,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 431.24899999999997,
      "heapDeltaBytes": -4123180
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 2031.2330000000145,
      "styleRecalcs": 184,
      "styleRecalcDurationMs": 57.573,
      "layouts": 13,
      "layoutDurationMs": 3.3059999999999996,
      "taskDurationMs": 1061.656,
      "heapDeltaBytes": -2711832
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 2095.381000000003,
      "styleRecalcs": 189,
      "styleRecalcDurationMs": 62.377,
      "layouts": 12,
      "layoutDurationMs": 3.1580000000000004,
      "taskDurationMs": 1158.074,
      "heapDeltaBytes": -2692624
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 2088.259999999991,
      "styleRecalcs": 186,
      "styleRecalcDurationMs": 59.133,
      "layouts": 12,
      "layoutDurationMs": 3.4949999999999997,
      "taskDurationMs": 1118.902,
      "heapDeltaBytes": -3055968
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 578.1639999999868,
      "styleRecalcs": 43,
      "styleRecalcDurationMs": 13.501,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 381.042,
      "heapDeltaBytes": 7532076
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 588.7419999999963,
      "styleRecalcs": 41,
      "styleRecalcDurationMs": 12.055000000000001,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 365.035,
      "heapDeltaBytes": 7196336
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 596.8969999999558,
      "styleRecalcs": 44,
      "styleRecalcDurationMs": 16.449,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 395.65299999999996,
      "heapDeltaBytes": 6532176
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 616.5320000000065,
      "styleRecalcs": 75,
      "styleRecalcDurationMs": 17.121000000000006,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 432.83099999999996,
      "heapDeltaBytes": -9081692
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 650.0000000000341,
      "styleRecalcs": 78,
      "styleRecalcDurationMs": 22.582,
      "layouts": 1,
      "layoutDurationMs": 0.33399999999999985,
      "taskDurationMs": 447.361,
      "heapDeltaBytes": 16157196
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 648.065000000031,
      "styleRecalcs": 76,
      "styleRecalcDurationMs": 18.029,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 453.42099999999994,
      "heapDeltaBytes": -8917260
    },
    {
      "name": "subgraph-idle",
      "durationMs": 2007.1539999999857,
      "styleRecalcs": 121,
      "styleRecalcDurationMs": 26.433999999999997,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 440.5220000000001,
      "heapDeltaBytes": -4217452
    },
    {
      "name": "subgraph-idle",
      "durationMs": 1998.1129999999894,
      "styleRecalcs": 121,
      "styleRecalcDurationMs": 23.188,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 397.61999999999995,
      "heapDeltaBytes": -4300088
    },
    {
      "name": "subgraph-idle",
      "durationMs": 2021.2849999999776,
      "styleRecalcs": 122,
      "styleRecalcDurationMs": 31.058999999999997,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 521.867,
      "heapDeltaBytes": -3987104
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 1684.2359999999985,
      "styleRecalcs": 154,
      "styleRecalcDurationMs": 48.34400000000001,
      "layouts": 16,
      "layoutDurationMs": 4.528,
      "taskDurationMs": 764.938,
      "heapDeltaBytes": -5215900
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 2030.8180000000107,
      "styleRecalcs": 177,
      "styleRecalcDurationMs": 60.13700000000001,
      "layouts": 16,
      "layoutDurationMs": 4.074000000000001,
      "taskDurationMs": 1087.652,
      "heapDeltaBytes": 265440
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 1727.0689999999718,
      "styleRecalcs": 156,
      "styleRecalcDurationMs": 49.29,
      "layouts": 16,
      "layoutDurationMs": 4.545000000000001,
      "taskDurationMs": 789.153,
      "heapDeltaBytes": -6099940
    }
  ]
}

@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 c068f3b into core/1.41 Mar 13, 2026
39 checks passed
@christian-byrne christian-byrne deleted the backport-8775-to-core-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