Ideogram4 LoRA Block Weight
Ideogram 4 LoRA tuning, with the layer types spelled out
- block_weights
Ideogram 4 is a 34-layer single-stream DiT - text and image tokens flow through one unified stack, and it's the model that made people finally stop talking about CLIP. But its LoRAs work like every other LoRA: one global strength, applied everywhere, whether the subject needed it in the attention layers or just the final projection. Ideogram4 LoRA Block Weight is the node that gives you per-block and per-layer-type control instead.
It's the configurator half of the ComfyUI-LoRA-Block-Filter pack (by Danrisi, the Anima "UltraReal" fine-tuner). It doesn't touch any models - it builds a weight configuration and hands it to the sibling Ideogram4 LoRA Filter (Blocks) node, which does the loading and patching. A slightly unusual pick for this pack since Ideogram 4's ecosystem was stalled out by its license within a month of release, but if you're running the fp8 or nf4 checkpoints locally and training your own LoRAs, this is the tool for controlling what they do.
Inputs
- preset - ten options. Beyond the shared
all_enabled,character_detail,no_style_leak,face_focused,style_transfer,attn_only,mlp_onlyandcustom, this node adds two it doesn't share with the Anima/Flux versions:early_blocks(which dropsfinal_layeronly) andlate_blocks(which drops the input and LLM-conditioning projections). Theno_style_leakpreset here zeroesllm_cond_projand pullsadalndown - on Ideogram 4, prompt/style conditioning comes through the LLM text path, so that's where leak suppression lives. - The seven layer-type sliders, each with the author's own tooltip to lean on:
- attn_qkv - attention QKV projection
- attn_out - attention output projection
- mlp - the SwiGLU MLP (w1/w2/w3)
- adaln - AdaLN modulation (timestep conditioning)
- input_proj - input projection (latent→hidden)
- llm_cond_proj - LLM conditioning projection (text→hidden)
- final_layer - final output layer
- block_vector - 34 comma-separated multipliers, one per layer, applied on top of the layer-type weights (the tooltip says exactly that).
Two levels of control, same as the Flux version of this node: coarse sliders for layer type, then a per-layer vector for surgical edits. Want attention on early layers but not late ones? You can do that with the vector alone.
Output
A single block_weights output of type IDEOGRAM4_BLOCK_WEIGHTS, which plugs into the block_weights input on Ideogram4 LoRA Filter (Blocks). Nothing else passes through this node.
Install
ComfyUI Manager handles it under the pack title, or:
cd ComfyUI/custom_nodes
git clone https://github.com/DanrisiUA/ComfyUI-LoRA-Block-Filter
Restart, and you'll find it under Smart LoRA. No requirements.txt, no model downloads - this pack rides entirely on ComfyUI's built-in LoRA code.
One thing to know
Ideogram 4 shipped no bf16 checkpoint, only fp8 and nf4, and LoRA support in ComfyUI for it is recent - you want an up-to-date ComfyUI for any of this to make sense. And because the filter only recognizes ai-toolkit-style key names (diffusion_model.layers.N.*), a LoRA trained with unusual naming won't match the block logic and every key will pass through at full strength. Check the filter's info output to confirm it's actually filtering.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| preset | COMBO | all_enabled | 10 options: all_enabled, character_detail, no_style_leak, face_focused, style_transfer, attn_only, +4 |
| attn_qkv | FLOAT | 1.000–2 | Attention QKV projection weight |
| attn_out | FLOAT | 1.000–2 | Attention output projection weight |
| mlp | FLOAT | 1.000–2 | SwiGLU MLP (w1/w2/w3) weight |
| adaln | FLOAT | 1.000–2 | AdaLN modulation weight (timestep conditioning) |
| input_proj | FLOAT | 1.000–2 | Input projection (latent→hidden) weight |
| llm_cond_proj | FLOAT | 1.000–2 | LLM conditioning projection (text→hidden) weight |
| final_layer | FLOAT | 1.000–2 | Final output layer weight |
| block_vector | STRING | 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0 | Per-block multiplier (34 values, comma-separated). Applied on top of layer type weights. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| block_weights | IDEOGRAM4_BLOCK_WEIGHTS | — |