PS Bridge Send To Photoshop
The last node in any PS Bridge workflow — hand the render back to Photoshop
- image
- alpha
The roundtrip this pack exists for has two ends: Adv_Request receives what Photoshop sends, and this node - PS Bridge Send To Photoshop (Adv_SendToPS) - sends the answer back. It's a terminal node in the truest sense: no outputs, marked is_output_node, and ComfyUI treats it as non-idempotent because every execution is a real side effect. Wire your final generated IMAGE into it, run the graph, and the result shows up in Photoshop - placed where you asked, not dumped into a downloads folder.
It replaces the habit of ending a workflow at a Save Image node, then hunting the file and dragging it into your canvas. The render travels over the same local bridge the request came in on.
What it does under the hood
When Adv_SendToPS runs, it takes the image tensor and writes PNGs into ComfyUI's temp directory - fast, uncompressed writes, since these are roundtrip buffers rather than archival files. Then it builds a result payload tagged with the active request ID and pushes it back over the bridge WebSocket to the client that's waiting. The client knows which document and roughly where you were working because the node pulls placement metadata (target document, placement bounds) from the last stored request and forwards it. If your image tensor carries a batch of frames, each one becomes its own PNG - PSBridge_<request>_000.png, _001, and so on.
The inputs
Only one is required:
- image: your final render. This is the one you'll actually connect.
Two optional:
- alpha: an opacity mask, in the author's own words, "0 transparent and 1 opaque." Connect a MASK here and you get a genuine RGBA PNG back in Photoshop - transparent where the mask is 0. That's the trick for returning cutouts, mattes, and composites as layers that slot into a design instead of floating on a white box. Leave it disconnected and the result comes back opaque. One nice touch: if the image itself already has an alpha channel, the node uses it when no mask is wired in.
- filename_prefix (default
PSBridge): cosmetic - only the temporary file names on disk change. You never see these files, so you can ignore it.
Install
Same as its sibling - this is a two-node pack. ComfyUI Manager, search ComfyUI PS Bridge Nodes, or:
cd ComfyUI/custom_nodes
git clone https://github.com/AIGCTV/comfyui-ps-bridge-nodes.git
python -m pip install -r comfyui-ps-bridge-nodes/requirements.txt
Restart after. Only dependency is msgpack; no models. It does need a ComfyUI build with the V3 custom-node API - this pack uses the newer ComfyExtension style, and older ComfyUI won't load it. And remember the same caveat that applies pack-wide: the node sends to a client. If you're not connected to a Photoshop bridge client, its run has nowhere to go.
Where people get burned
- The render doesn't land in Photoshop: the bridge client disconnected, or you're testing outside a real request. The node falls back to a timestamp-based request ID, so a stray run just renders into the void rather than erroring - which makes "did it send?" easy to miss. Watch the ComfyUI console for the send, not the node itself.
- You expected transparency and got an opaque box: you forgot the alpha input, or the mask you connected is inverted. Remember the convention - 0 is transparent, 1 is opaque.
- Running on a different machine than Photoshop: loopback-only is the default and fails closed. For LAN you must set
PS_BRIDGE_ALLOW_LAN=1plusPS_BRIDGE_AUTH_TOKENbefore ComfyUI starts, and the token doesn't encrypt anything - keep it to a trusted network.
The pairing is clean once it clicks: Adv_Request reads the incoming request, you build between them, and Adv_SendToPS closes the loop. Every PS Bridge workflow ends at this node - that's by design.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| alphaopt | MASK | Optional opacity alpha mask, 0 transparent and 1 opaque. | |
| filename_prefixopt | STRING | PSBridge | — |
Outputs (0)
No outputs