Nodes/Nukun_ComfyUI_Nodes/DenseDiffusion Split Apply (Nukun)
ComfyUI Node

DenseDiffusion Split Apply (Nukun)

Full-height regional bands with DenseDiffusion, one node instead of five

By OnekoSL·Created 3 months ago·Updated 11 days ago· 1
DenseDiffusion Split Apply (Nukun)
  • model
  • conditioning_1
  • conditioning_2
  • conditioning_3
  • model
  • conditioning
  • mask_1
  • mask_2
  • mask_3
width1024
height1024
region_count2
orientation
split_10.50
split_20.67
overlap0.00
strength_11.00
strength_21.00
strength_31.00

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 optional conditioning_3) - the per-band prompts, pre-encoded.
  • width / height - canvas size.
  • region_count - 2 or 3. At 2, conditioning_3 and split_2 are ignored.
  • orientation - horizontal splits the image vertically into left/right bands; vertical splits it into top/bottom bands. (The naming is about the dividing line, not the bands.)
  • split_1 (default 0.5) and split_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_1mask_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.

CategoryNukun/Conditioning

Inputs (14)

NameTypeDefaultDescription
modelMODEL
conditioning_1CONDITIONING
conditioning_2CONDITIONING
widthINT10248–16384
heightINT10248–16384
region_countINT22–3
orientationCOMBO2 options: horizontal, vertical
split_1FLOAT0.500.01–0.99
split_2FLOAT0.670.01–0.99
overlapFLOAT0.000–0.25
strength_1FLOAT1.000–2
strength_2FLOAT1.000–2
strength_3FLOAT1.000–2
conditioning_3optCONDITIONING

Outputs (5)

NameTypeDescription
modelMODEL
conditioningCONDITIONING
mask_1MASK
mask_2MASK
mask_3MASK