Compose Ideogram4 V9 Trigger Activator
Binding your Ideogram4 embedding to its 36 text-encoder LoRAs
- embedding
- te_adapter
- activator
The V9 trigger chain has five nodes, and this is the one that does the marriage. Gen2_ComposeIdeogram4V9TriggerActivator takes the two halves you loaded - the [4,H] embedding and the 36 module-LoRA TE adapter - and fuses them into a single activator object that the trigger text encoder can consume. Think of it as the compatibility check and packaging step in one: it won't let you run a trigger whose two halves don't belong together.
Why a middleman node exists at all
A V9 trigger is a two-part mechanism, and the parts are only valid as a matched set. The embedding carries the trained semantic token; the TE module-LoRAs reshape how the Qwen3-VL encoder processes that token. Pair them wrong and you get garbage conditioning - or worse, a subtle off-target result that's hard to debug. So the composer enforces a hard rule: both artifacts must carry the same compatibility fingerprint, or it raises a ValueError before anything runs. That's the "mandatory fingerprint-matched" bit in the description, and it's the reason you should keep trigger artifact pairs together when you download them. Grab an embedding from one trainer and a TE adapter from another, and the composer will (correctly) tell you no.
There's a second thing the composer does that's easy to miss: it's where you set the trigger's strengths. Two of them, and they're different knobs:
embedding_strength(default 1, range −10 to 10) - how hard the[4,H]embedding pushes.internal_strength(default 1, range −10 to 10) - how hard the 36 TE module-LoRAs push.
The split exists because the two mechanisms can be tuned independently: crank internal_strength when the concept isn't coming through the encoder strongly, back it off if the trigger is overwhelming the rest of the prompt. The wide ±10 range is unusual - most LoRA weights live around 1.0 - but negative strengths are a legitimate experiment here (inverting a trigger's influence). If either value is non-finite, the composer throws rather than propagating NaN into your sampler. That fail-closed habit is the pack's whole personality, and on a fiddly chain like this it's a feature.
The inputs, summarized
embedding- output ofGen2_LoadIdeogram4V9TriggerEmbedding.te_adapter- output ofGen2_LoadIdeogram4V9TriggerTEAdapter.embedding_strength,internal_strength- the two independent strengths above.
Single output: activator (GEN2_IDEOGRAM4_V9_TRIGGER_ACTIVATOR), which wires into Gen2_Ideogram4V9TriggerTextEncode - or into Gen2_Ideogram4V9TriggerDiagnostics if you want to inspect it first.
Install
ComfyUI Manager: search ComfyUI-gen2. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/petmycat/ComfyUI-gen2.git
cd ComfyUI-gen2
pip install -r requirements.txt
Restart. No models live in this node - it's pure artifact wiring - but you'll need your trigger artifacts in ComfyUI/models/gen2/ and a native Ideogram4/Qwen3-VL backend for anything downstream to run. One caveat to keep in view: this whole V9 path is pre-parity in the author's own words, so treat strength tuning as exploration, not documented science.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| embedding | GEN2_IDEOGRAM4_V9_TRIGGER_EMBEDDING | — | |
| te_adapter | GEN2_IDEOGRAM4_V9_TRIGGER_TE_MODULE_LORA | — | |
| embedding_strength | FLOAT | 1.00-10–10 | — |
| internal_strength | FLOAT | 1.00-10–10 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| activator | GEN2_IDEOGRAM4_V9_TRIGGER_ACTIVATOR | — |