mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-05-03 04:31:58 +00:00
feat: resolveVirtualOutput for cross-subgraph virtual nodes (eg. Set/Get) (#10111)
## Summary Enable virtual nodes (e.g. Set/Get) to resolve their output source directly when the source lives in a different subgraph. ## Changes - **What**: Added optional resolveVirtualOutput method on LGraphNode and a new resolution path in ExecutableNodeDTO.resolveOutput that checks it before falling through to the existing getInputLink path. Includes unit tests for the three code paths (happy path, missing DTO, fallthrough). ## Review Focus - Fully backwards compatible — no existing node implements resolveVirtualOutput, so the new path is always skipped for current virtual nodes (Reroute, PrimitiveNode, etc.). <!-- If this PR fixes an issue, uncomment and update the line below --> <!-- Fixes #ISSUE_NUMBER --> ## Screenshots Simple example in actual use, combined with new changes in KJNodes allows using Get nodes inside subgraphs: <img width="2242" height="1434" alt="image" src="https://github.com/user-attachments/assets/cc940a95-e0bb-4adf-91b6-9adc43a74aa2" /> <img width="1436" height="440" alt="image" src="https://github.com/user-attachments/assets/62044af5-0d6e-4c4e-b34c-d33e85f2b969" /> ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-10111-feat-resolveVirtualOutput-for-cross-subgraph-virtual-nodes-eg-Set-Get-3256d73d3650816a9f20e28029561c58) by [Unito](https://www.unito.io)
This commit is contained in:
@@ -1207,6 +1207,14 @@ export class LGraphNode
|
||||
: this.inputs[slot]
|
||||
}
|
||||
|
||||
/**
|
||||
* Resolves the output source for cross-graph virtual nodes (e.g. Set/Get),
|
||||
* bypassing {@link getInputLink} when the source lives in a different graph.
|
||||
*/
|
||||
resolveVirtualOutput?(
|
||||
slot: number
|
||||
): { node: LGraphNode; slot: number } | undefined
|
||||
|
||||
/**
|
||||
* Returns the link info in the connection of an input slot
|
||||
* @returns object or null
|
||||
|
||||
Reference in New Issue
Block a user