Native Regional Split Conditioning (Nukun)
Clean split-screen conditioning, no model patching required
- conditioning_1
- conditioning_2
- conditioning_3
- conditioning
- mask_1
- mask_2
- mask_3
The sibling to Native Regional Rect Conditioning (Nukun) - same idea, simpler geometry. Instead of drawing free rectangles, this node slices the frame into two or three horizontal or vertical bands and applies a different conditioning to each. If "split the image down the middle, left side one thing, right side another" is your actual need, this is the least-friction way to get it in ComfyUI core.
Regional conditioning on booru-trained models (Pony v6, Illustrious) is a mature technique, and its usual setup cost is a pile of extra nodes. This node collapses that to one: you give it encoded conditionings, it gives you one combined conditioning for the positive path. And because it's built entirely on ComfyUI's core conditioning metadata rather than a model patch, there's nothing to go stale when your checkpoint changes.
How it works
Feed in conditioning_1 and conditioning_2 (and conditioning_3 for three regions), set an orientation - horizontal splits left/right, vertical splits top/bottom - and the node builds the masks for you. split_1 is where the first boundary goes (0.01–0.99, default 0.5), split_2 where the second goes (default 0.67, only used for three regions). Each region's conditioning gets its own strength_1..3 as mask strength, and everything merges into a single output.
The overlap input is the interesting one. At 0, the bands meet at a hard line. Bump it to 0.1–0.2 and neighboring regions expand across the boundary with a soft blend, which is how you stop a visible seam down the middle of a Pony image. Start with a small overlap and check the mask_1..3 previews - hard cuts look fine in the mask view and terrible in the output, so preview before you queue a batch.
set_cond_area behaves exactly like the rect variant: default conditions the full masked area, mask bounds tightens to the bounding box. For split regions the default usually wins - there's no wasted space in a full-band mask anyway.
Inputs and outputs
Required: conditioning_1, conditioning_2, width, height, region_count (2 or 3), orientation, split_1, split_2, the three strengths, set_cond_area. conditioning_3 is optional and only consumed when region_count is 3 - leave it disconnected at 3 and the node throws a clear error telling you so. Outputs: the combined conditioning plus mask_1..3 for previews.
Installing and using it
Same pack, same install:
cd ComfyUI/custom_nodes
git clone https://github.com/OnekoSL/Nukun_ComfyUI_Nodes.git
then restart, or use ComfyUI Manager (search "Nukun"). No extra dependencies - the "Native" in the name is the guarantee that you're not pulling in DenseDiffusion or a regional patcher. If you want the stronger DenseDiffusion behavior, the pack ships NukunDenseDiffusionSplitApply, which needs comfyui_densediffusion; but try this node first, because for most split-screen work the core approach is enough and it keeps your graph portable.
Common issues
The classic gotcha is orientation intuition: horizontal is a left/right split, vertical is a top/bottom split - the terms describe the boundary line's orientation, and everyone flips them once. And remember region order matters when bands overlap: with overlap enabled, later regions draw on top. If one region is eating its neighbor, reduce overlap or swap the inputs. Three-region mode with the default split_2 at 0.67 gives unequal thirds (50/17/33); that's deliberate, so don't assume it's broken - set the splits where you want them.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| conditioning_1 | CONDITIONING | — | |
| conditioning_2 | CONDITIONING | — | |
| 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 | — |
| strength_1 | FLOAT | 1.000–10 | — |
| strength_2 | FLOAT | 1.000–10 | — |
| strength_3 | FLOAT | 1.000–10 | — |
| set_cond_area | COMBO | 2 options: default, mask bounds | |
| conditioning_3opt | CONDITIONING | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| conditioning | CONDITIONING | — |
| mask_1 | MASK | — |
| mask_2 | MASK | — |
| mask_3 | MASK | — |