Omost Load Canvas Conditioning
No LLM? No problem — load a layout as JSON and hand-edit it
- OMOST_CANVAS_CONDITIONING
Omost Load Canvas Conditioning is the "the expensive part already happened" node. It takes a JSON string - the exact structure the LLM chat produces - and turns it into OMOST_CANVAS_CONDITIONING, ready for any of the layout-condition nodes. One input (json_str, a multiline text box), one output. Under the hood it's literally json.loads(); there's nothing clever happening, and that's the point. It exists so you don't need the LLM to get value out of Omost.
The JSON is a list of region objects, and the shape matters:
- The first entry is the global description - full canvas,
rectof[0, 90, 0, 90]. - Each subsequent entry is a region with a
rect(a, b, c, d coordinates in the 90×90 canvas space),prefixes,suffixes, and acolor.
You can paste JSON you saved from an Omost LLM Chat run - the README even suggests hooking a show-anything node to the chat output to save it - but the real party trick is the built-in region editor. Right-click the node and pick the canvas-editor option: it opens a hosted visual editor where you can drag boxes, resize them, tweak colors and prompts, then close it and the JSON widget gets rewritten for you. That's how you turn a layout the LLM got "almost right" into one that's actually right - and it's also how you build layouts from scratch without ever touching the LLM. Once the initial hype (and the 3–5 minute chats) wore off, this hand-editing path is the workflow a lot of people settled on, and it slots into the wider regional-prompting pattern of "generate boxes, then fix them by hand."
Two caveats worth knowing. The editor loads its iframe from huchenlei.github.io, so it needs internet access the first time, and it round-trips through the text widget - save your JSON to a file before you start editing so you have a fallback if you close it without meaning to. And the node does no validation: it's a bare json.loads(), so a stray comma or missing bracket throws a parse error at execution time, not while you're typing. Paste carefully.
Downstream, the output feeds any of the three layout encoders - Omost Layout Cond (ComfyUI-Area), the Dense Diffusion variant, or Omost Greedy Bags Text Embedding - so this node plus those is a complete, LLM-free pipeline: layout in, conditioning out.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| json_str | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| OMOST_CANVAS_CONDITIONING | OMOST_CANVAS_CONDITIONING | — |