Split Masks (Nukun)
Split masks without the conditioning, for when that's all you need
- mask_1
- mask_2
- mask_3
The simplest node in the regional family, and that's its whole appeal. Split Masks (Nukun) takes a width, height, and an orientation, and builds two or three split masks - nothing else. No conditioning, no encoding, no model patching. You get mask_1, mask_2, mask_3 and you wire them into whatever consumes masks in your own graph: RES4LYF regional conditioning, native ConditioningSetMask chains, or a custom workflow that wants raw geometry.
You'll see the same split geometry in the conditioning nodes of this pack, but those bundle mask-plus-apply. This one exists for the case where you already have your conditioning handled and just need the masks - and, honestly, for the case where you want to see the masks before committing to a regional workflow at all. Preview these, decide the layout is right, then rebuild with the bundled version.
How it works
Inputs: width, height, region_count (2 or 3), orientation (horizontal = left/right split, vertical = top/bottom), split_1 (default 0.5), split_2 (default 0.67, only used at 3 regions), and overlap (0–0.25). At region_count 2, split_2 is ignored and mask_3 is an empty mask.
overlap is the one input worth spending time on. At 0 the bands meet at a hard line; raise it to 0.1–0.2 and neighboring regions expand across the boundary with a soft blend. If you're feeding these to a ConditioningSetMask-style consumer, hard edges can leave a visible seam in the output - a small overlap usually hides it. The masks are pure tensors, so previewing them with a standard mask-preview node is instant; there's no reason not to look before you wire anything downstream.
Installing it
Same pack, standard install:
cd ComfyUI/custom_nodes
git clone https://github.com/OnekoSL/Nukun_ComfyUI_Nodes.git
Restart ComfyUI, or use Manager (search "Nukun"). No dependencies - it's a handful of tensor operations, which is exactly why it behaves predictably.
Common issues
The orientation naming bites everyone once: horizontal produces a vertical boundary line (left/right regions), vertical produces a horizontal boundary (top/bottom). If your split looks flipped, that's it. And remember what this node does not do: it won't apply the masks to anything, and it won't tell you which prompt belongs to which region. If you connect masks and see an unchanged image, that's expected - the masks are just inputs to a consumer you need to wire yourself. The bundled Native Regional Split Conditioning is the version that does the whole job in one step; reach for it if this feels like too much wiring.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| width | INT | 10248–16384 | — |
| height | INT | 10248–16384 | — |
| region_count | INT | 22–3 | — |
| orientation | COMBO | 2 options: horizontal, vertical | |
| split_1 | FLOAT | 0.500.01–0.99 | — |
| split_2 | FLOAT | 0.670.01–0.99 | — |
| overlap | FLOAT | 0.000–0.25 | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| mask_1 | MASK | — |
| mask_2 | MASK | — |
| mask_3 | MASK | — |