Bridge Output
Sending results back by name
- value
Every Bridge Input has a partner, and this is it. Bridge Output is how ComfyBridgeIO gets results out of the workflow and back to whatever drove it. Input bridges are the agent's hands; this node is its eyes. Without at least one of these in your workflow, the whole pack is a one-way door - you can feed values in, but nothing comes back.
The mechanism is where this node earns its keep. Two required inputs: name (STRING, default "output_name") and value (type * - it accepts literally anything, same wildcard trick as Bridge Input ANY). When the node runs, it stores the value server-side under your chosen name, keyed by the prompt ID. The Python client then pulls it: after the websocket signals execution finished, it hits GET /history/{prompt_id} for standard outputs and GET /comfybridge/results/{prompt_id} for your tagged ones, and hands you a BridgeResult where result.get("your_name") is the value. Scalars come back as plain JSON; images are encoded to PNG (small ones inline as base64, big ones streamed from /comfybridge/file/...); latents, conditioning, and audio/video dicts get serialized as metadata.
Two details matter. First, the node is declared OUTPUT_NODE = True, which tells ComfyUI this is a terminal node that must always run - that's what guarantees your result is captured even if nothing else downstream "needs" it. Second, results live in server memory with a 100-entry LRU cap, so a long session won't leak, but they're also gone on restart - fetch what you need per run, don't treat this as storage.
Wire it anywhere you'd previously use a Preview Image or Save Image and also want the data in code: the final decoded image, a caption, a per-run metric like an NSFW score, whatever. You can hang several Bridge Outputs off one workflow with different names, and each comes back as its own key.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/cbpark84/ComfyBridgeIO
Restart ComfyUI, or ComfyUI Manager → search ComfyBridgeIO → Install. No models, no heavy deps. The Python client is where the retrieval methods live (pip install -e in the repo; aiohttp, websockets, Pillow). The README's clone URL says nicekate/ComfyBridgeIO - stale, use cbpark84 as above.
Common issues
Big-image gotcha: the sync client's result.as_bytes("name") only works for results that were inlined as base64 (under the 2MB threshold). For a 4K render, use the async methods - await result.as_bytes_async("name"), download(), or save("name", "out.png") - which fall back to streaming from the file route. And if your name comes back missing, check the spelling against the name widget - the client matches keys exactly. Results also vanish on a ComfyUI restart, since the store is in-memory; if a run "lost" its output, a restart in between is usually why.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| name | STRING | output_name | — |
| value | * | — |
Outputs (0)
No outputs