Sync 2666 Execution Model Inversion (#312)

* Sync 2666 Execution Model Inversion

* Fix unittest

* Fallback compatible
This commit is contained in:
Chenlei Hu
2024-08-05 16:42:37 -04:00
committed by GitHub
parent 50c4c87e62
commit 3269b54aae
6 changed files with 21 additions and 8 deletions

View File

@@ -1108,8 +1108,13 @@ export class GroupNodeHandler {
const executed = handleEvent.call(
this,
'executed',
(d) => d?.node,
(d, id, node) => ({ ...d, node: id, merge: !node.resetExecution })
(d) => d?.display_node || d?.node,
(d, id, node) => ({
...d,
node: id,
display_node: id,
merge: !node.resetExecution
})
)
const onRemoved = node.onRemoved

View File

@@ -5,7 +5,7 @@ import { LiteGraph } from '@comfyorg/litegraph'
import type { LGraphNode, INodeInputSlot, IWidget } from '@comfyorg/litegraph'
const CONVERTED_TYPE = 'converted-widget'
const VALID_TYPES = ['STRING', 'combo', 'number', 'BOOLEAN']
const VALID_TYPES = ['STRING', 'combo', 'number', 'toggle', 'BOOLEAN']
const CONFIG = Symbol()
const GET_CONFIG = Symbol()
const TARGET = Symbol() // Used for reroutes to specify the real target widget

View File

@@ -171,7 +171,9 @@ class ComfyApi extends EventTarget {
break
case 'executing':
this.dispatchEvent(
new CustomEvent('executing', { detail: msg.data.node })
new CustomEvent('executing', {
detail: msg.data.display_node || msg.data.node
})
)
break
case 'executed':

View File

@@ -1627,7 +1627,7 @@ export class ComfyApp {
this.workflowManager.activeWorkflow
)
return
const output = this.nodeOutputs[detail.node]
const output = this.nodeOutputs[detail.display_node || detail.node]
if (detail.merge && output) {
for (const k in detail.output ?? {}) {
const v = output[k]
@@ -1638,9 +1638,9 @@ export class ComfyApp {
}
}
} else {
this.nodeOutputs[detail.node] = detail.output
this.nodeOutputs[detail.display_node || detail.node] = detail.output
}
const node = this.graph.getNodeById(detail.node)
const node = this.graph.getNodeById(detail.display_node || detail.node)
if (node) {
// @ts-expect-error
if (node.onExecuted)

View File

@@ -272,7 +272,11 @@ class ComfyList {
false
)
if ('outputs' in item) {
app.nodeOutputs = item.outputs
app.nodeOutputs = {}
for (const [key, value] of Object.entries(item.outputs)) {
const realKey = item['meta']?.[key]?.display_node ?? key
app.nodeOutputs[realKey] = value
}
}
}
}),

View File

@@ -578,6 +578,7 @@ describe('group node', () => {
new CustomEvent('executed', {
detail: {
node: `${nodes.save.id}`,
display_node: `${nodes.save.id}`,
output: {
images: [
{
@@ -618,6 +619,7 @@ describe('group node', () => {
new CustomEvent('executed', {
detail: {
node: `${group.id}:5`,
display_node: `${group.id}:5`,
output: {
images: [
{