Nodes/Steaked-nodes/Regional Prompts (Latent)
ComfyUI Node

Regional Prompts (Latent)

The masked-conditioning approach with sharper boundaries

By StealthNinja1O1·Created 11 months ago·Updated 5 months ago· 0
Regional Prompts (Latent)
  • clip
  • conditioning
◄base_prompt►
◄width1024►
◄height1024►
◄prompt_1►
◄prompt_2►
◄prompt_3►
◄prompt_4►

The other half of the Steaked-nodes regional prompt family, and the one that plays it straight. Where the Attention variant reaches into the model's cross-attention, RegionalPromptsLatent uses ComfyUI's boring, well-trodden machinery: it encodes each regional prompt separately, builds a mask for its box, and attaches that mask to the conditioning - the same mechanism a ConditioningSetMask node uses. The sampler then just applies each masked conditioning inside its region. No patches, no hooks, nothing exotic to break.

That difference is what you're choosing between. Latent masking gives you the cleanest isolation: each region's prompt stays in its box, because the mask literally carves the conditioning. The price is the thing everyone who uses masked conditioning learns the hard way - visible seams at region boundaries. The Attention variant blends smoothly but bleeds a little; this one holds the line but shows it. It's also the one to reach for when the attention-patch path isn't cooperating with your model or your ComfyUI version.

What you set

Identical surface to its sibling:

  • base_prompt - the everywhere prompt, and it's prepended to each region's prompt as the compositional baseline.
  • prompt_1 through prompt_4 - per-region prompts, empty ones skipped.
  • width / height - canvas size, matched to your Empty Latent.
  • clip - from your checkpoint.

The interactive canvas is the same: drag up to four boxes, resize them, and each has weight, start, and end controls. The weight scales how strongly that region's conditioning pushes; the start/end timesteps (0–1) gate when a region is active - 0.0 → 0.3 means "compose this region in the first 30% of steps, then let the whole canvas harmonize." Overlapping boxes are normalized automatically, and areas not covered by any box fall back to the base prompt.

One conditioning output, into a KSampler as your positive.

Picking between the variants

The pack's README is explicit: for most use cases the Attention version is recommended, because the seamless blend looks better out of the box. Latent is your fallback and your control - when bleeding between regions is the bigger sin than a seam, or when you want the standard, predictable masked-conditioning path. Both need the same wiring, so switching between them is a one-node swap. Test both on the same composition once and you'll know which your content prefers.

Install

Part of Steaked-nodes:

cd ComfyUI/custom_nodes
git clone https://github.com/StealthNinja1O1/Steaked-nodes

Restart, or ComfyUI Manager → "Steaked-nodes". No extra dependencies or model files.

Common issues

Seams at box boundaries are the feature, not a bug - mitigate with overlapping boxes (they're normalized) or by letting regions share a sliver so the mask softens. If a region is fully ignored, its mask may be landing outside the canvas or its prompt may be empty; both are silently skipped. And because this leans on ComfyUI's standard conditioning-with-mask path, a "wrong" result usually traces back to your width/height not matching the latent - keep them in sync.

CategorySteaked-nodes/prompting

Inputs (8)

NameTypeDefaultDescription
base_promptSTRING—
clipCLIP—
widthINT102464–8192—
heightINT102464–8192—
prompt_1optSTRING—
prompt_2optSTRING—
prompt_3optSTRING—
prompt_4optSTRING—

Outputs (1)

NameTypeDescription
conditioningCONDITIONING—