ComfyUI Node

Layer Pack

The boring node that makes layered saves painless

By connerkward·Created 6 months ago·Updated 2 months ago· 1
Layer Pack
  • image_1
  • image_2
  • image_3
  • image_4
  • image_5
  • image_6
  • image_7
  • image_8
  • image_9
  • image_10
  • image_11
  • image_12
  • image_13
  • image_14
  • image_15
  • image_16
  • layers
  • layer_names
name_1layer-1
name_2layer-2
name_3layer-3
name_4layer-4
name_5layer-5
name_6layer-6
name_7layer-7
name_8layer-8
name_9layer-9
name_10layer-10
name_11layer-11
name_12layer-12
name_13layer-13
name_14layer-14
name_15layer-15
name_16layer-16

Layer Pack is the least exciting node in the Save Image (XMP) pack, and the one you'll reach for every time you actually use the pack's headline feature. It generates nothing. It saves nothing. Its entire job is to take up to sixteen images with names and hand back two aligned lists - a layers list and a layer_names list - because that's exactly the shape Save Layered TIFF (XMP) wants its inputs in.

You can build those lists by hand, and you'll regret it the moment the naming drifts out of sync and Photoshop opens a TIFF full of generic layer-01, layer-02 pages. Layer Pack keeps the pairing automatic: whatever image slots you fill get names, in order, and empty slots are skipped entirely.

How it works

Sixteen optional inputs, image_1 through image_16, each with a matching name_1 through name_16 that defaults to "layer-1" through "layer-16". Whatever you actually connect gets collected; unconnected slots are skipped, so the lists stay compact with no gap-filling. Both outputs come out as lists - that's the part to remember, they're not single tensors.

The inputs that matter are just image_N and name_N. If you don't care about names, leave the defaults - but since the name is what shows up in the editor's Layers panel, spending ten seconds naming the four layers you actually use makes the final TIFF dramatically more pleasant to open. The outputs are layers (IMAGE list) and layer_names (STRING list), wired straight into the matching inputs of Save Layered TIFF (XMP).

Honestly, that's the whole node. It's small because it should be - it's the assembly step for the pack's real feature, and keeping it separate means you can organize layers without committing to the TIFF save.

Installing it

It ships in the same pack as everything else, so there's nothing extra to install: ComfyUI Manager → search "Save Image (XMP)", or

cd ComfyUI/custom_nodes
git clone https://github.com/connerkward/comfyui-save-image-xmp.git

then restart, and it appears in the image category. It needs no extra dependencies - it's pure graph plumbing.

Common issues

The one real trap is wiring it to the wrong kind of slot. Layer Pack's outputs are lists, so they feed list-expecting inputs - Save Layered TIFF (XMP)'s layers and layer_names - not a plain IMAGE input. Connect layers somewhere expecting a single image and you'll get a type mismatch. Names don't have to be unique, but duplicates make a multi-page TIFF annoying to read in an editor, so keep them descriptive.

Categoryimage

Inputs (32)

NameTypeDefaultDescription
image_1optIMAGE
name_1optSTRINGlayer-1
image_2optIMAGE
name_2optSTRINGlayer-2
image_3optIMAGE
name_3optSTRINGlayer-3
image_4optIMAGE
name_4optSTRINGlayer-4
image_5optIMAGE
name_5optSTRINGlayer-5
image_6optIMAGE
name_6optSTRINGlayer-6
image_7optIMAGE
name_7optSTRINGlayer-7
image_8optIMAGE
name_8optSTRINGlayer-8
image_9optIMAGE
name_9optSTRINGlayer-9
image_10optIMAGE
name_10optSTRINGlayer-10
image_11optIMAGE
name_11optSTRINGlayer-11
image_12optIMAGE
name_12optSTRINGlayer-12
image_13optIMAGE
name_13optSTRINGlayer-13
image_14optIMAGE
name_14optSTRINGlayer-14
image_15optIMAGE
name_15optSTRINGlayer-15
image_16optIMAGE
name_16optSTRINGlayer-16

Outputs (2)

NameTypeDescription
layersIMAGE
layer_namesSTRING