K2 Advanced Sampler
The Krea 2 Turbo sampler that skips the scheduler hunting
- model
- positive
- negative
- latent_image
- output
- denoised
- options
If you've tried to run Krea 2 Turbo in ComfyUI you already know the annoying part: stock KSampler gives you a generic grid, and Turbo is a distilled flow-matching model that wants its own sigma schedule, its own shift, and about eight steps. K2 Advanced Sampler is the all-in-one fix from the ComfyUI-Krea2-FlowLab pack - one node that builds the model-native grid, runs a custom flow solver over it, and spits out a latent you can decode. Same shape as a normal KSampler, zero scheduler hunting.
It's an experimental inference-time solver, not anything Krea ships. The author (a solo dev, and this pack is brand-new enough that nobody's really beaten on it in public yet) is upfront that it's a math experiment layered on top of ComfyUI's sampling contract. Treat it as something to A/B against your current setup, not a guaranteed upgrade.
How it works
The node internally does what the pack's other two nodes do separately: it builds the Krea-2 sigma grid from the model's own model_sampling configuration (the native schedule reproduces the shift baked into Turbo, 1.15), then hands the latent to a custom sampler that makes one model evaluation per step. That solver is the whole pitch: a variable-step Adams-Bashforth-2 correction on top of Euler, gated by a curvature check (if the velocity field turns sharply between steps, it falls back toward plain Euler), with global and local trust-region limits on how much the multistep correction is allowed to push. There's an eta knob too, but it only injects noise in the middle of the trajectory - controlled by eta_start/eta_end - so the start and end stay deterministic.
The inputs that matter
For Krea 2 Turbo, the author's recommended first test is simple:
- steps
8, cfg1.0, denoise1.0- Turbo is guidance-distilled, so cfg stays at 1 - preset
balanced- the default;euleris your debug baseline (it disables the correction and gives you plain one-call Euler on the native grid) - schedule_profile
native-structurepushes more steps early,detaillate,balancedis a mild midpoint compromise - eta
0.0first, then try0.15–0.35for the stochastic middle window
The four solver widgets (correction_strength, curvature_threshold, trust_ratio, local_trust) are ignored unless you set preset to custom - each preset carries its own values, so don't twist them and wonder why nothing changes. The optional full_profile dropdown is the headline feature: leave it on 00 Manual widgets to use the visible controls, or pick one of the 21 named profiles (tiered SAFE / NORMAL / CREATIVE / EXTREME) and it overrides preset, schedule and stochastic settings together. 01 MY BEST - balanced native eta 0.35 is the author's saved winner. The EXTREME ones are deliberate stress tests; expect artifacts.
Outputs
- output (LATENT) - the finished latent, straight into a VAE Decode
- denoised (LATENT) - the last full denoise estimate; handy for comparing, especially on partial denoise
- options (OPTIONS) - a debug object showing exactly which sampler/scheduler/profile actually ran, useful when a full_profile is overriding you
Installing it
No pip install and no model downloads - the node uses only PyTorch plus modules ComfyUI already ships, and it assumes you already have the Krea 2 files loaded through ComfyUI's native loaders (UNETLoader + CLIPLoader type: krea2 + the Qwen-Image VAE). You still need all three of those.
cd ComfyUI/custom_nodes
git clone https://github.com/ekkonwork/ComfyUI-Krea2-FlowLab.git
Restart ComfyUI; you should see [K2 FlowLab] loaded in the console. From the ComfyUI root you can run python custom_nodes/ComfyUI-Krea2-FlowLab/verify_install.py to confirm all three nodes registered.
Common issues
- Nodes don't appear - folder must be exactly
ComfyUI/custom_nodes/ComfyUI-Krea2-FlowLab, then a full restart. Check the console for anIMPORT FAILEDline. - Result looks worse than your old sampler - that's expected and normal. Turbo is distilled for a short trajectory, so stronger correction isn't automatically better. Go
native + conservative + eta 0and keep the original workflow for A/B. - No speedup - correct. It's still one DiT call per step; the correction happens tensor-side. The pitch is quality at 8 steps, not fewer calls.
Inputs (19)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| positive | CONDITIONING | — | |
| negative | CONDITIONING | — | |
| latent_image | LATENT | — | |
| seed | INT | 00–18446744073709550000 | — |
| steps | INT | 81–1000 | — |
| cfg | FLOAT | 1.000–100 | — |
| denoise | FLOAT | 1.000–1 | — |
| preset | COMBO | balanced | 5 options: euler, conservative, balanced, detail, custom |
| schedule_profile | COMBO | native | 4 options: native, balanced, structure, detail |
| correction_strength | FLOAT | 0.620–1.25 | — |
| curvature_threshold | FLOAT | 0.340.02–2 | — |
| trust_ratio | FLOAT | 0.340–2 | — |
| local_trust | FLOAT | 0.850–4 | — |
| eta | FLOAT | 0.000–1 | — |
| eta_start | FLOAT | 0.250–1 | — |
| eta_end | FLOAT | 0.720–1 | — |
| s_noise | FLOAT | 1.000–2 | — |
| full_profileopt | COMBO | 00 Manual widgets | 22 options: 00 Manual widgets, 01 MY BEST - balanced native eta 0.35, 02 REFERENCE - Euler deterministic, 03 SAFE - clean conservative, 04 SAFE - portrait, 05 SAFE - architecture geometry, +16 |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| output | LATENT | — |
| denoised | LATENT | — |
| options | OPTIONS | — |