Nodes/AIO Image Generate/Ideogram 4 Prompt Builder
ComfyUI Node

Ideogram 4 Prompt Builder

Ideogram 4's mandatory JSON prompt, built by pointing at a canvas

By helto4real·Created 3 months ago·Updated 23 days ago· 1
Ideogram 4 Prompt Builder
  • image
  • bboxes
  • prompt_builder
  • prompt
  • preview
  • bboxes
  • width
  • height
max side1024
aspect ratio1:1
multiple valuenone
privacy_modefalse
high_level_description
background
stylephoto
photo
art_style
aesthetics
lighting
medium
import_modewhen empty
output_formatcompact
style_palette_data
elements_data
bg_brightness25
coord_modenormalized
bbox_orderyx
import_json

Ideogram 4 is a JSON-prompting model. Plain text works, but the model is built around a structured caption - a high-level description, background, style blocks, and named regions with bounding boxes. Typing that JSON by hand is misery. AIOIdeogram4PromptBuilder gives you a visual editor that produces it: you lay out regions on a canvas, describe them, and the node emits the structured JSON plus conveniences like prompt (the JSON as a string), preview, bboxes, width, and height.

It's the AIO pack's adaptation of Kijai's Ideogram4PromptBuilderKJ from ComfyUI-KJNodes - the README credits it, and the GPL-3.0 licensing of this whole pack is a direct consequence of that borrowing.

What it does

The output you want for generation is the first one, prompt_builder (type AIO_IDEOGRAM4_PROMPT). Wire it into the prompt_builder socket on AIOIdeogram4Settings - or, if you're running Krea 2, into AIOKrea2Settings's prompt_builder, because Krea 2 shares the same structured-prompt lineage. When connected, the generated JSON replaces the main node's positive_prompt, and the builder's resolved dimensions override the main node's size controls. The plain prompt STRING output exists for nodes that only accept text, and preview gives you a rendered look at what the editor is building.

The controls worth knowing

  • max side, aspect ratio, multiple value - the builder uses the same dimension calculation as AIO Image Generate, and deliberately exposes no raw width/height inputs. Ideogram 4 wants multiples of 16, so multiple value should sit at 16.
  • style - none, photo, or art_style. If you pick photo, describe it in the photo field; art_style for the other. aesthetics, lighting, and medium are emitted when a style block is active.
  • high_level_description, background - the one-line overview and scene background. Blank means omitted.
  • coord_mode - normalized (0–1000 grid, the default Ideogram convention) or absolute (resolved pixels).
  • bbox_order - yx is Ideogram's [ymin,xmin,ymax,xmax]; xy is Qwen-style [xmin,ymin,xmax,ymax]. Flip to xy for Krea/Qwen-style image models that expect that order.
  • import_mode - when empty (seed the editor from import_json only if it has nothing) or always.
  • output_format - compact matches Ideogram 4's training format and is what you want for generation; pretty is for humans reading it.
  • privacy_mode - encrypts the builder text and editor state in saved workflows (see the pack's privacy feature), with the node UI masking text until hovered.

Optional inputs: image shows behind the editor as a reference canvas, import_json imports a full caption JSON, and bboxes seeds editor regions from pixel-space boxes when the editor is empty.

Setting it up

Part of the AIO pack:

cd ComfyUI/custom_nodes
git clone https://github.com/helto4real/comfyui-all-on-one-image-generation-node
cd comfyui-all-on-one-image-generation-node
python -m pip install -r requirements.txt

Or install via ComfyUI Manager (search "AIO Image Generate") and restart. All nodes land under AIO/Image.

Where people trip

  • You don't have to use it, but the model rewards it. Ideogram 4's real strengths - text rendering, layout control, character/IP recall - come through the structured format. Skipping it and typing a plain prompt is leaving the point of the model on the table.
  • The prompt string output and the prompt_builder socket are different things. If you connect prompt to the settings node, the typing won't match - you want the first output. The string output is for text-only consumers elsewhere in the graph.
  • bbox_order matters per model. The default yx is right for Ideogram 4; switch to xy for Krea 2. A model fed boxes in the wrong order will scatter regions across the canvas.
  • Dimensions come from the builder when it's connected. Set max side/aspect ratio here, not on the main node - the main node's size controls get overridden.

One JSON schema, two model families, zero hand-typed braces. That's the pitch, and it holds up.

CategoryAIO/Image

Inputs (22)

NameTypeDefaultDescription
max sideINT1024256–4096Longest generated edge in pixels. Uses the same calculation as AIO Image Generate.
aspect ratioCOMBO1:1Output shape to use with max side. Uses the same calculation as AIO Image Generate.
multiple valueCOMBOnoneRound dimensions to the selected multiple. Ideogram 4 should normally use 16.
privacy_modeBOOLEANfalseEncrypt prompt-builder text and editor state in saved workflows and hide it unless hovered.
high_level_descriptionSTRINGOptional one-line overview of the whole image. Blank is omitted.
backgroundSTRINGScene background description.
styleCOMBOphotoIdeogram structured style block type.
photoSTRINGPhoto style descriptor used when style is photo.
art_styleSTRINGArt style descriptor used when style is art_style.
aestheticsSTRINGStyle descriptor emitted when style is not none.
lightingSTRINGStyle descriptor emitted when style is not none.
mediumSTRINGStyle descriptor emitted when style is not none.
import_modeCOMBOwhen emptyUse wired import_json always, or only to seed an empty editor.
output_formatCOMBOcompactCompact matches the Ideogram 4 training format; pretty is for readability.
style_palette_dataSTRINGSerialized style color palette managed by the node UI.
elements_dataSTRINGSerialized region data managed by the node UI.
bg_brightnessINT250–100Background image brightness for the preview/editor.
coord_modeCOMBOnormalizedBBox coordinate scale for JSON output: normalized 0-1000 grid or absolute pixels.
bbox_orderCOMBOyxBBox axis order for JSON output: yx is Ideogram [ymin,xmin,ymax,xmax], xy is Qwen-style [xmin,ymin,xmax,ymax].
imageoptIMAGEOptional reference image shown behind the preview/editor regions.
import_jsonoptSTRINGOptional full caption JSON to import into the editor/output.
bboxesoptBOUNDING_BOXOptional pixel-space boxes used to seed editor regions when it has none.

Outputs (6)

NameTypeDescription
prompt_builderAIO_IDEOGRAM4_PROMPT
promptSTRING
previewIMAGE
bboxesBOUNDING_BOX
widthINT
heightINT