Krea 2 Model Sampling
Your Krea 2 is sampling at the wrong shift — this node fixes it
- model
- MODEL
Krea 2 has a shift problem, and ComfyUI doesn't fix it for you. If you've loaded Krea 2 Raw, run it with the settings the model card says, and gotten something that looks subtly wrong - soft details, mushy composition - this node is probably the missing piece. It sets the sampling shift correctly, which is exactly the knob that decides how much denoising effort goes into composition versus detail.
Don't confuse it with a sampler. Krea 2 Model Sampling is a model patcher, the same family as ModelSamplingFlux: it takes your loaded model in and hands you a patched MODEL back out. You wire that into your KSampler (or into the two-stage sampler from this same pack) and the rest of your workflow doesn't change.
What it actually does
Flow-matching models expose a shift parameter - Krea calls it mu in its docs - that controls how sampling effort is spread across the denoising trajectory. It's model-specific. Krea 2 Turbo expects a fixed shift of 1.15. Krea 2 Raw wants something that changes with resolution: Krea's official schedule starts around 0.5 at low resolutions and climbs to 1.15 at 1280×1280. ComfyUI loads Krea 2 with a generic shift that's right for the distilled Turbo path and wrong for Raw, which is the author's whole point in shipping this node.
Under the hood it clones your model and swaps in a ModelSamplingFlux-derived sampling object with set_parameters(shift=...). Nothing about the weights changes - it's purely a sampling-time patch. Three modes, straight from the tooltip:
raw_dynamic(default) - interpolates the shift between 0.5 and 1.15 based on your sampling width and height, matching Krea's resolution-dependent Raw schedule. This is the one you want for a non-turbo checkpoint.turbo_fixed- pins the shift to 1.15, as the distilled Turbo regime expects.manual- uses whatever you put inmanual_shift. For tinkering; it's marked as an advanced control.
The inputs that matter
model(MODEL) - your loaded Krea 2 Raw or Turbo.sampling_mode- pickraw_dynamicfor Raw,turbo_fixedfor Turbo. That's the whole decision 90% of the time.width/height- only consulted byraw_dynamic. Set them to your actual sampling resolution, or the interpolated shift will be off.manual_shift- only used inmanualmode.
The single output is the patched MODEL. Feed it straight into a sampler. If you're using the two-stage sampler from this pack for a Raw-then-turbo run, this node belongs on the stage-one model.
Installing it
No dependencies, no model files to download - the node itself is pure Python that leans on stock ComfyUI. The Krea 2 weights, Qwen3-VL text encoder and Qwen-Image VAE are separate downloads; this node just makes what you already loaded behave.
ComfyUI Manager: search "Two-Stage Sampler and Krea 2 Resolution Picker" and hit Install. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/Auryg/Krea-2-Two-Stage-Sampler
Restart ComfyUI and it appears under the Ashen3 category. It's from the same author (Auryg, who goes by u/AuryGlenz) as the well-regarded Ideogram JSON captioner, and it's registered with the Comfy registry, so Manager handles updates cleanly.
When it's worth it - and when it's a trap
If you're running pure Krea 2 Turbo at CFG 1, you don't strictly need this; ComfyUI's default is in the right neighborhood. Reach for it when you're using Raw - for stage one of a two-stage workflow, or any CFG-guided Raw run that looks a step off. One honest caveat before you chase your tail: some schedulers apply their own shift and silently ignore the one you set here. If the node seems to do nothing, switch scheduler before you conclude the node is broken.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| sampling_mode | COMBO | raw_dynamic | Raw uses Krea 2's official resolution-dependent shift. Turbo pins the shift to 1.15. Manual uses manual_shift. |
| width | INT | 102416–16384 | Sampling width; used only by raw_dynamic. |
| height | INT | 102416–16384 | Sampling height; used only by raw_dynamic. |
| manual_shift | FLOAT | 1.150–100 | Constant shift used only by manual mode. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |