From 3a1c95fb10ec93aa1da2e257c2a5c6fcaf96296a Mon Sep 17 00:00:00 2001 From: Chenlei Hu Date: Tue, 8 Apr 2025 11:08:42 -0400 Subject: [PATCH] [Bug] Fix input link slots (#3349) Co-authored-by: github-actions --- browser_tests/assets/input_order_swap.json | 74 ++++++++++++++++++ browser_tests/tests/graph.spec.ts | 16 ++++ .../primitive-node-chromium-linux.png | Bin 66811 -> 66662 bytes src/scripts/app.ts | 10 ++- src/utils/litegraphUtil.ts | 42 +++++++++- 5 files changed, 139 insertions(+), 3 deletions(-) create mode 100644 browser_tests/assets/input_order_swap.json create mode 100644 browser_tests/tests/graph.spec.ts diff --git a/browser_tests/assets/input_order_swap.json b/browser_tests/assets/input_order_swap.json new file mode 100644 index 000000000..5c6172791 --- /dev/null +++ b/browser_tests/assets/input_order_swap.json @@ -0,0 +1,74 @@ +{ + "id": "51b9b184-770d-40ac-a478-8cc31667ff23", + "revision": 0, + "last_node_id": 2, + "last_link_id": 1, + "nodes": [ + { + "id": 1, + "type": "CLIPTextEncode", + "pos": [904, 466], + "size": [400, 200], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [ + { + "name": "text", + "type": "STRING", + "widget": { + "name": "text" + }, + "link": 1 + }, + { + "name": "clip", + "type": "CLIP", + "link": null + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": null + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [""] + }, + { + "id": 2, + "type": "PrimitiveString", + "pos": [556.8589477539062, 472.94342041015625], + "size": [315, 58], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "STRING", + "type": "STRING", + "links": [1] + } + ], + "properties": { + "Node name for S&R": "PrimitiveString" + }, + "widgets_values": ["foo"] + } + ], + "links": [[1, 2, 0, 1, 0, "STRING"]], + "groups": [], + "config": {}, + "extra": { + "ds": { + "scale": 1.7715610000000013, + "offset": [-388.521484375, -162.31336975097656] + } + }, + "version": 0.4 +} diff --git a/browser_tests/tests/graph.spec.ts b/browser_tests/tests/graph.spec.ts new file mode 100644 index 000000000..7ba290ce8 --- /dev/null +++ b/browser_tests/tests/graph.spec.ts @@ -0,0 +1,16 @@ +import { expect } from '@playwright/test' + +import { comfyPageFixture as test } from '../fixtures/ComfyPage' + +test.describe('Graph', () => { + // Should be able to fix link input slot index after swap the input order + // Ref: https://github.com/Comfy-Org/ComfyUI_frontend/issues/3348 + test('Fix link input slots', async ({ comfyPage }) => { + await comfyPage.loadWorkflow('input_order_swap') + expect( + await comfyPage.page.evaluate(() => { + return window['app'].graph.links.get(1)?.target_slot + }) + ).toBe(1) + }) +}) diff --git a/browser_tests/tests/primitiveNode.spec.ts-snapshots/primitive-node-chromium-linux.png b/browser_tests/tests/primitiveNode.spec.ts-snapshots/primitive-node-chromium-linux.png index 73af05fafc20bed19df9b2026e436eb23ac4b03d..f0a617735cfd28bb8336296f6fdea1bb91173b9c 100644 GIT binary patch delta 44883 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
%`uBN+>%j?9`QmRFM^HE<`)a=*I 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 delta 43522 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 CjbwoU diff --git a/src/scripts/app.ts b/src/scripts/app.ts index a74262b05..5d1e032bb 100644 --- a/src/scripts/app.ts +++ b/src/scripts/app.ts @@ -47,7 +47,11 @@ import type { ComfyExtension, MissingNodeType } from '@/types/comfy' import { ExtensionManager } from '@/types/extensionTypes' import { ColorAdjustOptions, adjustColor } from '@/utils/colorUtil' import { graphToPrompt } from '@/utils/executionUtil' -import { executeWidgetsCallback, isImageNode } from '@/utils/litegraphUtil' +import { + executeWidgetsCallback, + fixLinkInputSlots, + isImageNode +} from '@/utils/litegraphUtil' import { findLegacyRerouteNodes, noNativeReroutes @@ -705,7 +709,9 @@ export class ComfyApp { #addAfterConfigureHandler() { const app = this const onConfigure = app.graph.onConfigure - app.graph.onConfigure = function (...args) { + app.graph.onConfigure = function (this: LGraph, ...args) { + fixLinkInputSlots(this) + // Fire callbacks before the onConfigure, this is used by widget inputs to setup the config for (const node of app.graph.nodes) { node.onGraphConfigured?.() diff --git a/src/utils/litegraphUtil.ts b/src/utils/litegraphUtil.ts index c9cc7ccea..384dcb03b 100644 --- a/src/utils/litegraphUtil.ts +++ b/src/utils/litegraphUtil.ts @@ -1,4 +1,4 @@ -import type { ColorOption } from '@comfyorg/litegraph' +import type { ColorOption, LGraph } from '@comfyorg/litegraph' import { LGraphGroup, LGraphNode, isColorable } from '@comfyorg/litegraph' import type { IComboWidget, @@ -104,3 +104,43 @@ export function migrateWidgetsValues( } return widgetsValues } + +/** + * Fix link input slots after loading a graph. Because the node inputs follows + * the node definition after 1.16, the node inputs array from previous versions, + * might get added items in the middle, which can cause shift to link's slot index. + * For example, the node inputs definition is: + * "required": { + * "input1": ["INT", { forceInput: true }], + * "input2": ["MODEL", { forceInput: false }], + * "input3": ["MODEL", { forceInput: false }] + * } + * + * previously node inputs array was: + * [{name: 'input2'}, {name: 'input3'}, {name: 'input1'}] + * because input1 is created as widget first, then convert to input socket after + * input 2 and 3. + * + * Now, the node inputs array just follows the definition order: + * [{name: 'input1'}, {name: 'input2'}, {name: 'input3'}] + * + * We need to update the slot index of corresponding links to match the new + * node inputs array order. + * + * Ref: https://github.com/Comfy-Org/ComfyUI_frontend/issues/3348 + * + * @param graph - The graph to fix links for. + */ +export function fixLinkInputSlots(graph: LGraph) { + for (const node of graph.nodes) { + for (const [inputIndex, input] of node.inputs.entries()) { + const linkId = input.link + if (!linkId) continue + + const link = graph.links.get(linkId) + if (!link) continue + + link.target_slot = inputIndex + } + } +}