DuckAttention Couple Regions
Bundle up to eleven regions into one attention-couple feed
- region_1
- region_2
- region_3
- region_4
- region_5
- region_6
- region_7
- region_8
- region_9
- region_10
- region_11
- regions
- regions
Duck Attention Couple Regions is the collector node for the pack's attention-couple system. It takes up to eleven individual region objects - the output of DuckAttentionCoupleRegion - and bundles them into a single regions output that DuckAttentionCouple can consume. It also accepts a ready-made list on its regions input and flattens everything together, which matters more than it sounds.
Here's the wrinkle the node exists to handle: DuckAttentionCouple can accept either one region or a list of them, but a single DuckAttentionCoupleRegion node and a whole pile of them look different to the couple node. This node normalizes that - it takes whatever mix of individual regions and region lists you throw at it, flattens the lists, and emits one clean regions list. You wire a stack of region nodes into region_1 through region_11, this bundles them, and the couple node gets a tidy list.
The inputs and output
- region_1 through region_11 - optional
ATTENTION_COUPLE_REGIONinputs, one per slot. Wire a region node into each. - regions - an optional
ATTENTION_COUPLE_REGIONinput that accepts an already-bundled list. - Output regions - the flattened bundle, wired into
DuckAttentionCouple.
Eleven slots is a lot, and honestly most attention-couple work lives at two to four regions plus a base prompt. The headroom is there for the occasional twelve-subject composition or for building reusable "scene kits" where a saved bundle gets re-fed.
Why the collector matters
Past a couple of regions, the graph gets unwieldy if each region has to be passed individually. This node turns N region wires into one, which is also how you compose reusable pieces: build a two-region bundle for "two characters" once, and re-wire it into different couple nodes. There's also a practical guardrail hidden in it - if you pass a single region object into the regions input where a list is expected, the node raises an assertion telling you exactly that, rather than silently misbehaving.
Install
Part of duckcomfy personal nodes. ComfyUI Manager → search "duckcomfy personal nodes", or:
cd ComfyUI/custom_nodes
git clone https://github.com/duckcomfy/duckcomfy_personal_nodes
Restart ComfyUI. No pip dependencies, no model downloads. The whole attention-couple family here is a GPL-3.0 port of the established cgem156/sd-forge-couple implementation, so the semantics match what people have been using since 2023.
Gotchas
Eleven empty slots is fine - unwired inputs are simply ignored, so you only fill what you need. The failure to watch for is the type mix: regions must be a list, and individual region nodes must go into the numbered slots. Push a single region object into the regions input and you'll get the assertion error; that's the node being helpful, not broken. And note the collector only bundles - the weight balancing, mask coverage, and canvas-size rules from the couple node still apply to everything you feed it.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| region_1opt | ATTENTION_COUPLE_REGION | — | |
| region_2opt | ATTENTION_COUPLE_REGION | — | |
| region_3opt | ATTENTION_COUPLE_REGION | — | |
| region_4opt | ATTENTION_COUPLE_REGION | — | |
| region_5opt | ATTENTION_COUPLE_REGION | — | |
| region_6opt | ATTENTION_COUPLE_REGION | — | |
| region_7opt | ATTENTION_COUPLE_REGION | — | |
| region_8opt | ATTENTION_COUPLE_REGION | — | |
| region_9opt | ATTENTION_COUPLE_REGION | — | |
| region_10opt | ATTENTION_COUPLE_REGION | — | |
| region_11opt | ATTENTION_COUPLE_REGION | — | |
| regionsopt | ATTENTION_COUPLE_REGION | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| regions | ATTENTION_COUPLE_REGION | — |