Nodes/ComfyUI_omost/Omost Layout Cond (ComfyUI-Area)
ComfyUI Node

Omost Layout Cond (ComfyUI-Area)

Regional prompting, the ComfyUI-native way

By huchenlei·Created 2 years ago·Updated about a year ago· 445
Omost Layout Cond (ComfyUI-Area)
  • canvas_conds
  • clip
  • positive
  • CONDITIONING
  • MASK
global_strength0.20
region_strength0.80
overlap_methodaverage

This is the node that actually turns an Omost layout into diffusion conditions, and it's the one you'll reach for first because it needs nothing beyond what a stock ComfyUI already has. Omost Layout Cond (ComfyUI-Area) implements what lllyasviel's Omost README calls Method 2 - attention decomposition via ComfyUI's built-in area conditioning. No extra pack, no extra models, just a CLIP and the canvas conditions.

Inputs that matter:

  • canvas_conds (OMOST_CANVAS_CONDITIONING) - the layout from Omost LLM Chat, the JSON loader, or the Python loader. The first entry is the global description, the rest are regions.
  • clip - your model's CLIP, same one the positive prompt encoding uses.
  • global_strength (default 0.2) - how strongly the global description conditions the whole canvas.
  • region_strength (default 0.8) - how strongly each region's own prompt conditions its box.
  • overlap_method - average (default) blends overlapping regions; overlay lets the top layer overwrite what's beneath.
  • positive (optional) - wire in your own hand-written conditioning and it gets appended to the output, so Omost and your prompt can coexist.

Mechanically, for each region it encodes the prompts with the greedy-bag token batching (the smart encoding from the original repo that dodges CLIP's truncation), then applies a binary mask through ComfyUI's ConditioningSetMask using the region's rect in the 90×90 canvas. The global condition gets global_strength; regions get region_strength.

Two outputs. CONDITIONING goes into your KSampler's positive input. MASK is a stacked tensor of every region mask - the author added it "in case it's needed for debugging or the user might want to apply extra condition such as ControlNet/IPAdapter to specified region," so it's there for the advanced wiring where you want a ControlNet to fire only inside one box.

Where people get burned: the regional-prompting tradeoff that never goes away. Masking cross-attention sets loose bounds - attention is masked, but nothing forces the model to actually activate inside the box. It's the same tradeoff every regional-prompting guide lands on: hard masks through the whole sample give you the collaged, seamed look. ComfyUI-Area is the cheap built-in option and it leaks a bit around region edges; that's what the strength knobs are for. If a region feels weak, raise region_strength before you go hunting for another backend. If the output looks like cut-out stickers, back global_strength down. This is the node to start with - the Dense Diffusion variant is stronger at holding subjects in their boxes but needs a companion pack, whereas this one just works.

Categoryomost

Inputs (6)

NameTypeDefaultDescription
canvas_condsOMOST_CANVAS_CONDITIONING
clipCLIP
global_strengthFLOAT0.200–1
region_strengthFLOAT0.800–1
overlap_methodCOMBOaverage2 options: overlay, average
positiveoptCONDITIONING

Outputs (2)

NameTypeDescription
CONDITIONINGCONDITIONING
MASKMASK