Ideogram V3 Text to Image
The node you call when the words have to be right
- image
- url
- all_urls_json
- task_id
- raw_json
- credits_consumed
- credits_left
Ideogram's whole reputation is text rendering. Through three closed generations it was the model you used when the image needed a word in it that a human could read - signage, packaging, posters, logos - and nothing open came close. V3 is that generation, and this node is its plain text-to-image entry point: one prompt in, one image out, no reference image and no mask.
Why pay per image when Ideogram 4's weights are downloadable now? Because the two are not interchangeable. The 4.0 release was trained on structured JSON captions with bounding boxes and hex palettes, and it punishes plain prose; it also carries a safety filter trained into the weights. This v3 API node takes a paragraph and returns an image. If you want a quick comp with a legible wordmark and zero setup, you're in the right place.
Inputs
prompt (required, up to 5000 characters) is the only thing you must provide. The node's default value is a long, cinematic paragraph that names the text it wants rendered - 'Kie.ai' in quotes, sitting over a twilight lake. That quoting habit is the technique: put the exact string in the prompt, quoted, and describe where it sits.
rendering_speed is TURBO, BALANCED (default), or QUALITY. This is your cost/latency dial and the one you should actually vary: iterate on Turbo, finish on Quality.
style is AUTO (default), GENERAL, REALISTIC, or DESIGN. Four options, no style library - DESIGN is the one aimed at graphic work. expand_prompt (default true) turns on MagicPrompt, Ideogram's prompt rewriter: genuinely useful for short prompts, counterproductive when you're pinning exact wording, since a rewriter has opinions about your text.
image_size is square_hd (default), square, portrait_4_3, portrait_16_9, landscape_4_3, landscape_16_9. Aspect ratios in buckets, not arbitrary dimensions - plan your layout around that.
negative_prompt defaults to a sensible list (blurry, low detail, distorted anatomy, extra limbs, malformed text, watermark) and takes up to 5000 characters. Its tooltip is candid: if your positive prompt conflicts with it, the positive prompt wins. Use it to exclude, not to fight yourself.
seed for reproducibility attempts. timeout_seconds (default 1200, range 30–7200 in 30-second steps) is the polling budget - this node blocks while the job runs, so a tight batch script may want a lower value to fail fast. callback_url is for webhook setups; leave it empty.
Outputs
image is a native ComfyUI IMAGE, ready for a save node or a local upscaler. url and all_urls_json carry the result links, task_id identifies the job at KIE, raw_json is the unfiltered response, and credits_consumed / credits_left are floats - useful if you're cost-tracking, which you should be with a per-image service. Downloads are archived to ComfyUI/output/KIE-Results/images/.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
cd ComfyUI-KIE-Nodes-Next
pip install -r requirements.txt
Restart ComfyUI. Four small dependencies, no checkpoints, no VRAM. If you'd rather install from a package, ComfyUI Manager search for "KIE" is worth a try - but the README still describes registry publication as pending, so don't be surprised if the clone is the only path. dist/ has a Windows one-click installer.
Key once: Settings → KIE.ai Nodes Next → Connection → Paste / replace KIE.ai API key. It's validated against KIE before replacing a working key, only a masked fingerprint is displayed afterwards, and the full key never enters workflow JSON. On a server, KIE_API_KEY works - and it takes priority over the saved key, so a stale variable will override the new key you just pasted.
Troubleshooting
Text came back misspelled. Shorten the string, quote it exactly, and consider turning expand_prompt off so MagicPrompt stops paraphrasing it. Very long strings and stylised fonts are still where text rendering fails, open or closed.
Timeout errors are already paid for. The generation continues on KIE's side; the node just stopped waiting. The task_id is in the error message - check it with the Task Status node instead of re-queueing.
Queueing twice changes nothing. Identical inputs are cached by ComfyUI, so you get the same image and no new charge. Change the prompt or seed to submit again.
"KIE model ID has not been resolved yet." The node list is generated from KIE's docs, and the first sync can fail on a flaky launch. Run the Catalog Sync node, reload the frontend, retry.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | A cinematic photograph of a tranquil lakeside at twilight, viewed from a slight elevation. In the center, a cluster of softly glowing reeds and water lilies emit a gentle golden light, their reflections shimmering on the calm surface. The elegant neon-style white text 'Kie.ai' hovers just above the water, subtly illuminated and harmonizing with the natural glow. Surrounding willows and drifting mist frame the scene, creating a serene yet magical atmosphere, with warm highlights contrasting against the cool blues of the evening sky. | Description of the image to generate. Maximum length: 5000 characters. |
| rendering_speedopt | COMBO | BALANCED | The rendering speed to use. - `TURBO`: Turbo - `BALANCED`: Balanced - `QUALITY`: Quality |
| styleopt | COMBO | AUTO | The style type to generate with. Cannot be used together with `style_codes`. - `AUTO`: Auto - `GENERAL`: General - `REALISTIC`: Realistic - `DESIGN`: Design |
| expand_promptopt | BOOLEAN | true | Determines whether MagicPrompt should be used to enhance the generation request. - Boolean value: `true` / `false` |
| image_sizeopt | COMBO | square_hd | The resolution of the generated image. - `square`: Square - `square_hd`: Square HD - `portrait_4_3`: Portrait 3:4 - `portrait_16_9`: Portrait 9:16 - `landscape_4_3`: Landscape 4:3 - `landscape_16_9`: Landscape 16:9 |
| seedopt | INT | 123456-2147483648–2147483647 | Seed for the random number generator. |
| negative_promptopt | STRING | blurry, low detail, distorted anatomy, extra limbs, malformed text, watermark | Description of what to exclude from the generated image. If the positive prompt conflicts with the negative prompt, the positive prompt takes precedence. Maximum length: 5000 characters. |
| timeout_secondsopt | INT | 120030–7200 | — |
| callback_urlopt | STRING | Optional KIE callback URL. Leave empty for normal ComfyUI use. |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| url | STRING | — |
| all_urls_json | STRING | — |
| task_id | STRING | — |
| raw_json | STRING | — |
| credits_consumed | FLOAT | — |
| credits_left | FLOAT | — |