K2 Regional Sampler
The Krea 2 sampler that knows your two characters are in boxes
- model
- positive
- negative
- latent
- plan
- latent
- report
The first thing to know about K2 Regional Sampler is that the "K2" isn't a sampler. It's a KSampler with a phone line to a region plan. Wire a plan in and it starts reporting its denoising progress to the plan after every step, which lets the K2 attention router do two things a plain KSampler can't: relax its spatial binding late in the schedule so region edges don't look pasted on, and rebalance per-region LoRA strength from the measured LoRA delta. Leave the plan unconnected and it behaves like a completely ordinary KSampler - the report output even says no_plan_connected, which is this node being honest about itself.
It's the sampling half of FVMtools' K2 Lab, a graph-native re-creation of Krea's K2Lab desktop tool for regional control on Krea 2. What makes regional control on Krea 2 interesting (and hard) is that it's a single-stream MMDiT: text and image tokens run through one sequence through the same 28 blocks, so there's no second conditioning branch to hang a second character on. Regional control has to happen inside the attention logits, and that's the K2 Compose → K2 Regional Sampler pair: Compose compiles the plan, this node runs the denoising and feeds progress back. Two characters, two LoRAs, one denoising pass, no crop compositing.
The settings that matter
Krea 2 Turbo is distilled for 8 steps, CFG 1.0, euler / simple - those are the node's defaults and they're the right ones. The CFG tooltip says it plainly: Turbo is CFG-free, and raising it is usually not an improvement. The RAW model is a different animal and wants CFG above 1, but you'll be on Turbo for most regional work because it's fast enough to iterate. denoise defaults to 1.0 for text-to-image; drop it when you're editing a supplied latent.
Honestly, after the first run the only inputs you touch are seed and maybe steps. Everything else comes from upstream.
Where it sits in the workflow
The minimal graph is K2 Region(s) → K2 Compose → this sampler → VAE Decode → Save. The model, positive, negative and latent inputs are the patched model and compiled conditioning from K2 Compose - Compose supplies an empty latent, but any compatible latent works, which is what makes regional editing possible. The optional plan input is what turns this from a KSampler into a regional sampler.
Outputs are latent for VAE Decode and report, a JSON string genuinely worth reading when something looks off. main_stream_attention_calls should be above zero (28 blocks × steps); if it's zero your sequence length doesn't match. A lora_delta_statistics[].delta_rms of 0 means the LoRA isn't taking. There's a sibling FVM_K2_PlanReport node if you want to inspect the plan without spending a generation on it.
Installing it
Same as the whole pack:
cd ComfyUI/custom_nodes
git clone https://github.com/ping1979ping/comfyui-FVMtools
Then restart ComfyUI. K2 Lab wants none of the pack's heavier requirements - the insightface/onnxruntime stack in requirements.txt is for the Face Tools. It runs on the numpy and torch ComfyUI already ships, plus a Krea 2 model (the K2 Load Krea 2 node bundles transformer, Qwen encoder and VAE in one). Krea 2 Turbo runs comfortably on FP8, so you don't need a monster GPU for regional work.
Gotchas
The router takes over ComfyUI's optimized_attention_override, so don't chain a second node with the same hook onto the same MODEL branch. And if you forgot the plan, you're paying KSampler prices for a KSampler result - check the report before you blame the model or the LoRA.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | Patched model from K2 Compose. | |
| positive | CONDITIONING | Compiled positive conditioning. | |
| negative | CONDITIONING | Global negative conditioning. | |
| latent | LATENT | Starting latent — K2 Compose supplies an empty one, but any compatible latent works. | |
| seed | INT | 00–18446744073709550000 | Noise seed. Same seed + settings reproduces the run. |
| steps | INT | 81–1000 | Krea 2 Turbo is distilled for ~8 steps. |
| cfg | FLOAT | 1.00–100 | Turbo is CFG-free; raising this is usually not an improvement. The RAW model uses CFG > 1. |
| sampler_name | COMBO | euler | euler is the Krea 2 Turbo default. |
| scheduler | COMBO | simple | simple is the Krea 2 Turbo default. |
| denoise | FLOAT | 1.000–1 | 1.0 for text-to-image; lower values keep more of a supplied latent (img2img / regional edit). |
| planopt | K2_PLAN | K2 Compose plan. Enables late-step relaxation, LoRA-delta adaptation and the report. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| latent | LATENT | — |
| report | STRING | — |