Nodes/toobusy · 너무바쁜베짱이/toobusy Ideogram Layout Builder
ComfyUI Node

toobusy Ideogram Layout Builder

Draw boxes on a canvas, get an Ideogram-ready layout — no JSON gymnastics

By nicekriss·Created about a year ago·Updated 3 days ago· 16
toobusy Ideogram Layout Builder
  • image
  • ideogram_json
  • width
  • height
  • text_json
high_level_descriptionA clean editorial poster with deliberate layout.
aestheticsclean commercial design, sharp focus, balanced negative space
lightingsoft studio lighting with gentle shadows
photoprofessional product photography, 85mm lens
mediumphotography
global_palette#111111, #FFFFFF, #D8C7A3
include_global_palettetrue
strict_texttrue
reinforce_texttrue
backgroundminimal studio background with subtle depth and a clean surface
elements_json[]
width2048
height2048
text_overlay_modefalse
imported_json

Ideogram 4's local weights are the odd one out among 2026 image models: they basically refuse to do anything unless you prompt them with a specific JSON schema - type, bbox, desc, per-element color_palette, the works. Hand-writing that by hand is misery. This node is a little editor canvas that lets you draw boxes on a layout, type what goes in each, and exports the exact ideogram_json Ideogram 4 expects. It's the "plan the poster before you generate the poster" step in the toobusy Ideogram flow, and once you've used it you won't go back to pasting JSON.

How it works

The Layout Builder isn't calling an API - there's no key, no network. It assembles the structured JSON locally and, like every node in this pack, it's opinionated about the format. Ideogram wants a fixed key order per element type: an object is type → bbox → desc, a text element is type → bbox → text → desc, with an optional color_palette. The node enforces that order and sorts elements top-to-bottom then left-to-right, which is the reading order Ideogram recommends. The canvas is the front-end; the ideogram_json output is the actual product.

The one setting worth understanding before anything else is text_overlay_mode. Ideogram 4 is the best at rendering English text, and still garbles Korean. Flip this on and the node strips text elements out of the generation JSON entirely and routes them to the text_json output instead - you generate art-only, then overlay crisp real text (the toobusy Layout Text Overlay node is built for exactly that). Off is fine for English; on is the Korean cheat code.

The inputs that matter

Most of the required fields are plain-English descriptions that ship with sane defaults: high_level_description, aesthetics, lighting, photo, medium, and background become the prose parts of the JSON. global_palette (default #111111, #FFFFFF, #D8C7A3) colors the whole layout unless you untick include_global_palette. strict_text and reinforce_text tighten how text elements are phrased - keep them on unless Ideogram is mangling a phrase.

The fiddly one is elements_json, which is where your drawn boxes live as a JSON array - you normally never touch it directly; the canvas writes it. width/height cap at 2048.

Two optional inputs make the flow nice. imported_json takes a draft from elsewhere (the toobusy Ideogram Prompt Polish node, or ComfyUI's Image → Ideogram Layout) - run upstream, then hit the "⟳ Pull from input" button on the node to load it onto the canvas. image drops an analyzed photo under the canvas as a backdrop, so your boxes line up on the real image.

Outputs and where they go

  • ideogram_json - feed this straight into toobusy Ideogram4 T2I's prompt input.
  • width / height - wire into the T2I node's width/height so your canvas resolution is what actually renders.
  • text_json - only populated in overlay mode; goes to Layout Text Overlay.

Install and gotchas

Install the pack once - ComfyUI Manager (search "toobusy") or:

cd ComfyUI/custom_nodes
git clone https://github.com/nicekriss/toobusy.git toobusy

Restart ComfyUI and hard-refresh the browser so the canvas JS loads.

Two things bite people. First, Ideogram 4 itself is a non-commercial model with a trained-in refusal image, and the T2I node will fail at runtime if your ComfyUI build doesn't have the local Ideogram4 nodes - this node only builds the prompt. Second, don't fight the canvas; if you want a precise poster layout, the box-drawing here is genuinely faster than any text prompt, and it's the whole reason the node exists.

Categorytoobusy/Plan

Inputs (16)

NameTypeDefaultDescription
high_level_descriptionSTRINGA clean editorial poster with deliberate layout.
aestheticsSTRINGclean commercial design, sharp focus, balanced negative space
lightingSTRINGsoft studio lighting with gentle shadows
photoSTRINGprofessional product photography, 85mm lens
mediumSTRINGphotography
global_paletteSTRING#111111, #FFFFFF, #D8C7A3
include_global_paletteBOOLEANtrue
strict_textBOOLEANtrue
reinforce_textBOOLEANtrue
backgroundSTRINGminimal studio background with subtle depth and a clean surface
elements_jsonSTRING[]
widthINT2048256–2048
heightINT2048256–2048
text_overlay_modeBOOLEANfalseOn: drop text elements from ideogram_json (Ideogram generates art only) and route them to the text_json output for Layout Text Overlay — crisp Korean instead of garbled rendering. Off: text stays in the generated image (fine for English).
imported_jsonoptSTRINGConnect an Ideogram JSON draft (e.g. from Image → Ideogram Layout). Run upstream, then press '⟳ Pull from input' on the node to load it onto the canvas.
imageoptIMAGEOptional: the analyzed image. Pulling lays it under the canvas as the reference backdrop so boxes land on the real image.

Outputs (4)

NameTypeDescription
ideogram_jsonSTRING
widthINT
heightINT
text_jsonSTRING