Build JSON Prompt (Ideogram)
Layout control for the text-in-image king
- element
- color_palette
- prompt
Ideogram 4 is the model that finally made "open weights" mean "JSON-only prompting": its whole prompt interface is a structured document, not a sentence. Build JSON Prompt (Ideogram) (BuildJsonPromptIdeogram) is the core node that assembles that document for you - and if you're doing any layout-constrained generation, it's the piece that turns a pile of boxes and descriptions into something the model actually reads.
Where does this fit a workflow? Ideogram 4's claim to fame is text-in-image and precise layout - you want "a poster where the title goes here, a product shot over there, this palette everywhere." That's not something a flat prompt can express. The official flow is: draw regions with the Create Bounding Boxes node (a canvas where you box in each element, give it a description and a text), then feed those boxes plus the global scene details into this node, and out comes the structured prompt dict Ideogram 4 conditions on. It's marked experimental in core, which is honest - this is new-shiny territory, but it's also the intended way to prompt the model.
How it works
The node takes the pieces of an Ideogram-4 prompt and assembles a caption dictionary with three main parts. High-level description - one or two sentences about the whole image (strongly recommended, per the tooltip). Style description - a block built from the style combo plus aesthetic keywords, lighting, medium, and your color palette. And compositional deconstruction - the background description plus the elements array from the bounding boxes. The style combo gives you three modes: none, photo (with a camera/lens details field - "35mm, f/1.4, bokeh"), and art_style (a free-text art direction field).
One structural note: the tooltips call background, aesthetics, lighting, and medium mandatory - leave them empty and you get an anemic prompt that wastes the model. This is a node where the boring fields are the point, not an afterthought.
The inputs that matter
- element - the array of prompt elements straight from Create Bounding Boxes. This is the layout backbone; without it the node has nothing to arrange.
- background - mandatory description of the environment. If you skip it, your layout floats in a void.
- style - the dynamic combo:
none,photo, orart_style, each exposing its own extra field. - color_palette - up to 16 hex codes that steer dominant colors. Nice for keeping a brand or a mood consistent across generations.
- aesthetics, lighting, medium - the keywords that set tone ("moody, cinematic, desaturated," "golden hour," "photograph"). The tooltip even tells you: when style is
photo, set medium tophotograph.
Output is a single prompt of type DICT - the structured caption, ready for the Ideogram-4 sampler/conditioning path in the official workflow.
Common issues
The trap is filling the "mandatory" fields with nothing. Since they default to empty strings, the node doesn't stop you - it just builds a half-empty JSON and the model under-delivers, and it's easy to blame the model. Second: color_palette is a dedicated COLORS socket type, not a text field - hex swatches, up to 16. And remember the license context: Ideogram 4's weights are non-commercial, which is a legal consideration for what you build on top of this node, not a technical one. If you just want text-in-image without layout control, the model's plain prompt path exists - but this node is where the layout magic happens.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| element | ARRAY | Prompt elements from the node Create Bounding Boxes. | |
| high_level_description | STRING | Optional description of the image in one or two sentences. Strongly recommended. | |
| background | STRING | Mandatory description of the image background or environment. | |
| style | COMBO | 3 options: [object Object], [object Object], [object Object] | |
| aesthetics | STRING | Mandatory aesthetic keywords (e.g. moody, cinematic, desaturated). | |
| lighting | STRING | Mandatory lighting description (e.g. golden hour, rim light, dramatic shadows). | |
| medium | STRING | Mandatory medium type (e.g. photograph, illustration, 3d_render, painting, graphic_design). When style = photo, set to photograph. | |
| color_palette | COLORS | Hex color codes that steer the image's dominant colors. Up to 16 entries. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| prompt | DICT | — |