From d0067719b8bbd1a9877208652e022a98d6f0215e Mon Sep 17 00:00:00 2001 From: pythongosssss <125205205+pythongosssss@users.noreply.github.com> Date: Thu, 29 Aug 2024 23:01:57 +0100 Subject: [PATCH] Fix primitive resize (#683) * Fix primitive resize on load Fixes #676 * Add test * Add playwright test * Update test expectations [skip ci] --------- Co-authored-by: huchenlei Co-authored-by: github-actions --- browser_tests/assets/primitive_node.json | 145 ++++++++++++++++++ browser_tests/primitiveNode.spec.ts | 9 ++ .../primitive-node-chromium-linux.png | Bin 0 -> 64511 bytes src/extensions/core/widgetInputs.ts | 10 +- tests-ui/tests/widgetInputs.test.ts | 16 ++ 5 files changed, 179 insertions(+), 1 deletion(-) create mode 100644 browser_tests/assets/primitive_node.json create mode 100644 browser_tests/primitiveNode.spec.ts create mode 100644 browser_tests/primitiveNode.spec.ts-snapshots/primitive-node-chromium-linux.png diff --git a/browser_tests/assets/primitive_node.json b/browser_tests/assets/primitive_node.json new file mode 100644 index 000000000..b65033b7c --- /dev/null +++ b/browser_tests/assets/primitive_node.json @@ -0,0 +1,145 @@ +{ + "last_node_id": 2, + "last_link_id": 1, + "nodes": [ + { + "id": 2, + "type": "KSampler", + "pos": { + "0": 521.0906982421875, + "1": 40.999996185302734, + "2": 0, + "3": 0, + "4": 0, + "5": 0, + "6": 0, + "7": 0, + "8": 0, + "9": 0 + }, + "size": { + "0": 315, + "1": 262 + }, + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": null + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": null + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": null + }, + { + "name": "latent_image", + "type": "LATENT", + "link": null + }, + { + "name": "steps", + "type": "INT", + "link": 1, + "widget": { + "name": "steps" + } + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": null, + "shape": 3 + } + ], + "properties": { + "Node name for S&R": "KSampler" + }, + "widgets_values": [ + 0, + "randomize", + 20, + 8, + "euler", + "normal", + 1 + ] + }, + { + "id": 1, + "type": "PrimitiveNode", + "pos": { + "0": 15, + "1": 46, + "2": 0, + "3": 0, + "4": 0, + "5": 0, + "6": 0, + "7": 0, + "8": 0, + "9": 0 + }, + "size": [ + 446.96645387135936, + 108.34243389566905 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "INT", + "type": "INT", + "links": [ + 1 + ], + "slot_index": 0, + "widget": { + "name": "steps" + } + } + ], + "properties": { + "Run widget replace on values": false + }, + "widgets_values": [ + 20, + "fixed" + ] + } + ], + "links": [ + [ + 1, + 1, + 0, + 2, + 4, + "INT" + ] + ], + "groups": [], + "config": {}, + "extra": { + "ds": { + "scale": 1, + "offset": [ + 0, + 0 + ] + } + }, + "version": 0.4 +} \ No newline at end of file diff --git a/browser_tests/primitiveNode.spec.ts b/browser_tests/primitiveNode.spec.ts new file mode 100644 index 000000000..eef09f03f --- /dev/null +++ b/browser_tests/primitiveNode.spec.ts @@ -0,0 +1,9 @@ +import { expect } from '@playwright/test' +import { comfyPageFixture as test } from './ComfyPage' + +test.describe('Primitive Node', () => { + test('Can load with correct size', async ({ comfyPage }) => { + await comfyPage.loadWorkflow('primitive_node') + await expect(comfyPage.canvas).toHaveScreenshot('primitive_node.png') + }) +}) diff --git a/browser_tests/primitiveNode.spec.ts-snapshots/primitive-node-chromium-linux.png b/browser_tests/primitiveNode.spec.ts-snapshots/primitive-node-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..5ee72db0f060c1239bad5e67512c511ea3f33209 GIT binary patch literal 64511 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%0AINc4&!@26gEYq`-IU5g*S@@_bulz@(r(my&;z_ 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%0A<%+jT=H;l6^owo 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 literal 0 HcmV?d00001 diff --git a/src/extensions/core/widgetInputs.ts b/src/extensions/core/widgetInputs.ts index 982efbec9..d10bfa075 100644 --- a/src/extensions/core/widgetInputs.ts +++ b/src/extensions/core/widgetInputs.ts @@ -203,6 +203,8 @@ class PrimitiveNode extends LGraphNode { type = 'COMBO' } + // Store current size as addWidget resizes the node + const size = this.size let widget if (type in ComfyWidgets) { widget = (ComfyWidgets[type](this, 'value', inputData, app) || {}).widget @@ -261,8 +263,14 @@ class PrimitiveNode extends LGraphNode { return r } + // Use the biggest dimensions in case the widgets caused the node to grow + this.size = [ + Math.max(this.size[0], size[0]), + Math.max(this.size[1], size[1]) + ] + if (!recreating) { - // Grow our node if required + // Grow our node more if required const sz = this.computeSize() if (this.size[0] < sz[0]) { this.size[0] = sz[0] diff --git a/tests-ui/tests/widgetInputs.test.ts b/tests-ui/tests/widgetInputs.test.ts index 621463163..22b2c5435 100644 --- a/tests-ui/tests/widgetInputs.test.ts +++ b/tests-ui/tests/widgetInputs.test.ts @@ -622,5 +622,21 @@ describe('widget inputs', () => { }) }) }) + it('primitive maintains size on reload', async () => { + const { ez, graph } = await start() + const primitive = ez.PrimitiveNode() + const image = ez.EmptyImage() + + image.widgets.width.convertToInput() + primitive.outputs[0].connectTo(image.inputs.width) + + primitive.node.size = [999, 999] + + await checkBeforeAndAfterReload(graph, async (r) => { + const { node } = graph.find(primitive) + expect(node.size[0]).toBe(999) + expect(node.size[1]).toBe(999) + }) + }) }) })