toobusy Ideogram4 T2I (local model)
Local Ideogram 4 text-to-image — no API, no key, just the weights
- model_override
- uncond_model_override
- clip_override
- vae_override
- image
- latent
- width
- height
The name is a lie, in the good way: toobusy Ideogram4 T2I doesn't call any API and needs no key. It's a full local text-to-image sampler for the Ideogram 4 weights, folded from the whole load→encode→sample→decode chain into one node. Ideogram 4 is the model whose text-in-image quality made it the benchmark for years, and whose June 2026 open-weights release made it runnable locally - with the catch that it's JSON-only prompting and it ships quantized. This node exists to make that workflow not miserable.
How it works
It runs the complete local chain: loads the Ideogram 4 diffusion model (two of them, actually - a conditional and an unconditional checkpoint, because Ideogram's CFG pass drops text tokens entirely on the uncond side), the Qwen3-VL text encoder, and the VAE; encodes your structured prompt; samples; decodes. The prompt input expects the Ideogram JSON schema - the same shape the Layout Builder produces, which is why the two nodes are a pair. quality gives you the vendor's recommended presets (Quality / Default / Turbo / Custom) that set sampler, CFG, and schedule for you, and steps = 0 means "use the preset's step count." If KJNodes is installed, use_sage_attention patches just this node's models with SageAttention for a speedup.
The inputs that matter
model_name/unconditional_model_name- the two checkpoints, defaulting toideogram4_fp8_scaled.safetensorsfor both. The fuzzy auto-detection excludes "uncond"-named files from the conditional slot so the two don't grab the same weight.clip_name-qwen3vl_8b_fp8_scaled.safetensors;vae_name-flux2-vae.safetensors.prompt- paste the Layout Builder'sideogram_jsonhere. This is the intended flow.quality- Turbo is a great default for iterating; step down to Quality for finals.ratio_preset+megapixels- sizing, withwidth/heightoptional overrides. The tooltip tells you the intended wiring: "Connect Layout Builder's width here to use its resolution."cfg(7),sampler_name(res_multistep),seed- overridable; the quality preset overrides them whenstepsis 0.mu/std/cfg_override*- only used in Custom quality; ignore until you're tuning.- The
lora_N_enable/name/strengthslots (up to 5) - Ideogram 4's LoRA scene is thin (Krea 2 ate its ecosystem), but the slots are there.
Outputs and where they go
image- the render.latent- for a second pass.width/height- actual geometry, for downstream compositing.
Install and gotchas
Standard pack install. The model files are not bundled - you need the local Ideogram 4 checkpoints in models/diffusion_models/, the Qwen3-VL text encoder, and the Flux2 VAE. And critically, your ComfyUI build must have Ideogram4 support nodes and the ideogram4 CLIP type; on an unsupported build the node fails at runtime with a clear error - the README's FAQ is blunt about this: it's a local-model node, not the web API.
Two things worth knowing. First, the license: Ideogram 4's weights are non-commercial, quantized-only, and Ideogram trained a refusal image into the model. Second, its real strength after the dust settled turned out to be character and IP recall plus layout control - which is exactly why this pack pairs it with the Layout Builder. Don't use it as your general-purpose model; use it when you need the layout and text control it was built for.
Inputs (40)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | COMBO | ideogram4_fp8_scaled.safetensors | 1 options: ideogram4_fp8_scaled.safetensors |
| unconditional_model_name | COMBO | ideogram4_fp8_scaled.safetensors | 1 options: ideogram4_fp8_scaled.safetensors |
| clip_name | COMBO | qwen3vl_8b_fp8_scaled.safetensors | 1 options: qwen3vl_8b_fp8_scaled.safetensors |
| vae_name | COMBO | flux2-vae.safetensors | 1 options: flux2-vae.safetensors |
| prompt | STRING | { "high_level_description": "", "style_description": { "aesthetics": "", "lighting": "", "photo": "", "medium": "photography", "color_palette": [] }, "compositional_deconstruction": { "background": "", "elements": [] } } | — |
| quality | COMBO | Turbo | 4 options: Quality, Default, Turbo, Custom |
| steps | INT | 00–200 | 0 = use the quality preset's step count. Any value > 0 overrides it (and is required when quality = Custom). |
| ratio_preset | COMBO | 9:16 | 9 options: 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, +3 |
| megapixels | FLOAT | 1.000.1–4 | — |
| seed | INT | 00–18446744073709550000 | — |
| sampler_name | COMBO | res_multistep | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 |
| cfg | FLOAT | 7.00–100 | — |
| lora_slots | INT | 00–5 | — |
| use_sage_attention | BOOLEAN | false | Patch only this node's conditional and unconditional Ideogram models with KJ SageAttention auto mode. |
| lora_1_enable | BOOLEAN | false | — |
| lora_1_name | COMBO | None | 1 options: None |
| lora_1_strength | FLOAT | 1.00-10–10 | — |
| lora_2_enable | BOOLEAN | false | — |
| lora_2_name | COMBO | None | 1 options: None |
| lora_2_strength | FLOAT | 1.00-10–10 | — |
| lora_3_enable | BOOLEAN | false | — |
| lora_3_name | COMBO | None | 1 options: None |
| lora_3_strength | FLOAT | 1.00-10–10 | — |
| lora_4_enable | BOOLEAN | false | — |
| lora_4_name | COMBO | None | 1 options: None |
| lora_4_strength | FLOAT | 1.00-10–10 | — |
| lora_5_enable | BOOLEAN | false | — |
| lora_5_name | COMBO | None | 1 options: None |
| lora_5_strength | FLOAT | 1.00-10–10 | — |
| model_overrideopt | MODEL | — | |
| uncond_model_overrideopt | MODEL | — | |
| clip_overrideopt | CLIP | — | |
| vae_overrideopt | VAE | — | |
| widthopt | INT | 00–2048 | 0 = use ratio_preset + megapixels. Connect Layout Builder's width here to use its resolution. |
| heightopt | INT | 00–2048 | 0 = use ratio_preset + megapixels. Connect Layout Builder's height here to use its resolution. |
| muopt | FLOAT | 0.50-10–10 | Used only when quality = Custom. |
| stdopt | FLOAT | 1.750.1–5 | Used only when quality = Custom. |
| cfg_overrideopt | FLOAT | 3.00–100 | — |
| cfg_override_startopt | FLOAT | 0.700–1 | — |
| cfg_override_endopt | FLOAT | 1.000–1 | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| latent | LATENT | — |
| width | INT | — |
| height | INT | — |