From cf6eee30278d3cb443983d1a77f5232ce07ca8b9 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Sat, 31 Oct 2026 23:15:51 +0900 Subject: [PATCH] Refresh label-filter hook catalog after removing SEGS input Recreate the hook through Chrome node search and native Export, preserving every expected widget name, order and value. Cover fresh and legacy hook execution with both native restoration modes. Validation: all 16 catalog E2E tests passed on the identical source tree; native Export also normalizes MaskRectArea height from 356 to 358. --- docs/E2E_TEST_STRATEGY.md | 10 + tests/test_e2e_widget_catalog.py | 48 +++ tests/workflows/all-impact-nodes.json | 360 +++++++++--------- tests/workflows/all-impact-nodes.widgets.json | 28 +- tests/workflows/label-filter-hook-legacy.json | 107 ++++++ 5 files changed, 356 insertions(+), 197 deletions(-) create mode 100644 tests/workflows/label-filter-hook-legacy.json diff --git a/docs/E2E_TEST_STRATEGY.md b/docs/E2E_TEST_STRATEGY.md index b0438576..7038f873 100644 --- a/docs/E2E_TEST_STRATEGY.md +++ b/docs/E2E_TEST_STRATEGY.md @@ -183,6 +183,16 @@ Two direct-creation cases also check that label-filter presets start at `all`, append a selected label to the text field, and retain both values after export and reload. +The label-filter hook execution cases connect the hook to Preview as Text and +click Run before and after native export/reload, in both widget restoration +modes. They cover freshly created nodes without a `segs` input and the native +`label-filter-hook-legacy.json` fixture exported before PR #1218, which retains +the obsolete unconnected input. The selected preset, label text, widget order, +and positional saved values must survive loading while hook creation succeeds. +The all-node catalog replaces that legacy node through Chrome deletion, node +search, and native Export; its widget snapshot changes only the replacement +node's ID and record position, preserving every expected widget name and value. + Branching tests connect Inversed Switch through three distinct image operations back into Switch, including both legacy names. Selection changes through the UI must produce the expected pixels and final output, including after reimport. diff --git a/tests/test_e2e_widget_catalog.py b/tests/test_e2e_widget_catalog.py index 664410d4..194ebce8 100644 --- a/tests/test_e2e_widget_catalog.py +++ b/tests/test_e2e_widget_catalog.py @@ -207,6 +207,8 @@ def test_catalog_contains_every_registered_node(): for widget in node["widgets"]: assert set(widget) == {"name", "value"} assert isinstance(widget["name"], str) + label_hook = next(node for node in workflow["nodes"] if node["type"] == "SEGSLabelFilterDetailerHookProvider") + assert label_hook["inputs"] == [], "Recreate the label-filter hook to remove its obsolete SEGS input" @pytest.fixture @@ -253,6 +255,52 @@ def test_label_preset_initial_value_and_selection(ui, node_type): assert_catalog(browser, [before]) +@pytest.mark.parametrize("restore_by_name", [False, True], ids=["positional", "named"]) +@pytest.mark.parametrize("legacy", [False, True], ids=["fresh", "legacy-segs-input"]) +def test_label_filter_hook_executes_after_native_load(ui, restore_by_name, legacy): + browser, args = ui + node_type = "SEGSLabelFilterDetailerHookProvider" + expected_widgets = [{"name": "preset", "value": "person"}, + {"name": "labels", "value": "person, dog"}] + setting(browser, "Restore widget values", "Comfy.Workflow.NamedValuesRestore", restore_by_name) + browser.new_workflow() + if legacy: + browser.load_workflow(ROOT / "tests/workflows/label-filter-hook-legacy.json", 2) + node_id = browser.app.evaluate("""(app, type) => + String(app.graph._nodes.find(node => node.type === type).id) + """, node_type) + else: + full_zoom(browser) + definitions = node_definitions(browser) + node_id = browser.add_node(definitions[node_type]["display_name"], node_type, 250, 180) + browser.choose(node_type, "preset", "person") + browser.page.get_by_placeholder( + "List the types of segments to be allowed, separated by commas", exact=True + ).fill("person, dog") + assert "segs" not in browser.app.evaluate("""(app, id) => + app.graph.getNodeById(id).inputs.map(input => input.name) + """, node_id) + browser.add_node("Preview as Text", "PreviewAny", 850, 180) + browser.connect(node_type, "PreviewAny") + + path = args.artifacts / "label-filter-hook.json" + for reloaded in (False, True): + if reloaded: + browser.new_workflow() + browser.load_workflow(path, 2) + full_zoom(browser) + show_node(browser, node_id) + assert widget_state(browser, node_id)["widgets"] == expected_widgets + entry = browser.run() + text = next(output["text"] for output in entry["outputs"].values() if "text" in output) + assert len(text) == 1 and "SEGSLabelFilterDetailerHook object" in text[0] + if not reloaded: + export_workflow(browser, path) + saved = next(node for node in json.loads(path.read_text())["nodes"] if node["type"] == node_type) + assert saved["widgets_values"] == ["person", "person, dog"] + assert saved["widgets_values_named"] == {"preset": "person", "labels": "person, dog"} + + @pytest.mark.parametrize("mutation", [ "this.widgets[0].name = 'guide_size_broken';", "[this.widgets[0], this.widgets[2]] = [this.widgets[2], this.widgets[0]];", diff --git a/tests/workflows/all-impact-nodes.json b/tests/workflows/all-impact-nodes.json index a549d9ea..24ab689f 100644 --- a/tests/workflows/all-impact-nodes.json +++ b/tests/workflows/all-impact-nodes.json @@ -1,7 +1,7 @@ { "id": "79741589-67f9-4713-89de-5c22075bb6a9", "revision": 0, - "last_node_id": 197, + "last_node_id": 198, "last_link_id": 0, "nodes": [ { @@ -3914,46 +3914,6 @@ "max_value": 67108864 } }, - { - "id": 58, - "type": "SEGSLabelFilterDetailerHookProvider", - "pos": [ - 722.8888888888887, - 6135.555555555556 - ], - "size": [ - 400, - 200 - ], - "flags": {}, - "order": 57, - "mode": 0, - "inputs": [ - { - "name": "segs", - "type": "SEGS", - "link": null - } - ], - "outputs": [ - { - "name": "DETAILER_HOOK", - "type": "DETAILER_HOOK", - "links": null - } - ], - "properties": { - "Node name for S&R": "SEGSLabelFilterDetailerHookProvider" - }, - "widgets_values": [ - "all", - "" - ], - "widgets_values_named": { - "preset": "all", - "labels": "" - } - }, { "id": 59, "type": "VariationNoiseDetailerHookProvider", @@ -3966,7 +3926,7 @@ 106 ], "flags": {}, - "order": 58, + "order": 57, "mode": 0, "inputs": [], "outputs": [ @@ -4002,7 +3962,7 @@ 46 ], "flags": {}, - "order": 59, + "order": 58, "mode": 0, "inputs": [ { @@ -4039,7 +3999,7 @@ 46 ], "flags": {}, - "order": 60, + "order": 59, "mode": 0, "inputs": [ { @@ -4076,7 +4036,7 @@ 46 ], "flags": {}, - "order": 61, + "order": 60, "mode": 0, "inputs": [ { @@ -4110,10 +4070,10 @@ ], "size": [ 270, - 356 + 358 ], "flags": {}, - "order": 62, + "order": 61, "mode": 0, "inputs": [], "outputs": [ @@ -4162,7 +4122,7 @@ 426 ], "flags": {}, - "order": 63, + "order": 62, "mode": 0, "inputs": [], "outputs": [ @@ -4215,7 +4175,7 @@ 46 ], "flags": {}, - "order": 64, + "order": 63, "mode": 0, "inputs": [ { @@ -4252,7 +4212,7 @@ 46 ], "flags": {}, - "order": 65, + "order": 64, "mode": 0, "inputs": [ { @@ -4289,7 +4249,7 @@ 26 ], "flags": {}, - "order": 66, + "order": 65, "mode": 0, "inputs": [], "outputs": [ @@ -4315,7 +4275,7 @@ 26 ], "flags": {}, - "order": 67, + "order": 66, "mode": 0, "inputs": [ { @@ -4347,7 +4307,7 @@ 346 ], "flags": {}, - "order": 68, + "order": 67, "mode": 0, "inputs": [ { @@ -4409,7 +4369,7 @@ 154 ], "flags": {}, - "order": 69, + "order": 68, "mode": 0, "inputs": [ { @@ -4455,7 +4415,7 @@ 154 ], "flags": {}, - "order": 70, + "order": 69, "mode": 0, "inputs": [ { @@ -4501,7 +4461,7 @@ 58 ], "flags": {}, - "order": 71, + "order": 70, "mode": 0, "inputs": [ { @@ -4539,7 +4499,7 @@ 26 ], "flags": {}, - "order": 72, + "order": 71, "mode": 0, "inputs": [ { @@ -4573,7 +4533,7 @@ 26 ], "flags": {}, - "order": 73, + "order": 72, "mode": 0, "inputs": [ { @@ -4605,7 +4565,7 @@ 26 ], "flags": {}, - "order": 74, + "order": 73, "mode": 0, "inputs": [ { @@ -4637,7 +4597,7 @@ 78 ], "flags": {}, - "order": 75, + "order": 74, "mode": 0, "inputs": [ { @@ -4680,7 +4640,7 @@ 26 ], "flags": {}, - "order": 76, + "order": 75, "mode": 0, "inputs": [ { @@ -4712,7 +4672,7 @@ 224 ], "flags": {}, - "order": 77, + "order": 76, "mode": 0, "inputs": [ { @@ -4769,7 +4729,7 @@ 224 ], "flags": {}, - "order": 78, + "order": 77, "mode": 0, "inputs": [ { @@ -4826,7 +4786,7 @@ 224 ], "flags": {}, - "order": 79, + "order": 78, "mode": 0, "inputs": [ { @@ -4883,7 +4843,7 @@ 334 ], "flags": {}, - "order": 80, + "order": 79, "mode": 0, "inputs": [ { @@ -4956,7 +4916,7 @@ 170 ], "flags": {}, - "order": 81, + "order": 80, "mode": 0, "inputs": [ { @@ -5010,7 +4970,7 @@ 310 ], "flags": {}, - "order": 82, + "order": 81, "mode": 0, "inputs": [ { @@ -5081,7 +5041,7 @@ 270 ], "flags": {}, - "order": 83, + "order": 82, "mode": 0, "inputs": [ { @@ -5140,7 +5100,7 @@ 118 ], "flags": {}, - "order": 84, + "order": 83, "mode": 0, "inputs": [ { @@ -5195,7 +5155,7 @@ 186 ], "flags": {}, - "order": 85, + "order": 84, "mode": 0, "inputs": [ { @@ -5260,7 +5220,7 @@ 26 ], "flags": {}, - "order": 86, + "order": 85, "mode": 0, "inputs": [ { @@ -5292,7 +5252,7 @@ 334 ], "flags": {}, - "order": 87, + "order": 86, "mode": 0, "inputs": [ { @@ -5364,7 +5324,7 @@ 46 ], "flags": {}, - "order": 88, + "order": 87, "mode": 0, "inputs": [ { @@ -5402,7 +5362,7 @@ 46 ], "flags": {}, - "order": 89, + "order": 88, "mode": 0, "inputs": [ { @@ -5439,7 +5399,7 @@ 166 ], "flags": {}, - "order": 90, + "order": 89, "mode": 0, "inputs": [ { @@ -5506,7 +5466,7 @@ 166 ], "flags": {}, - "order": 91, + "order": 90, "mode": 0, "inputs": [ { @@ -5580,7 +5540,7 @@ 58 ], "flags": {}, - "order": 92, + "order": 91, "mode": 0, "inputs": [ { @@ -5618,7 +5578,7 @@ 58 ], "flags": {}, - "order": 93, + "order": 92, "mode": 0, "inputs": [ { @@ -5656,7 +5616,7 @@ 82 ], "flags": {}, - "order": 94, + "order": 93, "mode": 0, "inputs": [ { @@ -5696,7 +5656,7 @@ 58 ], "flags": {}, - "order": 95, + "order": 94, "mode": 0, "inputs": [ { @@ -5734,7 +5694,7 @@ 82 ], "flags": {}, - "order": 96, + "order": 95, "mode": 0, "inputs": [ { @@ -5774,7 +5734,7 @@ 58 ], "flags": {}, - "order": 97, + "order": 96, "mode": 0, "inputs": [ { @@ -5812,7 +5772,7 @@ 86 ], "flags": {}, - "order": 98, + "order": 97, "mode": 0, "inputs": [ { @@ -5859,7 +5819,7 @@ 86 ], "flags": {}, - "order": 99, + "order": 98, "mode": 0, "inputs": [ { @@ -5906,7 +5866,7 @@ 26 ], "flags": {}, - "order": 100, + "order": 99, "mode": 0, "inputs": [ { @@ -5938,7 +5898,7 @@ 102 ], "flags": {}, - "order": 101, + "order": 100, "mode": 0, "inputs": [ { @@ -5983,7 +5943,7 @@ 102 ], "flags": {}, - "order": 102, + "order": 101, "mode": 0, "inputs": [ { @@ -6028,7 +5988,7 @@ 26 ], "flags": {}, - "order": 103, + "order": 102, "mode": 0, "inputs": [ { @@ -6060,7 +6020,7 @@ 222 ], "flags": {}, - "order": 104, + "order": 103, "mode": 0, "inputs": [ { @@ -6116,7 +6076,7 @@ 86 ], "flags": {}, - "order": 105, + "order": 104, "mode": 0, "inputs": [ { @@ -6163,7 +6123,7 @@ 274 ], "flags": {}, - "order": 106, + "order": 105, "mode": 0, "inputs": [ { @@ -6219,7 +6179,7 @@ 170 ], "flags": {}, - "order": 107, + "order": 106, "mode": 0, "inputs": [ { @@ -6275,7 +6235,7 @@ 214 ], "flags": {}, - "order": 108, + "order": 107, "mode": 0, "inputs": [ { @@ -6336,7 +6296,7 @@ 26 ], "flags": {}, - "order": 109, + "order": 108, "mode": 0, "inputs": [], "outputs": [ @@ -6362,7 +6322,7 @@ 338 ], "flags": {}, - "order": 110, + "order": 109, "mode": 0, "inputs": [ { @@ -6409,7 +6369,7 @@ 362 ], "flags": {}, - "order": 111, + "order": 110, "mode": 0, "inputs": [ { @@ -6464,7 +6424,7 @@ 82 ], "flags": {}, - "order": 112, + "order": 111, "mode": 0, "inputs": [ { @@ -6504,7 +6464,7 @@ 386 ], "flags": {}, - "order": 113, + "order": 112, "mode": 0, "inputs": [], "outputs": [ @@ -6549,7 +6509,7 @@ 106 ], "flags": {}, - "order": 114, + "order": 113, "mode": 0, "inputs": [ { @@ -6585,7 +6545,7 @@ 106 ], "flags": {}, - "order": 115, + "order": 114, "mode": 0, "inputs": [], "outputs": [ @@ -6621,7 +6581,7 @@ 198 ], "flags": {}, - "order": 116, + "order": 115, "mode": 0, "inputs": [ { @@ -6706,7 +6666,7 @@ 122 ], "flags": {}, - "order": 117, + "order": 116, "mode": 0, "inputs": [ { @@ -6757,7 +6717,7 @@ 122 ], "flags": {}, - "order": 118, + "order": 117, "mode": 0, "inputs": [ { @@ -6808,7 +6768,7 @@ 122 ], "flags": {}, - "order": 119, + "order": 118, "mode": 0, "inputs": [ { @@ -6859,7 +6819,7 @@ 82 ], "flags": {}, - "order": 120, + "order": 119, "mode": 0, "inputs": [ { @@ -6899,7 +6859,7 @@ 238 ], "flags": {}, - "order": 121, + "order": 120, "mode": 0, "inputs": [], "outputs": [ @@ -6941,7 +6901,7 @@ 322 ], "flags": {}, - "order": 122, + "order": 121, "mode": 0, "inputs": [ { @@ -7011,7 +6971,7 @@ 550 ], "flags": {}, - "order": 123, + "order": 122, "mode": 0, "inputs": [ { @@ -7123,7 +7083,7 @@ 470 ], "flags": {}, - "order": 124, + "order": 123, "mode": 0, "inputs": [ { @@ -7215,7 +7175,7 @@ 522 ], "flags": {}, - "order": 125, + "order": 124, "mode": 0, "inputs": [ { @@ -7313,7 +7273,7 @@ 122 ], "flags": {}, - "order": 126, + "order": 125, "mode": 0, "inputs": [ { @@ -7364,7 +7324,7 @@ 102 ], "flags": {}, - "order": 127, + "order": 126, "mode": 0, "inputs": [ { @@ -7411,7 +7371,7 @@ 26 ], "flags": {}, - "order": 128, + "order": 127, "mode": 0, "inputs": [ { @@ -7444,7 +7404,7 @@ 46 ], "flags": {}, - "order": 129, + "order": 128, "mode": 0, "inputs": [ { @@ -7483,7 +7443,7 @@ 26 ], "flags": {}, - "order": 130, + "order": 129, "mode": 0, "inputs": [ { @@ -7516,7 +7476,7 @@ 26 ], "flags": {}, - "order": 131, + "order": 130, "mode": 0, "inputs": [ { @@ -7548,7 +7508,7 @@ 26 ], "flags": {}, - "order": 132, + "order": 131, "mode": 0, "inputs": [ { @@ -7580,7 +7540,7 @@ 200 ], "flags": {}, - "order": 133, + "order": 132, "mode": 0, "inputs": [ { @@ -7626,7 +7586,7 @@ 218 ], "flags": {}, - "order": 134, + "order": 133, "mode": 0, "inputs": [ { @@ -7686,7 +7646,7 @@ 26 ], "flags": {}, - "order": 135, + "order": 134, "mode": 0, "inputs": [ { @@ -7718,7 +7678,7 @@ 402 ], "flags": {}, - "order": 136, + "order": 135, "mode": 0, "inputs": [ { @@ -7806,7 +7766,7 @@ 242 ], "flags": {}, - "order": 137, + "order": 136, "mode": 0, "inputs": [ { @@ -7877,7 +7837,7 @@ 314 ], "flags": {}, - "order": 138, + "order": 137, "mode": 0, "inputs": [ { @@ -7954,7 +7914,7 @@ 146 ], "flags": {}, - "order": 139, + "order": 138, "mode": 0, "inputs": [ { @@ -8006,7 +7966,7 @@ 98 ], "flags": {}, - "order": 140, + "order": 139, "mode": 0, "inputs": [ { @@ -8054,7 +8014,7 @@ 26 ], "flags": {}, - "order": 141, + "order": 140, "mode": 0, "inputs": [ { @@ -8087,7 +8047,7 @@ 26 ], "flags": {}, - "order": 142, + "order": 141, "mode": 0, "inputs": [ { @@ -8121,7 +8081,7 @@ 26 ], "flags": {}, - "order": 143, + "order": 142, "mode": 0, "inputs": [ { @@ -8154,7 +8114,7 @@ 26 ], "flags": {}, - "order": 144, + "order": 143, "mode": 0, "inputs": [ { @@ -8188,7 +8148,7 @@ 26 ], "flags": {}, - "order": 145, + "order": 144, "mode": 0, "inputs": [ { @@ -8221,7 +8181,7 @@ 26 ], "flags": {}, - "order": 146, + "order": 145, "mode": 0, "inputs": [ { @@ -8254,7 +8214,7 @@ 58 ], "flags": {}, - "order": 147, + "order": 146, "mode": 0, "inputs": [ { @@ -8292,7 +8252,7 @@ 362 ], "flags": {}, - "order": 148, + "order": 147, "mode": 0, "inputs": [ { @@ -8362,7 +8322,7 @@ 362 ], "flags": {}, - "order": 149, + "order": 148, "mode": 0, "inputs": [ { @@ -8432,7 +8392,7 @@ 26 ], "flags": {}, - "order": 150, + "order": 149, "mode": 0, "inputs": [ { @@ -8464,7 +8424,7 @@ 126 ], "flags": {}, - "order": 151, + "order": 150, "mode": 0, "inputs": [ { @@ -8511,7 +8471,7 @@ 26 ], "flags": {}, - "order": 152, + "order": 151, "mode": 0, "inputs": [ { @@ -8543,7 +8503,7 @@ 26 ], "flags": {}, - "order": 153, + "order": 152, "mode": 0, "inputs": [ { @@ -8575,7 +8535,7 @@ 200 ], "flags": {}, - "order": 154, + "order": 153, "mode": 0, "inputs": [ { @@ -8613,7 +8573,7 @@ 200 ], "flags": {}, - "order": 155, + "order": 154, "mode": 0, "inputs": [ { @@ -8658,7 +8618,7 @@ 150 ], "flags": {}, - "order": 156, + "order": 155, "mode": 0, "inputs": [ { @@ -8707,7 +8667,7 @@ 150 ], "flags": {}, - "order": 157, + "order": 156, "mode": 0, "inputs": [ { @@ -8756,7 +8716,7 @@ 78 ], "flags": {}, - "order": 158, + "order": 157, "mode": 0, "inputs": [ { @@ -8799,7 +8759,7 @@ 58 ], "flags": {}, - "order": 159, + "order": 158, "mode": 0, "inputs": [ { @@ -8837,7 +8797,7 @@ 78 ], "flags": {}, - "order": 160, + "order": 159, "mode": 0, "inputs": [ { @@ -8880,7 +8840,7 @@ 78 ], "flags": {}, - "order": 161, + "order": 160, "mode": 0, "inputs": [ { @@ -8923,7 +8883,7 @@ 78 ], "flags": {}, - "order": 162, + "order": 161, "mode": 0, "inputs": [ { @@ -8968,7 +8928,7 @@ 46 ], "flags": {}, - "order": 163, + "order": 162, "mode": 0, "inputs": [ { @@ -9012,7 +8972,7 @@ 86 ], "flags": {}, - "order": 164, + "order": 163, "mode": 0, "inputs": [ { @@ -9059,7 +9019,7 @@ 78 ], "flags": {}, - "order": 165, + "order": 164, "mode": 0, "inputs": [ { @@ -9102,7 +9062,7 @@ 58 ], "flags": {}, - "order": 166, + "order": 165, "mode": 0, "inputs": [], "outputs": [ @@ -9134,7 +9094,7 @@ 58 ], "flags": {}, - "order": 167, + "order": 166, "mode": 0, "inputs": [], "outputs": [ @@ -9166,7 +9126,7 @@ 58 ], "flags": {}, - "order": 168, + "order": 167, "mode": 0, "inputs": [], "outputs": [ @@ -9198,7 +9158,7 @@ 78 ], "flags": {}, - "order": 169, + "order": 168, "mode": 0, "inputs": [ { @@ -9242,7 +9202,7 @@ 106 ], "flags": {}, - "order": 170, + "order": 169, "mode": 0, "inputs": [], "outputs": [ @@ -9278,7 +9238,7 @@ 86 ], "flags": {}, - "order": 171, + "order": 170, "mode": 0, "inputs": [ { @@ -9325,7 +9285,7 @@ 86 ], "flags": {}, - "order": 172, + "order": 171, "mode": 0, "inputs": [ { @@ -9372,7 +9332,7 @@ 78 ], "flags": {}, - "order": 173, + "order": 172, "mode": 0, "inputs": [ { @@ -9415,7 +9375,7 @@ 26 ], "flags": {}, - "order": 174, + "order": 173, "mode": 0, "inputs": [ { @@ -9447,7 +9407,7 @@ 26 ], "flags": {}, - "order": 175, + "order": 174, "mode": 0, "inputs": [ { @@ -9473,7 +9433,7 @@ 200 ], "flags": {}, - "order": 176, + "order": 175, "mode": 0, "inputs": [], "outputs": [ @@ -9509,7 +9469,7 @@ 58 ], "flags": {}, - "order": 177, + "order": 176, "mode": 0, "inputs": [ { @@ -9547,7 +9507,7 @@ 174 ], "flags": {}, - "order": 178, + "order": 177, "mode": 0, "inputs": [ { @@ -9598,7 +9558,7 @@ 46 ], "flags": {}, - "order": 179, + "order": 178, "mode": 0, "inputs": [ { @@ -9640,7 +9600,7 @@ 26 ], "flags": {}, - "order": 180, + "order": 179, "mode": 0, "inputs": [ { @@ -9673,7 +9633,7 @@ 26 ], "flags": {}, - "order": 181, + "order": 180, "mode": 0, "inputs": [ { @@ -9705,7 +9665,7 @@ 200 ], "flags": {}, - "order": 182, + "order": 181, "mode": 0, "inputs": [ { @@ -9737,7 +9697,7 @@ 26 ], "flags": {}, - "order": 183, + "order": 182, "mode": 0, "inputs": [], "outputs": [ @@ -9763,7 +9723,7 @@ 58 ], "flags": {}, - "order": 184, + "order": 183, "mode": 0, "inputs": [ { @@ -9801,7 +9761,7 @@ 146 ], "flags": {}, - "order": 185, + "order": 184, "mode": 0, "inputs": [ { @@ -9854,7 +9814,7 @@ 162 ], "flags": {}, - "order": 186, + "order": 185, "mode": 0, "inputs": [ { @@ -9918,7 +9878,7 @@ 82 ], "flags": {}, - "order": 187, + "order": 186, "mode": 0, "inputs": [ { @@ -9958,7 +9918,7 @@ 82 ], "flags": {}, - "order": 188, + "order": 187, "mode": 0, "inputs": [ { @@ -9998,7 +9958,7 @@ 26 ], "flags": {}, - "order": 189, + "order": 188, "mode": 0, "inputs": [ { @@ -10030,7 +9990,7 @@ 58 ], "flags": {}, - "order": 190, + "order": 189, "mode": 0, "inputs": [ { @@ -10068,7 +10028,7 @@ 106 ], "flags": {}, - "order": 191, + "order": 190, "mode": 0, "inputs": [], "outputs": [], @@ -10098,7 +10058,7 @@ 106 ], "flags": {}, - "order": 192, + "order": 191, "mode": 0, "inputs": [], "outputs": [], @@ -10128,7 +10088,7 @@ 106 ], "flags": {}, - "order": 193, + "order": 192, "mode": 0, "inputs": [], "outputs": [ @@ -10164,7 +10124,7 @@ 122 ], "flags": {}, - "order": 194, + "order": 193, "mode": 0, "inputs": [ { @@ -10226,7 +10186,7 @@ 82 ], "flags": {}, - "order": 195, + "order": 194, "mode": 0, "inputs": [], "outputs": [ @@ -10260,7 +10220,7 @@ 82 ], "flags": {}, - "order": 196, + "order": 195, "mode": 0, "inputs": [], "outputs": [ @@ -10281,6 +10241,40 @@ "coeff": 1.2, "denoise": 1 } + }, + { + "id": 198, + "type": "SEGSLabelFilterDetailerHookProvider", + "pos": [ + 522.8888644748258, + 6145.555555555555 + ], + "size": [ + 400, + 200 + ], + "flags": {}, + "order": 196, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "DETAILER_HOOK", + "type": "DETAILER_HOOK", + "links": null + } + ], + "properties": { + "Node name for S&R": "SEGSLabelFilterDetailerHookProvider" + }, + "widgets_values": [ + "all", + "" + ], + "widgets_values_named": { + "preset": "all", + "labels": "" + } } ], "links": [], @@ -10290,8 +10284,8 @@ "ds": { "scale": 1, "offset": [ - 327.1111111111113, - -20945.555555555555 + -472.8888644748258, + -6005.555555555555 ] }, "frontendVersion": "1.57.6" diff --git a/tests/workflows/all-impact-nodes.widgets.json b/tests/workflows/all-impact-nodes.widgets.json index d607db8b..013dbbd5 100644 --- a/tests/workflows/all-impact-nodes.widgets.json +++ b/tests/workflows/all-impact-nodes.widgets.json @@ -1710,20 +1710,6 @@ } ] }, - { - "id": "58", - "type": "SEGSLabelFilterDetailerHookProvider", - "widgets": [ - { - "name": "preset", - "value": "all" - }, - { - "name": "labels", - "value": "" - } - ] - }, { "id": "59", "type": "VariationNoiseDetailerHookProvider", @@ -3969,6 +3955,20 @@ "value": 1 } ] + }, + { + "id": "198", + "type": "SEGSLabelFilterDetailerHookProvider", + "widgets": [ + { + "name": "preset", + "value": "all" + }, + { + "name": "labels", + "value": "" + } + ] } ] } diff --git a/tests/workflows/label-filter-hook-legacy.json b/tests/workflows/label-filter-hook-legacy.json new file mode 100644 index 00000000..e16ca072 --- /dev/null +++ b/tests/workflows/label-filter-hook-legacy.json @@ -0,0 +1,107 @@ +{ + "id": "16e4d8a1-d7cc-4dfa-a95e-bb8f5f5b21c9", + "revision": 0, + "last_node_id": 2, + "last_link_id": 1, + "nodes": [ + { + "id": 1, + "type": "SEGSLabelFilterDetailerHookProvider", + "pos": [ + -277.1111111111111, + 135.55555555555554 + ], + "size": [ + 400, + 200 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [ + { + "name": "segs", + "type": "SEGS", + "link": null + } + ], + "outputs": [ + { + "name": "DETAILER_HOOK", + "type": "DETAILER_HOOK", + "links": [ + 1 + ] + } + ], + "properties": { + "Node name for S&R": "SEGSLabelFilterDetailerHookProvider" + }, + "widgets_values": [ + "person", + "person, dog" + ], + "widgets_values_named": { + "preset": "person", + "labels": "person, dog" + } + }, + { + "id": 2, + "type": "PreviewAny", + "pos": [ + 417.8888888888889, + 135.55555555555554 + ], + "size": [ + 210, + 122 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [ + { + "name": "source", + "type": "*", + "link": 1 + } + ], + "outputs": [ + { + "name": "STRING", + "type": "STRING", + "links": null + } + ], + "properties": { + "Node name for S&R": "PreviewAny" + }, + "widgets_values": [], + "widgets_values_named": {} + } + ], + "links": [ + [ + 1, + 1, + 0, + 2, + 0, + "DETAILER_HOOK" + ] + ], + "groups": [], + "config": {}, + "extra": { + "ds": { + "scale": 1, + "offset": [ + 327.1111111111111, + 54.44444444444446 + ] + }, + "frontendVersion": "1.57.6" + }, + "version": 0.4 +} \ No newline at end of file