Nodes/ComfyUI-gen2/Compose Ideogram4 V9 Trigger Activator
ComfyUI Node

Compose Ideogram4 V9 Trigger Activator

Binding your Ideogram4 embedding to its 36 text-encoder LoRAs

By petmycat·Created 7 months ago·Updated 19 days ago· 23
Compose Ideogram4 V9 Trigger Activator
  • embedding
  • te_adapter
  • activator
embedding_strength1.00
internal_strength1.00

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 of Gen2_LoadIdeogram4V9TriggerEmbedding.
  • te_adapter - output of Gen2_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.

CategoryGen2/Ideogram4 Trigger V9

Inputs (4)

NameTypeDefaultDescription
embeddingGEN2_IDEOGRAM4_V9_TRIGGER_EMBEDDING
te_adapterGEN2_IDEOGRAM4_V9_TRIGGER_TE_MODULE_LORA
embedding_strengthFLOAT1.00-10–10
internal_strengthFLOAT1.00-10–10

Outputs (1)

NameTypeDescription
activatorGEN2_IDEOGRAM4_V9_TRIGGER_ACTIVATOR