Nodes/toobusy · 너무바쁜베짱이/toobusy Ideogram4 T2I (local model)
ComfyUI Node

toobusy Ideogram4 T2I (local model)

Local Ideogram 4 text-to-image — no API, no key, just the weights

By nicekriss·Created about a year ago·Updated 3 days ago· 16
toobusy Ideogram4 T2I (local model)
  • model_override
  • uncond_model_override
  • clip_override
  • vae_override
  • image
  • latent
  • width
  • height
model_nameideogram4_fp8_scaled.safetensors
unconditional_model_nameideogram4_fp8_scaled.safetensors
clip_nameqwen3vl_8b_fp8_scaled.safetensors
vae_nameflux2-vae.safetensors
prompt{ "high_level_description": "", "style_description": { "aesthetics": "", "lighting": "", "photo": "", "medium": "photography", "color_palette": [] }, "compositional_deconstruction": { "background": "", "elements": [] } }
qualityTurbo
steps0
ratio_preset9:16
megapixels1.00
seed0
sampler_nameres_multistep
cfg7.0
lora_slots0
use_sage_attentionfalse
lora_1_enablefalse
lora_1_nameNone
lora_1_strength1.00
lora_2_enablefalse
lora_2_nameNone
lora_2_strength1.00
lora_3_enablefalse
lora_3_nameNone
lora_3_strength1.00
lora_4_enablefalse
lora_4_nameNone
lora_4_strength1.00
lora_5_enablefalse
lora_5_nameNone
lora_5_strength1.00
width0
height0
mu0.50
std1.75
cfg_override3.0
cfg_override_start0.70
cfg_override_end1.00

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 to ideogram4_fp8_scaled.safetensors for 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's ideogram_json here. This is the intended flow.
  • quality - Turbo is a great default for iterating; step down to Quality for finals.
  • ratio_preset + megapixels - sizing, with width/height optional 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 when steps is 0.
  • mu / std / cfg_override* - only used in Custom quality; ignore until you're tuning.
  • The lora_N_enable/name/strength slots (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.

Categorytoobusy/Make

Inputs (40)

NameTypeDefaultDescription
model_nameCOMBOideogram4_fp8_scaled.safetensors1 options: ideogram4_fp8_scaled.safetensors
unconditional_model_nameCOMBOideogram4_fp8_scaled.safetensors1 options: ideogram4_fp8_scaled.safetensors
clip_nameCOMBOqwen3vl_8b_fp8_scaled.safetensors1 options: qwen3vl_8b_fp8_scaled.safetensors
vae_nameCOMBOflux2-vae.safetensors1 options: flux2-vae.safetensors
promptSTRING{ "high_level_description": "", "style_description": { "aesthetics": "", "lighting": "", "photo": "", "medium": "photography", "color_palette": [] }, "compositional_deconstruction": { "background": "", "elements": [] } }
qualityCOMBOTurbo4 options: Quality, Default, Turbo, Custom
stepsINT00–2000 = use the quality preset's step count. Any value > 0 overrides it (and is required when quality = Custom).
ratio_presetCOMBO9:169 options: 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, +3
megapixelsFLOAT1.000.1–4
seedINT00–18446744073709550000
sampler_nameCOMBOres_multistep44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
cfgFLOAT7.00–100
lora_slotsINT00–5
use_sage_attentionBOOLEANfalsePatch only this node's conditional and unconditional Ideogram models with KJ SageAttention auto mode.
lora_1_enableBOOLEANfalse
lora_1_nameCOMBONone1 options: None
lora_1_strengthFLOAT1.00-10–10
lora_2_enableBOOLEANfalse
lora_2_nameCOMBONone1 options: None
lora_2_strengthFLOAT1.00-10–10
lora_3_enableBOOLEANfalse
lora_3_nameCOMBONone1 options: None
lora_3_strengthFLOAT1.00-10–10
lora_4_enableBOOLEANfalse
lora_4_nameCOMBONone1 options: None
lora_4_strengthFLOAT1.00-10–10
lora_5_enableBOOLEANfalse
lora_5_nameCOMBONone1 options: None
lora_5_strengthFLOAT1.00-10–10
model_overrideoptMODEL
uncond_model_overrideoptMODEL
clip_overrideoptCLIP
vae_overrideoptVAE
widthoptINT00–20480 = use ratio_preset + megapixels. Connect Layout Builder's width here to use its resolution.
heightoptINT00–20480 = use ratio_preset + megapixels. Connect Layout Builder's height here to use its resolution.
muoptFLOAT0.50-10–10Used only when quality = Custom.
stdoptFLOAT1.750.1–5Used only when quality = Custom.
cfg_overrideoptFLOAT3.00–100
cfg_override_startoptFLOAT0.700–1
cfg_override_endoptFLOAT1.000–1

Outputs (4)

NameTypeDescription
imageIMAGE
latentLATENT
widthINT
heightINT