From feeb1d19c83a25bafe572daeaeb0b487963efccd Mon Sep 17 00:00:00 2001 From: bymyself Date: Sun, 22 Dec 2024 17:51:32 -0700 Subject: [PATCH] Fix workflow-insert with reroute nodes (#2008) Co-authored-by: github-actions --- .../assets/single_connected_reroute_node.json | 116 ++++++++++++++++++ browser_tests/rerouteNode.spec.ts | 36 ++++++ .../reroute-inserted-chromium-2x-linux.png | Bin 0 -> 31737 bytes .../reroute-inserted-chromium-linux.png | Bin 0 -> 29533 bytes src/extensions/core/rerouteNode.ts | 1 + 5 files changed, 153 insertions(+) create mode 100644 browser_tests/assets/single_connected_reroute_node.json create mode 100644 browser_tests/rerouteNode.spec.ts create mode 100644 browser_tests/rerouteNode.spec.ts-snapshots/reroute-inserted-chromium-2x-linux.png create mode 100644 browser_tests/rerouteNode.spec.ts-snapshots/reroute-inserted-chromium-linux.png diff --git a/browser_tests/assets/single_connected_reroute_node.json b/browser_tests/assets/single_connected_reroute_node.json new file mode 100644 index 000000000..c81c1204c --- /dev/null +++ b/browser_tests/assets/single_connected_reroute_node.json @@ -0,0 +1,116 @@ +{ + "last_node_id": 16, + "last_link_id": 18, + "nodes": [ + { + "id": 12, + "type": "VAEDecode", + "pos": [620, 260], + "size": [210, 46], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": null + }, + { + "name": "vae", + "type": "VAE", + "link": 18 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": null + } + ], + "properties": { + "Node name for S&R": "VAEDecode" + }, + "widgets_values": [] + }, + { + "id": 13, + "type": "Reroute", + "pos": [510, 280], + "size": [75, 26], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [ + { + "name": "", + "type": "*", + "link": 13 + } + ], + "outputs": [ + { + "name": "", + "type": "VAE", + "links": [18], + "slot_index": 0 + } + ], + "properties": { + "showOutputText": false, + "horizontal": false + } + }, + { + "id": 4, + "type": "CheckpointLoaderSimple", + "pos": [160, 240], + "size": [315, 98], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [], + "slot_index": 0 + }, + { + "name": "CLIP", + "type": "CLIP", + "links": [], + "slot_index": 1 + }, + { + "name": "VAE", + "type": "VAE", + "links": [13], + "slot_index": 2 + } + ], + "properties": { + "Node name for S&R": "CheckpointLoaderSimple" + }, + "widgets_values": ["v1-5-pruned-emaonly.safetensors"] + } + ], + "links": [ + [13, 4, 2, 13, 0, "*"], + [18, 13, 0, 12, 1, "VAE"] + ], + "groups": [], + "config": {}, + "extra": { + "ds": { + "scale": 1, + "offset": { + "0": 0, + "1": 0 + } + } + }, + "version": 0.4 +} diff --git a/browser_tests/rerouteNode.spec.ts b/browser_tests/rerouteNode.spec.ts new file mode 100644 index 000000000..3bcdb34ed --- /dev/null +++ b/browser_tests/rerouteNode.spec.ts @@ -0,0 +1,36 @@ +import { expect } from '@playwright/test' +import { comfyPageFixture as test } from './fixtures/ComfyPage' + +test.describe('Reroute Node', () => { + test.beforeEach(async ({ comfyPage }) => { + await comfyPage.setSetting('Comfy.UseNewMenu', 'Top') + }) + + test.afterEach(async ({ comfyPage }) => { + await comfyPage.setupWorkflowsDirectory({}) + }) + + test('loads from inserted workflow', async ({ comfyPage }) => { + const workflowName = 'single_connected_reroute_node.json' + await comfyPage.setupWorkflowsDirectory({ + [workflowName]: workflowName + }) + await comfyPage.setup() + await comfyPage.menu.topbar.triggerTopbarCommand(['Workflow', 'New']) + + // Insert the workflow + const workflowsTab = comfyPage.menu.workflowsTab + await workflowsTab.open() + await workflowsTab.getPersistedItem(workflowName).click({ button: 'right' }) + const insertButton = comfyPage.page.locator('.p-contextmenu-item-link', { + hasText: 'Insert' + }) + await insertButton.click() + + // Close the sidebar tab + await workflowsTab.tabButton.click() + await workflowsTab.root.waitFor({ state: 'hidden' }) + + await expect(comfyPage.canvas).toHaveScreenshot('reroute_inserted.png') + }) +}) diff --git a/browser_tests/rerouteNode.spec.ts-snapshots/reroute-inserted-chromium-2x-linux.png b/browser_tests/rerouteNode.spec.ts-snapshots/reroute-inserted-chromium-2x-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..560cf3f924544f5c5a2959215e7182e95d7e25fb GIT binary patch literal 31737 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 literal 0 HcmV?d00001 diff --git a/src/extensions/core/rerouteNode.ts b/src/extensions/core/rerouteNode.ts index 447ac3123..a92581200 100644 --- a/src/extensions/core/rerouteNode.ts +++ b/src/extensions/core/rerouteNode.ts @@ -35,6 +35,7 @@ app.registerExtension({ } this.onConnectionsChange = (type, index, connected, link_info) => { + if (app.configuringGraph) return this.applyOrientation() // Prevent multiple connections to different types when we have no input