đź’€Prepack Cond Area
Five regional prompts in one node — say goodbye to ConditioningSetArea spaghetti
- conditioning_1
- conditioning_2
- conditioning_3
- conditioning_4
- conditioning_5
- conditioning
Regional prompting is the classic way to get "a forest on the left, a castle on the right" without hoping the model figures out composition on its own: you encode separate prompts and pin each one to a region of the latent. The standard ComfyUI recipe for that is a pile of ConditioningSetArea nodes feeding one ConditioningCombine, and it's ugly - every region means a new node, and every node means wires crossing the whole canvas. The đź’€Prepack Cond Area node collapses the entire thing into a single box.
It's one of the reasons the broader ComfyUI ecosystem keeps moving toward fewer, denser nodes for this kind of spatial control. ControlNet does the heavy lifting for where things go when you have an image to work from; regional conditioning is the no-image version, and this node is the ergonomic way to build it.
How it works
The node accepts up to five CONDITIONING inputs, plus an index that picks which one to modify. All the area geometry lives on the node itself as normalized 0.0–1.0 values - width, height, x, y are fractions of the latent, not pixels, which is why the defaults are 1.0 for size and 0.0 for position. There's also a strength that scales how hard the selected conditioning pushes inside its region (default 1.0, range 0–10).
Under the hood it does exactly what you'd have built by hand: applies ConditioningSetArea-style area settings to the input selected by index, and passes every other connected input through unchanged, then combines them all into one conditioning output. The values are the ones you'd enter on a ConditioningSetAreaPercentage node - the source is explicit that this is a front-end for that behavior, not a new sampling technique. Set index to 1 and adjust the geometry, and conditioning 1 gets pinned to that rectangle while 2–5 ride along untouched.
The inputs that matter:
conditioning_1(required) - your primary/background prompt.conditioning_2…conditioning_5(optional) - the regional prompts.index- which one gets the area applied. Everything else just combines in.width,height,x,y,strength- the region itself.
Output is a single conditioning wire straight into a KSampler's positive input.
The two gotchas
The area values are relative. A width of 0.5 and x of 0.5 puts the region in the right half of the image - if you were expecting pixel coordinates from the pixel-based ConditioningSetArea node, that's where things get confusing. Same settings behave differently depending on the latent's dimensions, so keep everything proportional.
The other trap: the region only constrains where the prompt is strongest - it doesn't crop or mask the final render. Your "castle on the right" conditioning will still leak influence across the whole image, just weaker. That's how regional conditioning works in every model family, and it's the reason people reach for it as a composition lever rather than a hard guarantee.
Installing it
It's part of the Prepack pack, so it installs with the whole thing:
cd ComfyUI/custom_nodes
git clone https://github.com/S4MUEL-404/ComfyUI-Prepack.git
pip install -r ComfyUI-Prepack/requirements.txt
Or just search "Prepack" in ComfyUI Manager. Dependencies are PyTorch, NumPy, and Pillow - already present in a stock install. Restart, then find it under đź’€Prepack. No models to download, no extra config.
If you connect a fifth conditioning and nothing appears to change, double-check index: it's a 1–5 selector, and whatever input you're editing is the one at that number, not necessarily the first wire you plugged in.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| conditioning_1 | CONDITIONING | Primary conditioning input | |
| index | INT | 11–5 | Select which conditioning to modify (1-5) |
| width | FLOAT | 1.000–1 | Width of the conditioning area (0.0 to 1.0) |
| height | FLOAT | 1.000–1 | Height of the conditioning area (0.0 to 1.0) |
| x | FLOAT | 0.000–1 | X position of the conditioning area (0.0 to 1.0) |
| y | FLOAT | 0.000–1 | Y position of the conditioning area (0.0 to 1.0) |
| strength | FLOAT | 1.000–10 | Strength of the conditioning effect |
| conditioning_2opt | CONDITIONING | Optional second conditioning | |
| conditioning_3opt | CONDITIONING | Optional third conditioning | |
| conditioning_4opt | CONDITIONING | Optional fourth conditioning | |
| conditioning_5opt | CONDITIONING | Optional fifth conditioning |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| conditioning | CONDITIONING | Combined conditioning with area settings applied to selected index |