Text Encoder Inspector (Qwen3-8B / Flux 2 Klein)
See which layers your prompt actually activates
- clip
- report
- json_data
What it is
FLUX Klein 9B's text encoder isn't CLIP - it's Qwen3-8B, a genuine language model, wrapped in a chat template and read as an instruction rather than a bag of tags. A community teardown of Klein's conditioning path found that hidden states from three specific layers (9, 18, and 27) get stacked together into what the diffusion model actually sees, which is also why prompt-weighting syntax like ((face:1.4)) does nothing on Klein - the encoder isn't reading tokens that way. This node is a diagnostic for that black box: run a prompt through it and see which of the encoder's layers actually lit up in response, instead of guessing.
It's a niche, specialist tool - nobody needs this for day-to-day generation. Where it earns its keep is troubleshooting: if Klein is ignoring part of your prompt, or a text-related quality problem shows up (garbled signage, a concept the model seems to half-understand), this tells you where in the encoder to go looking before you reach for the matching Deep Debiaser node to actually fix it.
How it works
Two modes, and they trade off speed against precision:
Quick mode (default) runs your prompt through the encoder once and captures activation magnitude per layer - fast, low VRAM, tells you which layers responded strongest to this specific prompt.
Ablation mode is slower and considerably heavier (the pack's own warning: roughly 3x model size in VRAM) - it systematically weakens each region and measures what changes, which gives you a more precise importance ranking than a single activation pass can, at real cost in time and memory. The pack's own advice is to run quick mode first and only reach for ablation if you need the extra precision.
Inputs and outputs that matter
clip- the Qwen3-8B text encoder, loaded the same way you'd load any CLIP/text encoder for Klein 9B.prompt- the text you want to analyze; defaults to a placeholder ("a photo of a cat sitting on a table") so you can test the node before wiring in anything real.analysis_mode-quickorablation_HEAVY.ablation_strength- how hard ablation mode weakens each region while measuring impact (0–1, default 0.5); only relevant in ablation mode.
Outputs: report (a human-readable summary of per-layer activation) and json_data (the same data structured for further processing, if you want to feed it into something else).
Installing it
No external backend needed - this node works the moment the pack is installed, same as the rest of the Deep Debiaser & Inspector suite. ComfyUI Manager (search "Realtime LoRA Trainer") or:
cd ComfyUI/custom_nodes
git clone https://github.com/ShootTheSound/comfyUI-Realtime-Lora
Restart ComfyUI.
Common issues
Ablation mode runs out of memory. The pack is upfront that this mode needs roughly 3x the model size in VRAM versus quick mode - if you're tight on memory, stick to quick mode, which gets you most of the useful signal (which layers respond to this prompt) at a fraction of the cost.
Results don't obviously tell you what to fix. This node only tells you where activation is concentrated, not what's wrong - pair it with the matching Text Encoder Deep Debiaser (Qwen3-8B / Flux 2 Klein) node, which is what actually lets you scale a specific layer's contribution up or down once you've identified it here.
Unsure this is worth the effort versus just re-prompting. For most day-to-day prompt problems, rewriting the prompt as a plain descriptive sentence (Klein reads instructions, not tag soup) fixes more than encoder surgery will. Reach for this node when re-prompting has already failed and you suspect the encoder itself is the bottleneck, not the wording.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | CLIP/Text Encoder to analyze (Qwen3-8B) | |
| prompt | STRING | a photo of a cat sitting on a table | Test prompt to analyze |
| analysis_mode | COMBO | quick | quick = activation stats (fast, low VRAM). ablation_HEAVY = layer importance via weakening (SLOW, 3x VRAM!) |
| ablation_strength | FLOAT | 0.50–1 | Only used in ablation mode. How much to weaken layers (0.5 = 50%) |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| report | STRING | Human-readable analysis report |
| json_data | STRING | JSON data for further processing |