Nodes/Photoshop Bridge/Edit in Photoshop
ComfyUI Node

Edit in Photoshop

The Lightroom 'Edit in Photoshop' round trip, for ComfyUI

By ericpaulsnowden·Created 2 months ago·Updated 4 days ago· 1
Edit in Photoshop
  • image
  • IMAGE
  • MASK
modeWait for first save
timeout_seconds1800

This is the node the whole Photoshop Bridge pack is built around, and it does exactly what you hope it does: it hands your image to Photoshop, blocks the workflow until you actually finish editing, and picks up your Cmd/Ctrl+S as the node's output. No exporting to a temp folder, no dragging a PNG back in, no "okay where did that file go" archaeology. It's the "Edit in Photoshop" round trip Lightroom has had forever, bolted onto the graph.

The pack also lets you skip the node entirely - right-click any image in ComfyUI (a LoadImage, a generated preview, a saved output) and choose Open in Photoshop - but the node earns its place when the touch-up is a step in a workflow: generate, retouch a face in Photoshop, then continue on into upscaling or compositing. Inpainting nodes get you 90% of hand-fixes automatically; the last 10% - the thing where you genuinely want a brush, a heal tool, and your own judgment - is what this node is for.

How it works

There are two tiers under the hood, and you mostly shouldn't care which one is running. Tier 1 needs nothing beyond the node pack: it writes the image to a PSD in a folder the pack manages, asks the OS to open it in Photoshop, and a file-watcher (watchdog) waits for a save, then reads Photoshop's own composite back out of the PSD. Tier 2 is an optional UXP Photoshop plugin that listens for Photoshop's native save event and pushes a flattened export back over ComfyUI's own server - instant, slightly higher-fidelity, and it works when Photoshop and ComfyUI are on different machines. Both tiers converge on the same backend, so the graph doesn't care which one delivered your edit.

What comes back is a flat composite of your edit - the pack doesn't decompose your layers back into the graph (layers flow through the graph via the Load PSD / Compose nodes instead). And whatever you hand it gets converted to RGB8 on the way in, so don't expect a colorimetric match if you're feeding it CMYK.

The inputs that matter

Three required inputs, and you'll set two of them:

  • mode - the default Wait for first save pauses the workflow at this node until you save, then continues with your edit. Re-run on every save opens Photoshop once and re-queues the workflow each time you save, so you can iterate without ever touching ComfyUI. Open only (don't wait) opens Photoshop and immediately passes your original image through - handy for "launch this for me" without stalling.
  • timeout_seconds - default 1800, how long "wait" is willing to sit before killing the workflow. Lower it if you've got a big queue behind you.
  • image - the obvious one.

Outputs are IMAGE (your edit, or the unchanged input) and MASK (transparency as 1 - alpha, all zeros if the edit has no transparency - wire it into a compositor if you need to handle transparency downstream).

Install

This pack isn't in the ComfyUI Manager searchable registry yet, so Manager → Install via Git URL and paste the repo URL, or:

cd ComfyUI/custom_nodes
git clone https://github.com/ericpaulsnowden/comfyui-photoshop-bridge.git comfyui-photoshop-bridge
pip install -r comfyui-photoshop-bridge/requirements.txt

Run that pip with the same Python ComfyUI uses - its venv, or python_embeded\python.exe -m pip install -r ... on the portable Windows build. Restart ComfyUI. That's it for Tier 1. Dependencies are modest (watchdog, psd-tools, Pillow, numpy - no torch, ComfyUI brings that), and you need a current 2025+ frontend plus Photoshop 2025 (v26)+.

Where people get burned

  • Photoshop nags you about Maximize PSD Compatibility on every save. Set it to Always (Preferences → File Handling). The saved PSD's embedded compatibility composite is literally what this pack reads back as your edit - without it, it falls back to re-compositing the PSD itself, which may not match what you saw.
  • Save As to a different file breaks the link. The watcher only watches the exact hand-off path. If you Save As elsewhere, the card sits at "Editing" forever with no hint. Drag the saved-elsewhere image onto that gallery card to import it manually.
  • ModuleNotFoundError: No module named 'watchdog' means the deps landed in the wrong Python. Reinstall with ComfyUI's own interpreter. (The No module named 'cpsb' line that follows is a red herring - ignore it.)

One honest note: this is a pre-1.0, actively developed project. The community's history of Photoshop↔SD bridges is a graveyard of abandoned plugins, so the author's "no-plugin Tier 1 works first" design is genuinely the right call - the basics keep working even if the plugin side changes under you.

CategoryPhotoshop Bridge/Handoffs (requires Photoshop)

Inputs (3)

NameTypeDefaultDescription
imageIMAGEThe image to send to Photoshop.
modeCOMBOWait for first saveHow the workflow reacts once Photoshop opens. 'Wait for first save' pauses the workflow here until you save, then continues with your edit. 'Re-run on every save' opens Photoshop once and re-queues the workflow automatically each time you save, so you can keep iterating without touching ComfyUI. 'Open only (don't wait)' opens Photoshop and continues immediately, passing the original image through unchanged.
timeout_secondsINT180010–86400How long to wait for you to save in Photoshop before giving up and stopping the workflow, in seconds. Only used by 'Wait for first save'.

Outputs (2)

NameTypeDescription
IMAGEIMAGEThe edited image once you save in Photoshop, or the unchanged input if this mode doesn't wait for a save.
MASKMASKMarks any transparent area of the edit (1.0 = transparent, 0.0 = opaque). All zero when there's no edit yet, or the edit has no transparency.