Tiled Attention Couple (Config)
The BREAK keyword is the whole trick
- shuffle
- config
If you only look at one node in this pack, make it this one. The main Tiled Attention Couple node does the heavy lifting, but this is where you actually do the thinking: define the tiles, pick the orientation, and write a prompt per region. The author calls it "(Config)" and the name undersells it - it's the entire authoring experience.
How the prompt syntax works
Prompts are split on the literal keyword BREAK. Everything before the first BREAK is the common prompt, applied to the whole image - this is where you put "2girls, side-by-side, masterpiece, best quality" so both subjects share the composition. Each block after a BREAK belongs to one tile, in order. The README's own example says it best:
2girls, side-by-side, masterpiece, best quality,
BREAK
takamachi nanoha, short twintails, red dress,
BREAK
fate testarossa, straight hair, blue dress,
With a 1,1 division and horizontal orientation, Nanoha gets the left tile and Fate gets the right. The syntax works identically in the negative box, in case a tile-specific negative is what's actually taming a region.
The inputs
division- a comma-separated string of relative tile sizes.1,1is two equal tiles;1,2makes the second tile twice the first;1,1,1is three equal. Default1,1.orientation-horizontalsplits side to side (left to right),verticalstacks top to bottom. Small trap: the default isvertical, but every example in the README useshorizontal, so check it before you wonder why your tiles are stacked. There's no "wrong" answer - tall banners like vertical, wide ones like horizontal.positive/negative- your prompts, multiline, and they support dynamic prompts ({a|b|c}syntax) if you use the wildcard-style packs.shuffle- optionalTILED_SHUFFLEinput from the Tiled Attention Couple (Shuffle) node. Wire it in and the tile prompts get shuffled by that seed on each run, which is how you get position variation across a batch without editing text.
Output is a single config (TILED_CONFIG), which plugs into the main node's config input - or into the Impact Pack Detailer variant if you're detailing faces afterward.
What's actually happening
The node doesn't encode anything yet. It parses your text, builds the tile geometry from division and orientation, and packages a TILED_CONFIG that carries the base prompt, the per-tile prompts, and the mask layout. The real encoding - running each prompt through the CLIP and setting per-region masks - happens downstream when the main node processes the config with your clip. So if you're debugging, remember this node is just the recipe.
One detail worth knowing: if your division says three tiles but you only write two BREAK blocks, the third tile quietly gets just the common prompt - no error, no warning, it's simply un-coubled. This is the most common "why is one region ignoring me" cause, and it's a 30-second fix.
Installing it
Part of the ComfyUI-TiledAttentionCouple pack, so it installs with everything else:
cd ComfyUI/custom_nodes
git clone https://github.com/Deathspike/ComfyUI-TiledAttentionCouple
Restart, or install via ComfyUI Manager by searching "Tiled Attention Couple". No extra dependencies, no model downloads - just this repo and a working ComfyUI.
Where people get burned
- More tiles than
BREAKs - extra regions fall back to the common prompt silently. Count your separators. - Forgetting
orientation- default is vertical; the README examples are all horizontal. - Trailing commas in
division-1,1,throws a parse error (could not convert string to float: '') rather than being ignored, which is how you learn that the string is split naively on commas. Keep it clean:1,1.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| division | STRING | 1,1 | — |
| orientation | COMBO | vertical | 2 options: horizontal, vertical |
| positive | STRING | — | |
| negative | STRING | — | |
| shuffleopt | TILED_SHUFFLE | An optional tile shuffle. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| config | TILED_CONFIG | — |