End Workflow
The return point for a sub-workflow called from another graph
- images
This node only makes real sense once you know what this pack lets you do with an entire workflow: treat it as a callable sub-routine from inside a bigger one. The pack's author has described the mechanism directly - a "workflow transfer" node in an outer graph can spin up a second ComfyUI instance on another port, hand it a saved inner workflow's JSON to run, and read the result back through this node once the inner workflow finishes. End Workflow is that finish line: whatever you wire into it here is what the outer workflow gets handed back.
How it works
Drop this at the end of a workflow you're planning to call as a sub-workflow, save that workflow to the pack's workflow_api folder, then reference it from a workflow-transfer node in a different, outer graph. The outer graph passes control to the inner one, the inner one runs to completion, and whatever's plugged into this node's images and text inputs is what comes back across. It's also a genuinely simple terminal output on its own even without the sub-workflow machinery - think of it as this pack's combined SaveImage-plus-ShowText, sitting wherever a workflow needs to definitively end and hand off (or just save) its result.
The reason this exists as a distinct pattern rather than ComfyUI's normal node graph is explained by the author's own reasoning for building it: ComfyUI can't change a workflow's topology once it's already running, so there's no native way to have an LLM's output decide, mid-run, which of several different downstream pipelines actually executes. Splitting a big workflow into pieces and using this end-of-workflow/call-a-sub-workflow pattern is the pack's way around that - an LLM node upstream decides which saved sub-workflow to invoke, and only that one runs.
The inputs and outputs that matter
filename_prefix(default"ComfyUI") - required, and behaves like ComfyUI's own Save nodes: a prefix for anything this node saves to disk.- Optional
images- image output to return/save. - Optional
text- text output to return/save.
No outputs of its own - it's a terminal node by design, which is exactly why it's marked as an output node in the schema: it needs to run and do its job (save, and make its inputs available to whatever called this workflow) even with nothing downstream consuming anything from it, because there is nothing downstream in the graph it lives in.
Installing it
Comes with the pack, no separate step:
- ComfyUI Manager: search "comfyui_LLM_party", install, restart.
- Manual:
cd ComfyUI/custom_nodes && git clone https://github.com/heshengtao/comfyui_LLM_party, thenpip install -r requirements.txtfrom the pack's own folder using ComfyUI's Python, then restart.
Common issues & troubleshooting
Using this as a sub-workflow return, and nothing comes back to the outer graph. Double-check the inner workflow was actually saved into the pack's workflow_api folder (not just saved as a normal workflow file) - that's the location the workflow-transfer node reads from, and a workflow saved anywhere else won't be found.
The sub-workflow mechanism opens a second ComfyUI instance and it seems stuck, or a console window won't close. That's expected the first time you use the calling side of this pattern - the outer workflow's transfer node opens a genuine second ComfyUI process on another port to run the inner workflow, and that console window needs to stay open while it's in use. Closing it kills the inner instance mid-run.
Just using this as a plain terminal node, no sub-workflow involved. Then it behaves like any Save-style node - if nothing's showing up, check that images or text is actually wired in; both are optional, so an unconnected End Workflow node with neither input plugged in genuinely has nothing to save.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| filename_prefix | STRING | ComfyUI | — |
| imagesopt | IMAGE | — | |
| textopt | STRING | — |
Outputs (0)
No outputs