DenseDiffusion Split Apply (Nukun)
Full-height regional bands with DenseDiffusion, one node instead of five
- model
- conditioning_1
- conditioning_2
- conditioning_3
- model
- conditioning
- mask_1
- mask_2
- mask_3
The classic regional-prompting layout isn't a bunch of boxes - it's a split. Left band gets one prompt, right band gets another, full height, clean boundary. With DenseDiffusion, wiring that up by hand means a mask node, a DenseDiffusion Add Cond per region, and a DenseDiffusion Apply, all carefully matched. NukunDenseDiffusionSplitApply collapses it into a single node: set your split positions, connect your region conditionings, done.
It's the strip-layout sibling of the pack's DenseDiffusionRectApply. Rect is for freely placed boxes; this one is for full-height or full-width bands, which is honestly the layout people reach for first when separating two subjects.
What it wraps
One node that internally: builds 2 or 3 split masks from your parameters, runs a DenseDiffusion "Add Cond" per region, and applies DenseDiffusion. Inputs:
model- the base model.conditioning_1,conditioning_2(and optionalconditioning_3) - the per-band prompts, pre-encoded.width/height- canvas size.region_count- 2 or 3. At 2,conditioning_3andsplit_2are ignored.orientation-horizontalsplits the image vertically into left/right bands;verticalsplits it into top/bottom bands. (The naming is about the dividing line, not the bands.)split_1(default 0.5) andsplit_2(default 0.67) - where the boundaries sit, as fractions of the canvas.overlap- expands neighboring regions around the boundary (0–0.25) when you want a soft transition instead of a hard line.strength_1..3- per-region influence.
Outputs: the patched model for your sampler, the combined conditioning for the positive path, and mask_1–mask_3 for previewing where each band actually lands.
The thing people miss: region ordering
With a split, band order matters. Region 1 is the first band in the split direction, region 2 the next, region 3 the last - so conditioning_1 goes with the left (or top) band. Wire them in the visual order you see in the preview and you're fine; wire them scrambled and you'll wonder why your "girl on the left" prompt is driving the right side.
Installing it - needs the companion package
DenseDiffusion isn't bundled, so there's one extra install:
cd ComfyUI/custom_nodes
git clone https://github.com/OnekoSL/Nukun_ComfyUI_Nodes.git
cd ComfyUI/custom_nodes
git clone https://github.com/huchenlei/ComfyUI_densediffusion.git
Restart ComfyUI (or grab both via ComfyUI Manager - search "Nukun" and "densediffusion"). The rest of the pack runs fine without it; only the two DenseDiffusion nodes need the companion.
The honest comparison
If your regions are full-height or full-width strips, this is the simpler, faster node than the Rect version - two numbers to set, no coordinate fiddling. If your regions are true rectangles (a subject and a companion in the same horizontal band), you want the Rect node with its draggable editor instead. And one more consideration: DenseDiffusion's model patching is the heavier regional hammer. If your regions are simple and you don't need per-strength model control, the pack's core-only Native Regional Split Conditioning does the same split with no extra package at all. Split-apply earns its place when you want DenseDiffusion's regional strength behavior with a two-knob layout.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| 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–2 | — |
| strength_2 | FLOAT | 1.000–2 | — |
| strength_3 | FLOAT | 1.000–2 | — |
| conditioning_3opt | CONDITIONING | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| conditioning | CONDITIONING | — |
| mask_1 | MASK | — |
| mask_2 | MASK | — |
| mask_3 | MASK | — |