ComfyUI Client Run (Yogurt Nodes)
Submit and wait — the node that actually fires the remote job
- client
- results
- prompt_id
ComfyUI Client Load sets up the client. The Set nodes patch the workflow's values. And then nothing happens until this one shows up. ComfyUI Client Run is the trigger of the eight-node ComfyUI Client family: it takes the COMFYUI_CLIENT handle, submits the workflow to the remote server's API, waits (polling the server's history), and comes back with a COMFYUI_RESULTS package plus the prompt_id of the run.
How it works
When Run fires, it POSTs the assembled workflow to the remote server's prompt endpoint - the same API your browser hits when you click Queue. The server validates, schedules, and runs. Meanwhile Run polls the server's history at the configured interval until a result for that prompt_id shows up. Everything downstream of a Run node therefore blocks until the remote job finishes: if you want to fire off a job and do other work locally at the same time, this is the wrong node - this one is the "wait for it" step, and the workflow design should reflect that.
The results output is the full bag of every node's outputs from that remote run. You don't dig through it manually; you hand it to ComfyUI Client Get Output, which extracts the outputs of a specific node by id or title. The pairing is deliberate: Run produces the haystack, Get Output finds the needle.
Inputs
- client - the handle from Load (or from a previous Set node, since those pass the client through).
- nodes - optional: a comma- or newline-separated list of node ids/titles to collect output for. Leave blank to collect everything. Useful when the remote workflow is big and you only care about a couple of outputs - collecting less keeps the results package small and the Get Output step unambiguous.
- timeout - overrides the client's timeout for this run. 0 means "use the client's setting." If the remote workflow genuinely takes ten minutes and you set Load's timeout to 120, this is where you extend it per-run.
- poll_interval - overrides the client's poll interval. 0 means "use the client's setting." Raise it for slow jobs so you're not polling a distant server every 200ms.
Outputs
- results - the
COMFYUI_RESULTSpackage holding the remote run's outputs. Wire it into Get Output. - prompt_id - the string id of the submitted run. Useful for logging, for correlating with the server's history, or for debugging "which run was this" when results look wrong.
Install
Standard Yogurt Nodes install. ComfyUI Manager → search "ComfyUI-YogurtNodes", or:
cd ComfyUI/custom_nodes
git clone https://github.com/yogurt7771/ComfyUI-YogurtNodes.git
cd ComfyUI-YogurtNodes && pip install -r requirements.txt
Then restart ComfyUI. Nothing extra - this is an HTTP wait loop over the pack's requests dependency.
Where people get burned
The classic failure is a timeout mismatch: Load's default timeout is 120 seconds, and if the remote job takes longer, Run dies with a timeout while the server happily keeps generating in the background. Set per-run timeouts generously when you know the job is slow. Second, the unauthenticated-API warning applies with extra force here: this node sends a workflow to be executed on a server. Only point it at servers you trust, and remember ComfyUI's API has no auth by default - protect the server, not just the node. Third, if you leave nodes blank on a workflow with output nodes, the results package can be large and Get Output's "auto-pick the single node" convenience stops working. Being explicit about which nodes you want back is the difference between a clean pipeline and a puzzle.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| client | COMFYUI_CLIENT | — | |
| nodesopt | STRING | 仅收集这些节点输出(逗号/换行分隔),留空获取全部 | |
| timeoutopt | FLOAT | 00–3600 | 覆盖客户端超时时间(秒),0 表示沿用客户端设置 |
| poll_intervalopt | FLOAT | 0.000–5 | 覆盖客户端轮询间隔,0 表示沿用客户端设置 |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| results | COMFYUI_RESULTS | — |
| prompt_id | STRING | — |