Nodes/IAMCCS-nodes/IAMCCS Ideogram Sheet Builder
ComfyUI Node

IAMCCS Ideogram Sheet Builder

The Ideogram 4 prompt builder that thinks in boxes

By IAMCCS·Created 11 months ago·Updated 7 days ago· 113
IAMCCS Ideogram Sheet Builder
  • image
  • bboxes
  • prompt
  • preview
  • bboxes
  • width
  • height
  • current_sheet_json
  • grid_columns
  • grid_rows
  • ideoboard_for_frame_v2
width1024
height1024
high_level_description
background
style
aesthetics
lighting
medium
style_palette_data
elements_data
grid_columns1
grid_rows1
bg_brightness25
import_modewhen empty
import_json

Ideogram 4 is a weird model to prompt, and that's not an accident. It was trained for its structured JSON format - the one with style_description and per-element bounding boxes - and people who just paste a plain sentence into it get a decent render and then wonder why it underperforms. The IAMCCS Ideogram Sheet Builder is this pack's answer: a front-end that builds that structured prompt for you, with an optional visual grid so you can place elements without hand-writing coordinate JSON.

Let's clear up the first thing you'd reasonably worry about: this node doesn't call the ideogram.ai API and needs no key. It's a pure string-and-geometry builder that lives entirely in your ComfyUI graph. You wire its prompt output into your local Ideogram 4 text encoder (the Kijai-style wrapper setup), and you're done.

How it works

The node assembles an Ideogram-style caption dictionary. Your high_level_description and background become the top-level prompt; aesthetics, lighting, and medium (or photo/art_style under the style combo) get folded into style_description. Any elements you define are written as normalized bounding boxes - coordinates as 0–1 fractions of width/height, which is exactly the range Ideogram 4 expects. If you'd rather not hand-type elements, drop a BOUNDING_BOX from another node into the bboxes input, or feed import_json a caption and set import_mode to "always" to force it over manual entries.

The grid is where the "sheet" in the name comes in. grid_columns and grid_rows (1–12 each) seed the initial box layout at your width/height, so you can plan a contact sheet of panels or a storyboard frame-by-frame and then edit each box in the UI. bg_brightness (0–100) nudges the background value.

The outputs that matter

  • prompt - the STRING you feed to the Ideogram 4 encoder. This is the whole point.
  • preview - an IMAGE of the sheet so you can eyeball layout before generating.
  • bboxes - the same geometry as a BOUNDING_BOX, useful if you're chaining into crop nodes.
  • current_sheet_json and ideoboard_for_frame_v2 - the full sheet state as JSON; the second one feeds the newer FrameDesigner/IdeoInfo pipeline.

Install

It ships in IAMCCS-nodes, so:

cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git

…then restart ComfyUI. Or just search IAMCCS in ComfyUI Manager. The pack itself has no requirements.txt and downloads nothing - you already have numpy/PIL/torch.

Gotchas

The class is flagged experimental in the source, so expect the occasional rough edge. The two things that trip people: this node only builds the prompt - you still need Ideogram 4 weights and a working encoder to actually generate - and if style is left as a raw string rather than the combo's dict, it degrades to none styling. If your boxes come out wrong, check that width/height are multiples of 16 and that your elements data isn't double-normalizing coordinates.

CategoryIAMCCS/Cine/Ideogram

Inputs (17)

NameTypeDefaultDescription
widthINT102464–16384
heightINT102464–16384
high_level_descriptionSTRING
backgroundSTRING
styleCOMBO3 options: [object Object], [object Object], [object Object]
aestheticsSTRING
lightingSTRING
mediumSTRING
style_palette_dataSTRING
elements_dataSTRING
grid_columnsINT11–12
grid_rowsINT11–12
bg_brightnessINT250–100
import_modeCOMBOwhen empty2 options: when empty, always
imageoptIMAGE
import_jsonoptSTRING
bboxesoptBOUNDING_BOX[object Object]

Outputs (9)

NameTypeDescription
promptSTRING
previewIMAGE
bboxesBOUNDING_BOX
widthINT
heightINT
current_sheet_jsonSTRING
grid_columnsINT
grid_rowsINT
ideoboard_for_frame_v2STRING