Eric Qwen Layer Save (PSD/TIFF)
Get a real layered Photoshop file out of your Qwen decompose
- layers
- alpha_masks
- original_image
- saved_path
- layer_preview
Decomposing an image into RGBA layers is only half the job - the other half is getting those layers out of the graph and into a program that actually respects them. EricQwenLayerSave is that other half: it takes the layer batch from the Decompose node and writes a real PSD (or TIFF, PNG sequence, or ZIP) with named layers, blend modes, and opacities intact. This is where the "Photoshop will be useless" workflow stops being a demo.
What it writes
The default format is psd, written via the psd-tools library, with layer structure preserved. tiff gives you a multi-page TIFF, png_sequence drops individual PNGs into a folder, and zip bundles those PNGs with a manifest. On top of that, also_save_pngs (default true) writes individual layer PNGs alongside the main file, which is handy if you want to browse the layers without opening Photoshop.
Names come from three places, in order of preference: the layer_names field (one per line, overrides everything), the layer_info JSON from a Decompose node (names get extracted automatically), or auto_name_layers which invents names from alpha coverage - Background, Main_Subject, Element_1, that style. There are also per-line blend_modes and comma-separated opacities fields if you want to reconstruct the exact stack, plus include_composite (a flattened version) and include_manifest (a JSON sidecar describing the layers).
The full-resolution trick
The most useful input here is original_image. Wire your original input image into it and two things happen: layers get scaled to match the original resolution, and include_original_as_base (default true) tucks the pristine original in as the bottom PSD layer.
That unlocks a genuinely clever Photoshop workflow: Ctrl+Click a Qwen layer's thumbnail to load it as a selection, select the original image layer underneath, then Ctrl+J to lift those exact pixels onto a new layer. The Qwen layer becomes an intelligent mask - "these pixels are the flowers" - while you extract from the un-touched original. Full resolution, no model upscaling artifacts. This is the pack's best feature and it's easy to miss.
The inputs that matter
- filename_prefix: output name prefix, default
qwen_layers. - output_format:
psd,tiff,png_sequence, orzip. - layer_names / layer_info: how you control what the layers are called.
- original_image + include_original_as_base: the full-res trick above.
Outputs are saved_path (STRING, the file path) and layer_preview (IMAGE) so you can eyeball the stack before opening it elsewhere. It's an output node, so it runs last in the chain.
Gotchas
Files land in ComfyUI's output folder. PSD layer names are ASCII-only - the README notes that Unicode/CJK names get sanitized automatically, so don't fight it, just use English names. And watch the file size: 4+ full-res RGBA layers plus the flattened composite can make a chunky PSD. If the pack is new to you, install via ComfyUI Manager (search "Eric Qwen") or clone the repo into custom_nodes, then make sure psd-tools is installed - without it, PSD/TIFF writing quietly won't be available.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| layers | IMAGE | — | |
| filename_prefix | STRING | qwen_layers | Prefix for output filename |
| output_format | COMBO | psd | Output file format |
| also_save_pngs | BOOLEAN | true | Also save individual layer PNGs alongside PSD/TIFF |
| alpha_masksopt | MASK | — | |
| auto_name_layersopt | BOOLEAN | true | Auto-generate layer names based on content (Background, Subject, etc.) |
| layer_namesopt | STRING | Custom layer names, one per line. Overrides auto-naming. | |
| blend_modesopt | STRING | Blend modes, one per line (normal, multiply, screen, etc.) | |
| opacitiesopt | STRING | Comma-separated opacities (0-100) for each layer | |
| include_compositeopt | BOOLEAN | true | Include a flattened composite image |
| include_manifestopt | BOOLEAN | true | Include JSON manifest with layer metadata |
| subfolderopt | STRING | Optional subfolder within output directory | |
| layer_infoopt | STRING | JSON layer info from decompose node (names extracted automatically) | |
| original_imageopt | IMAGE | Original input image - layers will be scaled to match this size | |
| include_original_as_baseopt | BOOLEAN | true | Include original image as the bottom layer in PSD |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| saved_path | STRING | — |
| layer_preview | IMAGE | — |