Photoshop side automatic update SDPPP2.0
The node that installs sd-ppp's Photoshop plugin so you don't have to
- Status
- Generated_Path
If you run ZombieYang's sd-ppp - the Photoshop↔ComfyUI bridge that lets you paint, region-prompt, and send layers straight into a diffusion workflow - you've felt its one real pain point: sd-ppp updates fast, and the Photoshop side is a .ccx plugin file you used to install by hand. This node (the "Photoshop side automatic update SDPPP2.0" node from WWWEN8's ComfyUI-CCXManager) is the automation for that chore. It downloads the ccx, drops it into the right Photoshop Plug-ins folder, and then keeps doing it for you on every restart. Name's a mouthful; job is simple.
What it actually does
sd-ppp has two halves. The ComfyUI half is a normal custom node; the Photoshop half is a .ccx file that lives under the Photoshop Plug-ins directory. The author ships updates constantly, and keeping both halves in sync by hand is misery. CCXManager automates the Photoshop side: it checks whether the sd-ppp repo has a new commit, and if so (or if you tell it to force a reinstall), it downloads the latest sd-ppp2_PS.ccx, wipes the target folder, and unzips the plugin in.
This node is the 2.0 version. There's a sibling node (CCXManagerCopy) for the 1.0 plugin, and the two can run side by side - which is exactly what the pack is built for.
The inputs that matter
source_type-url(default) orlocal_path.urldownloads from the network;local_pathreads a.ccxfile from disk, which is your lifeline when you can't reach gitee/GitHub.source_path- the download URL or local file path. The default points at the gitee mirror ofsd-ppp2_PS.ccx, and you mostly leave it alone.github_repo_url- the sd-ppp repo it checks for updates (defaulthttps://github.com/zombieyang/sd-ppp.git). Keep the default.auto_run_on_restart-enable(default) means it re-runs the sync automatically the next time ComfyUI restarts, but only when it detects a new commit. You still have to run the node once after flipping this for it to take effect.
It returns two strings: Status (a human-readable "success/fail + where it unzipped" message) and Generated_Path (the path it wrote to, which is empty unless you used local_path). Wire them into a Show Text node to read them on the canvas.
Before you run it
The node needs a target path, and it gets that from a config file written by the pack's Create SD-PPP installation directory node. Run that once first, pointing base_directory at your Photoshop install (e.g. C:/Program Files/Adobe/Adobe Photoshop 2025), or CCXManager will error out telling you exactly that. Requirements from the README: Photoshop ≥ 24, the sd-ppp node installed on the ComfyUI side, a proxy that can reach gitee/GitHub, and - importantly - local ComfyUI only. Cloud instances are out.
Install and gotchas
Install via ComfyUI Manager (search "ComfyUI-CCXManager") or:
cd ComfyUI/custom_nodes
git clone https://github.com/WWWEN8/ComfyUI-CCXManager.git
Then restart. It only depends on requests, so no heavy installs.
The big warning, straight from the author: updates clear the contents of the target folder. This node deletes everything in the Plug-ins folder before unzipping, so never point it at a random directory or you'll lose files. Other things that bite: if your proxy is down, the GitHub commit check quietly fails and nothing updates (that's the local_path fallback's moment); if the pack itself updates and the node errors, the README says to reconfigure its inputs to match the new version. And if you switch Photoshop install paths, re-run the directory node - the old path is baked into the config.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| source_type | COMBO | url | 2 options: local_path, url |
| source_path | STRING | https://gitee.com/zombieyang/sd-ppp/raw/main/static/sd-ppp2_PS.ccx | — |
| github_repo_url | STRING | https://github.com/zombieyang/sd-ppp.git | — |
| auto_run_on_restart | COMBO | enable | 2 options: enable, disable |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| Status | STRING | — |
| Generated_Path | STRING | — |