Move widget link drop conversion to widgetInputs (#2001)

Co-authored-by: github-actions <github-actions@github.com>
This commit is contained in:
Chenlei Hu
2024-12-20 16:10:18 -08:00
committed by GitHub
parent c8f62cd963
commit ca9627cada
7 changed files with 130 additions and 49 deletions

View File

@@ -63,7 +63,6 @@ import { useWidgetStore } from '@/stores/widgetStore'
import { deserialiseAndCreate } from '@/extensions/core/vintageClipboard'
import { st } from '@/i18n'
import { normalizeI18nKey } from '@/utils/formatUtil'
import { ISerialisedGraph } from '@comfyorg/litegraph'
export const ANIM_PREVIEW_WIDGET = '$$comfy_animation_preview'
@@ -1610,52 +1609,6 @@ export class ComfyApp {
}
}
#addWidgetLinkHandling() {
app.canvas.getWidgetLinkType = function (widget, node) {
const nodeDefStore = useNodeDefStore()
const nodeDef = nodeDefStore.nodeDefsByName[node.type]
const input = nodeDef.inputs.getInput(widget.name)
return input?.type
}
type ConnectingWidgetLink = {
subType: 'connectingWidgetLink'
widget: IWidget
node: LGraphNode
link: { node: LGraphNode; slot: number }
}
document.addEventListener(
'litegraph:canvas',
async (e: CustomEvent<ConnectingWidgetLink>) => {
if (e.detail.subType === 'connectingWidgetLink') {
const { convertToInput } = await import(
'@/extensions/core/widgetInputs'
)
const { node, link, widget } = e.detail
if (!node || !link || !widget) return
const nodeData = node.constructor.nodeData
if (!nodeData) return
const all = {
...nodeData?.input?.required,
...nodeData?.input?.optional
}
const inputSpec = all[widget.name]
if (!inputSpec) return
const input = convertToInput(node, widget, inputSpec)
if (!input) return
const originNode = link.node
originNode.connect(link.slot, node, node.inputs.lastIndexOf(input))
}
}
)
}
#addAfterConfigureHandler() {
const app = this
const onConfigure = app.graph.onConfigure
@@ -1782,7 +1735,6 @@ export class ComfyApp {
this.#addDropHandler()
this.#addCopyHandler()
this.#addPasteHandler()
this.#addWidgetLinkHandling()
await this.#invokeExtensionsAsync('setup')
}