π BV Regional FLUX.2 Klein 9B Attention
Regional routing for FLUX.2 Klein 9B, locked to the exact architecture
- model
- clip
- regional
- lora_registry
- lora_bindings
- patched_model
- positive
- negative
FLUX.2 Klein 9B is the distilled daily driver a lot of people run in mid-2026 - four steps, CFG 1, great detail, and a license that keeps the ecosystem honest about what it's for. It's also, like Z-Image Turbo, a guidance-distilled model with no conventional negative branch. BV Regional FLUX.2 Klein 9B Attention is the pack's regional backend for it: joint-attention routing through the exact Klein 9B architecture, with zero negative conditioning and normal KSampler compatibility.
The "exact" in that sentence is doing real work. The pack deliberately gates this node to the precise FLUX.2 Klein 9B architecture - Qwen3-8B text contexts routed through all double- and single-stream joint-attention blocks. It rejects Klein 4B, full FLUX.2, and unrelated models instead of applying a speculative patch. If you've got the 4B, the pack would rather you use a different node than guess at a seam that doesn't exist. That's the right call for a patch that reaches inside model internals.
How it works
Global, Background, and regional text contexts are routed through the model's joint attention: Global stays available throughout, Background is confined to uncovered pixels, each region's text is exposed inside its rendered mask, and joint overlaps expose every participating region. The output is a patched_model plus positive and negative - the negative being zero, because the distilled 9B profile has no conventional negative-prompt branch. You feed the KSampler as normal; no BV-specific sampler required.
One thing the README is unusually explicit about: this backend does not repair your sampling configuration. The sampler, scheduler, step count, guidance, LoRAs, and model-sampling settings remain yours to own. The pack's own first test runs used unsuitable external sampling settings and produced equally bad results with and without the BV node - which is the cleanest possible demonstration that regional routing is a routing layer, not a quality fixer. For a meaningful A/B, hold everything constant and change only the backend.
The knobs
attention_strength (default 1.0), start_percent (0.0), end_percent (0.5). As with the sibling attention nodes, strength zero hides regional/Background slots rather than bypassing the patch - bypass the node for a true unpatched comparison. And the controls are independent from each region's own strength; both work together, neither replaces the other.
Install and the model question
Search BV Node Pack in ComfyUI Manager, or:
cd ComfyUI/custom_nodes
git clone https://github.com/BlackVortexAI/bv_nodepack.git
Restart, hard-refresh with Ctrl + F5. No extra pip dependencies. The node doesn't bundle weights - and the README flags that the FLUX.2 Klein 9B weights you'd load remain subject to the FLUX Non-Commercial License. Worth knowing before you build a workflow you planned to sell around.
The honest take
This is the node you reach for when your Klein 9B output keeps blending two subjects who should stay separate. Its exact-architecture gate means fewer false-positive "supports this model" claims than the average attention-patching node, and the documented caller-owned sampling stance is refreshingly straight. Just verify your base sampling is already good before you blame or credit the regional layer - the pack tested both directions and the routing didn't save a bad setup.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | β | |
| clip | CLIP | β | |
| regional | BV_REGIONAL | β | |
| attention_strength | FLOAT | 1.000β1 | β |
| start_percent | FLOAT | 0.0000β1 | β |
| end_percent | FLOAT | 0.5000β1 | β |
| lora_registryopt | BV_LORA_STACK_REGISTRY | β | |
| lora_bindingsopt | BV_REGIONAL_LORA_BINDINGS | β |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| patched_model | MODEL | β |
| positive | CONDITIONING | β |
| negative | CONDITIONING | β |