Comflowy Omost To Conditioning
Where a layout becomes an actual image
- canvas_conds
- clip
- CONDITIONING
This is the node that makes Omost actually work in ComfyUI. Everything upstream - the LLM that drafts the canvas, the load/preview nodes that let you inspect it - is preparation. Comflowy Omost To Conditioning is the moment the layout becomes usable: it takes an OMOST_CANVAS_CONDITIONING object and a CLIP, and produces real CONDITIONING that you feed into a KSampler alongside your latent and sampler settings. The node's own description is a one-liner that says it all: "Apply Omost layout with ComfyUI's area condition system."
How does it work? ComfyUI has a native "area conditioning" mechanism - you can attach a mask to a conditioning and the sampler only generates that region strongly. Omost exploits it ruthlessly: each local region becomes its own conditioning with its own text and its own area mask, the global description becomes a full-frame conditioning, and they're all blended together. The node borrows Omost's greedy prompt-encoding trick too, which packs the sub-prompts into efficient token batches instead of naive concatenation. The result: you can literally say "a red-haired woman on the left, a city on the right" and get an image where those elements stay in their lanes.
Inputs that matter
- canvas_conds (required) - the layout from Comflowy Omost LLM or the Load Canvas nodes.
- clip (required) - any loaded CLIP (SDXL or Flux, depending on your checkpoint).
- global_strength - default 0.2. How strongly the global scene description influences the image. Low keeps regions dominant; raise it if the overall atmosphere is missing.
- region_strength - default 0.8. How hard each regional prompt holds its area. This is the "does the woman actually look like the description" knob.
- overlap_method -
overlayoraverage(defaultaverage). What happens where regions overlap:overlaylets the top layer win;averageblends both.averageis the safe default;overlayis for deliberate layering.
Output: a single CONDITIONING, ready for the positive input of a KSampler.
Installing and the gotchas
Install Comflowy's Custom Nodes via ComfyUI Manager (search "Comflowy") or git clone https://github.com/6174/comflowy-nodes into custom_nodes, restart. No API key - the conditioning is computed entirely locally from your CLIP.
The failure modes are all about setup, not bugs:
- Wrong CLIP for your checkpoint. This is area conditioning built on your actual text encoder. Feed it the wrong model's CLIP and the layout lands but the semantics drift. Match the CLIP to the checkpoint.
- The 90×90 canvas grid. Masks are computed on a fixed 90×90 grid, so very small regions can end up coarse. Keep regions reasonably sized; tiny boxes produce mushy areas.
- Global vs. region balance. If the output ignores the layout entirely,
global_strengthis probably too high and it's drowning the regions. If the image looks like disconnected cutouts,global_strengthis too low. The defaults (0.2 / 0.8) are a good starting line, not a finish line. - Preview first. Wire Comflowy Omost Preview in front of this node once; the layout you think you made is often not the layout you did make.
This is the node that turns "Omost sounds cool" into "Omost just composed this image exactly how I asked." Everything else in the pack's Omost family is scaffolding; this is the load-bearing wall.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| canvas_conds | OMOST_CANVAS_CONDITIONING | — | |
| clip | CLIP | — | |
| global_strength | FLOAT | 0.200–1 | — |
| region_strength | FLOAT | 0.800–1 | — |
| overlap_method | COMBO | average | 2 options: overlay, average |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CONDITIONING | CONDITIONING | — |