Nodes/ComfyUI/Build JSON Prompt (Ideogram)
ComfyUI Node Runs on cloud

Build JSON Prompt (Ideogram)

Layout control for the text-in-image king

By Comfy-Org·Created 4 years ago·Updated 20 days ago· 121,575
Build JSON Prompt (Ideogram)
  • element
  • color_palette
  • prompt
high_level_description
background
style
aesthetics
lighting
medium

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, or art_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 to photograph.

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.

Categorytext

Inputs (8)

NameTypeDefaultDescription
elementARRAYPrompt elements from the node Create Bounding Boxes.
high_level_descriptionSTRINGOptional description of the image in one or two sentences. Strongly recommended.
backgroundSTRINGMandatory description of the image background or environment.
styleCOMBO3 options: [object Object], [object Object], [object Object]
aestheticsSTRINGMandatory aesthetic keywords (e.g. moody, cinematic, desaturated).
lightingSTRINGMandatory lighting description (e.g. golden hour, rim light, dramatic shadows).
mediumSTRINGMandatory medium type (e.g. photograph, illustration, 3d_render, painting, graphic_design). When style = photo, set to photograph.
color_paletteCOLORSHex color codes that steer the image's dominant colors. Up to 16 entries.

Outputs (1)

NameTypeDescription
promptDICT