SeeThrough Save PSD
The Node That Gets You a Photoshop File Out of Your Decomposition
- parts
- info_file
This is the payoff node. Everything before it - the loaders, the layer generation, the depth, the splitting - exists so that SeeThrough Save PSD can hand you a layered PSD you can drag into Photoshop, Krita, or (if that's your endgame) a Live2D rigging session. It's an output node, it does no AI work, and it's the thing people actually mean when they say "I got a 23-layer PSD out of See-through."
How it works. Two halves, one Python and one browser. The Python half writes every decomposed part to ComfyUI/output/ as its own RGBA PNG (each with a matching *_depth.png if the depth map made it through), plus a layers.json that records each layer's name, canvas position, and depth_median - that last value is what determines stacking order. Then it drops a tiny pointer file (seethrough_psd_info.log) into the output folder. The browser half is where the PSD itself gets built: a bundled JS extension (using ag-psd, a pure-JavaScript PSD library shipped with the pack) adds Download PSD and Download Depth PSD buttons to the node. Click one, the browser reads the pointer file, fetches the JSON and the layer PNGs, and assembles the PSD locally in your browser. No Python PSD library, no extra dependency - which is a genuinely nice design, and why the PSD button keeps working even when the node graph itself is CPU-bound.
The inputs:
parts- thepartsoutput from SeeThrough Post Process. This is the only data source; it must be split/depth-ordered parts, not raw layers.filename_prefix- defaultseethrough. Prepended to every PNG, depth map, and the JSON. Set it to something meaningful per character or you'll be staring at a folder full ofseethrough_20260825_...files wondering which run was which.
Output: info_file (type STRING) - the path to the layers.json metadata in your output folder. It's a bookkeeping return, not something you wire into other nodes; the real artifact is the files on disk and the buttons on the node.
Using it. Run the workflow once (see the SeeThrough Generate Layers article for the graph: Loaders → Generate Layers → Generate Depth → Post Process → Save PSD). Let it finish - the run isn't done until the output folder stops growing - then click Download PSD. If you only care about the PNG layers (e.g. you're compositing in a game engine or Blender), skip the button entirely and grab the PNGs straight from ComfyUI/output/. The Download Depth PSD button produces a separate PSD where the layer content is replaced with depth maps - that's your parallax/3D asset, and honestly the easiest way to get a depth stack without writing code.
Installing. Part of the ComfyUI-See-through pack: ComfyUI Manager (search "See-through") or clone into custom_nodes and pip install -r requirements.txt. The PSD buttons come from the pack's web/ directory and appear automatically after restart - no Python PSD dependency needed.
Where people get burned: the single most common stumble is clicking Download PSD before the run has finished writing the pointer file, which yields a "failed to load" toast. Wait for the run to complete. Also, the PSD is assembled in-browser, so extremely large 2048-resolution runs can make the browser churn for a moment - that's normal. And the depth PNGs only appear if a depth map survived for that part; parts that PostProcess couldn't segment (the "hair kept as-is" case) come through without one.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| parts | SEETHROUGH_PARTS | — | |
| filename_prefix | STRING | seethrough | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| info_file | STRING | — |