IF Display Omni🔍
Peek Inside the OMNI Payload Without Guessing
- omni_input
- canvas_conditioning
- text_output
Every so often the main IF_LLM node hands you an omni output and you have no idea what's inside it. Is it text? A canvas layout? A pile of conditioning? IF_LLM_DisplayOmni is the inspection tool for exactly that moment. It takes whatever OMNI value the LLM node produced and either passes it through as usable data or dumps it as text you can actually read.
You'll meet this node in one place most of the time: an omost workflow. When IF_LLM runs with strategy set to omost, the model generates a regional canvas - a layout of separate prompt regions that later get combined into image conditioning. That structure travels out of the LLM node through the omni output. IF_LLM_DisplayOmni is how you grab it and move it forward.
How it works
The node accepts a single optional omni_input and inspects whatever arrives. Three cases are handled explicitly:
- A dict with a
conditioningskey - a batched canvas conditioning, which it forwards as-is. - A list of dicts - a direct canvas conditioning list, also forwarded.
- A plain string - just text, returned so you can see the answer.
Anything else gets JSON-serialized into a string so you're never left with an opaque blob. It also registers the output with the workflow metadata, so the result shows up in the UI instead of vanishing into a black box.
The two outputs are what matter: canvas_conditioning (type OMOST_CANVAS_CONDITIONING) - wire that into the downstream omost pipeline to build the final image - and text_output (STRING) for when you just want to read what came back.
Installing it
It ships with the IF_LLM pack, so you don't install it separately. ComfyUI Manager (search "IF_LLM") or:
cd ComfyUI/custom_nodes
git clone https://github.com/if-ai/ComfyUI-IF_LLM
then restart. The usual pack caveat applies: this conflicts with IF_AI_tools, so uninstall that first, and expect a heavy dependency install (transformers, torch, triton).
Troubleshooting
text_outputis empty - check that you're feeding it theomnioutput fromIF_LLM, not theresponseoutput. They carry different payloads.- No
omnioutput on the LLM node -omniis only meaningfully populated by the omost/image strategies. On a plainnormalrun there's nothing structured to inspect. - Conditioning doesn't connect downstream - the
canvas_conditioningoutput is a specific type (OMOST_CANVAS_CONDITIONING); it only plugs into nodes that speak omost, not a generic conditioning slot.
Honestly, if you never run omost you'll probably never touch this node. But the first time an OMNI output leaves you staring at a wall of serialized JSON, you'll be glad it exists.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| omni_inputopt | OMNI | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| canvas_conditioning | OMOST_CANVAS_CONDITIONING | — |
| text_output | STRING | — |