List Region Masks
List Region Masks
- regions
- masks
This is the debugging node for regional prompting. Once you've stacked a few Define Region nodes into a region list, you can't actually see what you built - the list is an opaque data blob flowing between nodes. List Region Masks cracks it open and hands you every region's mask as an image you can preview. If your two-character composition is coming out wrong and you can't tell whether the fault is your masks or your prompts, this is how you find out.
Regional prompting, as a reminder, is the standing answer to attribute bleeding - two subjects in one prompt trading hair color, clothing, and pose because conditioning applies to the whole canvas. Acly's region nodes solve it with attention masking, where each region's prompt applies to a masked area. The catch is that everything happens inside the model patch, invisibly. When a region lands in the wrong spot, or your background mask isn't covering what you thought it was, you're guessing. List Region Masks removes the guessing.
The mechanism is dead simple: it takes the assembled region list and outputs all the masks it contains, including the computed background mask. That last part is the quietly useful bit. The Background Region node doesn't take a mask - it auto-derives one from everything the other regions don't cover. That derived mask is normally hidden, and it's exactly the thing you'd want to reuse elsewhere (say, to inpaint or grade the background separately). List Region Masks is the only way to get your hands on it.
Inputs and outputs are as minimal as it gets:
- regions (Regions) - the list you built with Background Region and Define Region. Wire the output of your last region node in.
- masks (MASK) - every region's mask, out. Because a MASK output can carry a batch, you'll typically drop this into a Preview Image (via a mask-to-image convert) to eyeball all of them at once, or route a specific one downstream.
That's the whole node. There are no settings to tune - it's an inspection tap, not a transform. You splice it off your region chain, look, and either fix your masks or move on. It sits alongside your real pipeline (Background Region → Define Region → … → Regions Attention Mask → sampler) rather than in the middle of it.
Installing it rides with the pack. Search "ComfyUI Nodes for External Tooling" in ComfyUI Manager, or cd custom_nodes && git clone https://github.com/Acly/comfyui-tooling-nodes.git from your ComfyUI directory, then restart. No dependencies, no model downloads - this whole region family is pure logic and model patching.
Troubleshooting is mostly "read what it shows you." If a preview comes back empty or all-black, your region list is probably empty or malformed upstream - check that you actually started the chain with Background Region or a Define Region and threaded the regions port through each node. If a mask looks the wrong size, remember the region masks must match either the image or the latent (8× smaller); this node will faithfully show you a mismatched mask, which is the point - better to catch it here than to stare at a bad generation.
Honestly, for a beginner this node is more useful than it looks. Regional prompting has a reputation for being fiddly precisely because the failure modes are invisible, and the reusable-background-mask trick alone earns its place. It's also worth knowing the wider context: this pack is the ComfyUI backend behind Acly's Krita AI Diffusion plugin, where you paint regions on a canvas instead of wiring masks. If you're building the graph by hand, this is your window into what that paint interface is actually generating under the hood.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| regions | Regions | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| masks | MASK | — |