toobusy Ideogram Prompt Polish
Type a scene in Korean, get an Ideogram 4 layout JSON out
- clip
- image
- ideogram_json
- llm_raw
Ideogram 4's local weights demand a structured JSON prompt, which is a great format for a model and a terrible one for a human who just wants to say "a woman in a red dress on a beach at sunset." toobusy Ideogram Prompt Polish is the translation layer: you type a plain-language scene - Korean or English - and it returns the ideogram_json that the Layout Builder and the Ideogram4 T2I node expect. And if you connect an image with a vision-capable model, it'll do the reverse and analyze the image into a layout draft.
How it works
Under the hood it uses ComfyUI's TextGenerate node - the same text-generation path the Keyframe Maker uses - with a clip you provide. The scene is never overwritten; your wording stays yours, and the structured prompt comes out on a separate output. That's a deliberate design choice, because the classic LLM-enhancer failure is "helpfully" rewriting your idea into something you didn't ask for. preserve_intent (on) and fill_missing_fields (on) split the difference: keep what you meant, fill the schema fields Ideogram requires.
The style_mode dropdown (Literal / Cinematic / Product / Character / Poster) picks which framing the structured prompt gets, and language (Auto detects Hangul) handles the translation. The image path is the clever bit: connect an image plus a vision-capable model (Gemma 4 is the README's example) and it reads the image - including Korean text in it - and locates elements with bounding boxes into a layout draft. image_instruction_mode picks literal transcription versus "keep the layout, rewrite the subject per my Scene text," and analysis_mode trades speed for detail.
The inputs that matter
clip- the LLM doing the work. Quality of the whole node is downstream of what you plug in here.scene- the free-form idea. This is where 90% of your effort goes.style_mode/language/preserve_intent/fill_missing_fields- the shaping controls, all with sensible defaults.image(optional) +image_instruction_mode+analysis_mode- the image-analysis path described above.release_clip_after_run(on) - after generating, it unloads only this CLIP from VRAM. That's the right default before a big Ideogram model loads; unlike a global VRAM cleaner, it leaves everything else resident.debug_raw- flip on when the JSON output is malformed; it returns the full raw LLM response so you can see what broke.
Outputs and where they go
ideogram_json- wire into the Layout Builder'simported_json, press "⟳ Pull from input," and edit the draft on the canvas. That's the intended flow and it's smooth.llm_raw- the raw model output; blank by default to keep workflows light, full withdebug_rawon.
Install and gotchas
Standard pack install (Manager "toobusy", or clone + restart). No optional Python deps - the model is the clip you already own. The README's example workflow (korean_scene_to_ideogram4.json) is the fastest way to see the whole Polish → Layout Builder → T2I flow assembled.
The standing gotcha is the one the llm-in-comfyui crowd keeps rediscovering: a chat LLM emits chat. Without constraint, you get "Here is your enhanced prompt:"-style scaffolding bleeding into your JSON. The node has cleanup for this, but if your ideogram_json comes out unusable, turn on debug_raw and look - it's usually a clip that isn't following the format, and swapping to a Gemma-family model (the safest for TextGenerate prompt work, per the pack's own docs) fixes more of these than any setting.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | — | |
| scene | STRING | 노을 지는 해변에서 빨간 원피스를 입은 여자가 카메라를 등지고 서 있다. | — |
| style_mode | COMBO | Literal | 5 options: Literal, Cinematic, Product, Character, Poster |
| language | COMBO | Auto | 3 options: Auto, Korean, English |
| preserve_intent | BOOLEAN | true | — |
| fill_missing_fields | BOOLEAN | true | — |
| seed | INT | 10–18446744073709550000 | — |
| existing_layout_jsonopt | STRING | — | |
| imageopt | IMAGE | Optional. Connect an image and a vision-capable text model (e.g. Gemma 4) to analyze the image INTO an Ideogram layout draft (reads text incl. Korean, finds elements + bboxes). Without an image this stays a scene-text polisher. Wire ideogram_json into the Layout Builder's imported_json, then press Pull. | |
| image_instruction_modeopt | COMBO | Analyze image literally | With an image connected: literal mode transcribes the source image; transform mode keeps the layout/bboxes but rewrites subject and text according to the Scene field. |
| analysis_modeopt | COMBO | balanced | Image analysis detail. fast: quick draft with few compact elements. balanced: default practical Layout Builder draft. detailed: slower, richer panel/UI/text/style analysis. |
| debug_rawopt | BOOLEAN | false | Off: return blank/truncated llm_raw to keep workflows lighter. On: return the full raw LLM response for debugging JSON failures. |
| release_clip_after_runopt | BOOLEAN | true | After creating the prompt, unload only this CLIP model from VRAM. Recommended before a large Ideogram model; unlike a global VRAM cleaner, other models and caches are preserved. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| ideogram_json | STRING | — |
| llm_raw | STRING | — |