Eric Qwen Layer Describe (Vision)
Name your Qwen layers like a human instead of Layer_3
- layers
- vision_model
- layer_names
- layer_descriptions
"Layer_3" tells you nothing when you're reopening a PSD three weeks later. EricQwenLayerDescribe exists to give every layer a name that means something - "Aged_paper_background" instead of "Element_2" - by running each layer through a vision model.
How it works
Feed it the layers IMAGE batch from a Decompose (or Load) node. If you've wired in a vision_model (the node expects the VISION_MODEL type - a vision-language model provider from another pack), each layer gets described individually using your prompt_template. The default template asks for a 2–4 word name focused on the main subject, which is about right for layer naming.
No vision model attached? It still works, just less smartly: it falls back to analyzing each layer's content heuristically - alpha coverage, region analysis - and generates names from that. The quality gap is real, but the node never hard-fails.
Three output styles via name_style:
- short: first few words, cleaned into an underscore name like
White_flower_with_green_leaves. - descriptive: a fuller sentence describing the layer.
- numbered:
Name_01style, useful when you want consistent filenames.
The prefix field stamps a string onto every name, which is handy for keeping layers grouped in a PSD.
What comes out and where it goes
Two outputs: layer_names and layer_descriptions, both STRINGs, one name per line. That's the exact format the pack's Layer Save node expects in its layer_names input - so the loop closes: Decompose → Describe → Save, and your PSD ships with real names instead of auto-generated placeholders.
You can also use the two outputs separately: pipe layer_descriptions into a caption workflow, or merge names with the pack's String Join node if you're assembling them from multiple sources.
A couple of things to know. The per-layer vision pass costs time - for a 6-layer batch you're running the vision model six times, so it's slower than the coverage-based auto-naming on the Save node. And since the VISION_MODEL slot is a custom type, you need a provider pack installed that actually emits it; without one, you're on the heuristic fallback and the prompt_template is mostly ignored. Install this pack via ComfyUI Manager (search "Eric Qwen") or clone the repo into custom_nodes - no model download for the node itself.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| layers | IMAGE | — | |
| prompt_template | STRING | Describe this image layer in 2-4 words for use as a layer name. Focus on the main subject or content visible. Be concise. | Prompt template for the vision model |
| name_style | COMBO | short | short=2-3 words, descriptive=full sentence, numbered=Name_01 style |
| vision_modelopt | VISION_MODEL | — | |
| prefixopt | STRING | Prefix for each layer name |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| layer_names | STRING | — |
| layer_descriptions | STRING | — |