Nodes/ComfyUI-LoRA-Block-Filter/Ideogram4 LoRA Block Weight
ComfyUI Node

Ideogram4 LoRA Block Weight

Ideogram 4 LoRA tuning, with the layer types spelled out

By DanrisiUA·Created 4 months ago·Updated 3 months ago· 36
Ideogram4 LoRA Block Weight
    • block_weights
    presetall_enabled
    attn_qkv1.00
    attn_out1.00
    mlp1.00
    adaln1.00
    input_proj1.00
    llm_cond_proj1.00
    final_layer1.00
    block_vector1.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

    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_only and custom, this node adds two it doesn't share with the Anima/Flux versions: early_blocks (which drops final_layer only) and late_blocks (which drops the input and LLM-conditioning projections). The no_style_leak preset here zeroes llm_cond_proj and pulls adaln down - 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.

    CategorySmart LoRA

    Inputs (9)

    NameTypeDefaultDescription
    presetCOMBOall_enabled10 options: all_enabled, character_detail, no_style_leak, face_focused, style_transfer, attn_only, +4
    attn_qkvFLOAT1.000–2Attention QKV projection weight
    attn_outFLOAT1.000–2Attention output projection weight
    mlpFLOAT1.000–2SwiGLU MLP (w1/w2/w3) weight
    adalnFLOAT1.000–2AdaLN modulation weight (timestep conditioning)
    input_projFLOAT1.000–2Input projection (latent→hidden) weight
    llm_cond_projFLOAT1.000–2LLM conditioning projection (text→hidden) weight
    final_layerFLOAT1.000–2Final output layer weight
    block_vectorSTRING1.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.0Per-block multiplier (34 values, comma-separated). Applied on top of layer type weights.

    Outputs (1)

    NameTypeDescription
    block_weightsIDEOGRAM4_BLOCK_WEIGHTS