Icy ConditioningSetArea
Different prompt for the left half of the image — this node is how
- conditioning
- CONDITIONING
IcyConditioningSetArea is ComfyUI's ConditioningSetArea renamed by the IcyHider privacy pack - it's the same class with an Icy prefix, zero behavior changes. So everything you read about the core node applies here. The real question is why you'd reach for it at all.
What it does
Normally a prompt steers the whole image. ConditioningSetArea lets you pin a piece of conditioning to a rectangular region of the canvas, so one prompt can describe the left side while a different prompt handles the right. It's the tool for "character on the left, background on the right," for multi-subject scenes, and for outpainting setups where you want the new canvas region described separately from the original.
Mechanically it's simple: the node stamps a rectangle - width, height, x, y - onto the conditioning and tags it with a strength. At sampling time, that region of the latent attends to that prompt's embeddings, and the rest of the image is steered by whatever other conditioning is combined in. It's attention masking, not cropping.
The inputs:
conditioning- usually the positive output of a CLIPTextEncode.width/height- the size of the region, in image pixels (the node converts to the 8× latent grid internally, but you type what you'd type into a resize node).x/y- top-left corner of the region, again in pixels. Step size is 8, so values snap to the latent grid.strength- how hard that region's conditioning bites, default 1.0.
Output is a single CONDITIONING that you'd typically merge with other regions via a ConditioningCombine (or ConditioningConcat) before the sampler.
The pattern that makes it sing
Region prompting is a stacking game. Encode a separate prompt per region, run each through its own ConditioningSetArea with the matching rectangle, then combine them. Two regions is the common case; four is where it starts getting fiddly. Keep region edges overlapping by a few pixels or add a feather - the combined conditioning blends better when the regions don't butt up against each other with a hard seam.
Where people get burned: mixing up pixels and the latent grid. If you type values that don't divide by 8 the node snaps them, which is usually fine - but if you're computing coordinates by hand on a 512×768 canvas and the numbers drift, you'll get an invisible slice where the other prompt bleeds in. Also, x/y is measured from the top-left, which trips up people who came from coordinate systems that start bottom-left.
Install and the IcyHider side
Install the pack once and you get this node: ComfyUI Manager → search "IcyHider" → Install, then restart ComfyUI. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/icekiub-ai/ComfyUI-IcyHider.git
Restart, and the Icy nodes appear under IcyHider Comfy Core. There are no Python dependencies (the pack's pyproject.toml is empty of deps) and no model downloads - the whole pack is a clone-and-relabel script plus a JavaScript preview-hider. This node outputs conditioning, so it has no preview for IcyHider to hide; use the core ConditioningSetArea if you want zero extra pixels on your graph. It's genuinely the same node either way.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| conditioning | CONDITIONING | — | |
| width | INT | 6464–16384 | — |
| height | INT | 6464–16384 | — |
| x | INT | 00–16384 | — |
| y | INT | 00–16384 | — |
| strength | FLOAT | 1.000–10 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CONDITIONING | CONDITIONING | — |