Ideogram 4 Prompt Generator ๐
Turn prose into Ideogram 4's structured prompts
- llm_service_connector
- ideogram4_prompt
Ideogram 4 is unusual: it was trained on structured captions, so plain natural-language prompts underperform badly. You're supposed to condition it with typed elements - palettes, text blocks, composition. This node uses an LLM to translate your ordinary prose into that structured shape, so you get Ideogram-4-quality output without hand-authoring the schema.
It ships in ComfyUI-MieNodes (ComfyUI_MieNodes), MieMieeeee's utility pack, under Prompt Generator.
Why you'd use it
Here's the thing most people trip over with Ideogram 4, straight from the KB's Ideogram 4 panel: the model was "trained exclusively on structured JSON captions, so plain natural-language prompts underperform badly." One of the most-upvoted community observations about it is that the fix for both its mediocre prose results and its safety filter is, essentially, "use the structured prompt format they told you to use in the first place." Kijai's KJNodes even ships a builder for exactly this reason.
This MieNodes node is a lighter-weight take on the same idea. Instead of drawing bounding boxes on a canvas, you type what you want in plain language and let the LLM shape it into what Ideogram 4 expects. That fits the KB's prompt-engineering framing perfectly: when the target model wants structure, having an LLM produce that structure is the whole game.
The composition_mode input picks how much layout control you're after - simple, complex, or movable. Simple for a straightforward scene; complex when you want richer, more deliberately arranged output; movable when you want the composition described in a way you can rearrange.
The inputs and outputs that matter
Required:
llm_service_connector- a connector from one of the pack'sSet...nodes.user_prompt- your idea, in plain words. Multiline.composition_mode-simple(default),complex, ormovable.seed- reroll for a different structuring of the same idea.
Optional:
aspect_ratio- a string, default1:1. Ideogram 4 handles flexible ratios up to very wide, so set this to match your target (16:9,3:2, etc.). The pack's AspectRatioFromSize node can feed this from a width/height.temperature(default 1) - how much the LLM improvises.timeout- 30/60/120/300 seconds (default 120). Structured rewrites can be a longer call, so there's a real timeout here.
Output is ideogram4_prompt (STRING) - feed it into the prompt input of your Ideogram 4 workflow.
Installing it
ComfyUI Manager โ search ComfyUI-MieNodes โ install โ restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/MieMieeeee/ComfyUI-MieNodes
then restart. No download for the node, but two dependencies to remember: it needs an LLM connector (with a key), and it only writes the prompt - the Ideogram 4 model itself is a separate ~9.3B checkpoint you load elsewhere. Nodes appear under the ๐ MieNodes menu.
Common issues
Weak results even with the node. If output still looks flat, check that Ideogram 4 is actually the model on the other end. Feeding an Ideogram-shaped prompt to a different base won't help - this node's whole value is matching Ideogram 4's training format.
The refusal image. Ideogram 4 has a safety filter trained into the weights that emits a specific grey image on prompts it judges unsafe. The community's finding is that prompting through the structured format it wants clears the filter in most cases - which is one more reason to run prose through a structuring node rather than raw. But it's conditional, so a stubborn grey image on borderline content is the model, not this node.
Slow generations, then near-identical seeds. That's Ideogram 4's own character (the KB notes 3-4 minutes per image and users reporting little variation once a prompt is pinned). Use it to compose a deliberate image, not to browse a seed space - explore on a faster model and come back here to finalize.
Commercial use. Heads up that Ideogram 4's license is non-commercial with no revenue threshold. That's a licensing fact about the model, unrelated to this node, but worth knowing before you build a product around its output.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| llm_service_connector | LLMServiceConnector | โ | |
| user_prompt | STRING | โ | |
| composition_mode | COMBO | simple | simple: Scene/collage/interior/magazine hero โ slim JSON, positional desc, omit bbox (matches most official Ideogram examples). | complex: Typography-dense poster โ bbox on every element for precise multi-zone layout (Flow / T-Rex style). | movable: Editable layout โ bbox is the sole position authority. desc and high_level_description carry NO placement words, so you can move any element by editing its bbox alone. |
| seed | INT | 00โ18446744073709550000 | โ |
| aspect_ratioopt | STRING | 1:1 | Composition hint (W:H). Connect AspectRatioFromSize; defaults to 1:1 when empty. |
| temperatureopt | FLOAT | 1.000โ2 | โ |
| timeoutopt | COMBO | 120 | 4 options: 30, 60, 120, 300 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| ideogram4_prompt | STRING | โ |