UPDATE: ComfyUI: recommend at ~10 steps with bong_tangent / er_sde — start there.
**"Turbo or base CFG?"** Turbo. CFG 1.0, 8 steps.
**"Why does my negative prompt do nothing?"** Because CFG is 1.0. Negative
prompts require classifier-free guidance, which a distilled model doesn't run.
This isn't a bug and there's no setting to change.
**"Can I use my Illustrious/Pony prompts?"** Not directly. Rewrite them as
sentences. Booru tags are a vocabulary this model was never trained on.
**"Why is it slow?"** Cost scales with total tokens, and text and image share
one attention sequence. 832×1216 is roughly 2x the cost of 624×912.
**CFG 1.0. Not 3.5, not 7.** This is guidance-distilled. Raising CFG does not
make it follow the prompt harder — it runs the transformer twice per step
(so ~2x the time) and blows out contrast. If your images look burnt or
over-saturated, CFG is the first thing to check.
| setting | value |
|---|---|
| **CFG** | **1.0** |
| **Steps** | **8** (4–8 all work; 8 is the sweet spot) |
| **Sampler** | Euler — flow-matching (`FlowMatchEulerDiscreteScheduler`) |
| **Scheduler / sigmas** | linear / normal |
| **Shift** | 3.1582 (Krea 2's own default — leave it alone) |
| **Negative prompt** | **does nothing.** Inert at CFG 1.0. Don't bother writing one. |
| **Resolution** | 832×1216, 1216×832, or 1024×1024 |
There is only one sampler for this architecture. Krea 2 is a rectified-flow
model — Euler a, DPM++ 2M, UniPC and friends solve a different equation and
simply aren't options. If your UI shows a sampler list, pick Euler.
**On the sigma scheduler:** I ran a blind 4-way test (linear / karras /
exponential / beta, two seeds). The curves measurably differ but the difference
is not visible — blind rankings came out anti-correlated between seeds. Use
linear and don't think about it again.Description
FAQ
Comments (55)
Run this as a turbo model or base model CFG? Also First! I know you haven't had time to upload the particulars yet .
Turbo
Getting and error on load:
# ComfyUI Error Report ## Error Details - Node ID: 173:165 - Node Type: UNETLoader - Exception Type: RuntimeError - Exception Message: RuntimeError: Error(s) in loading state_dict for SingleStreamDiT: size mismatch for blocks.0.mod.lin: copying a param with shape torch.Size([6, 6144]) from checkpoint, the shape in current model is torch.Size([36864]).
I'm using: qwen3vl_4b_fp8 text_encode and Qwent_image_vae. Is this set-up for something different?
i'm getting the torch.size 6,6144 error too.
on latest forge neo and used krea2realvae_v10 and qwen3vl_4b_bf16
\Stable Diffusion WebUI Forge - Neo\venv\Lib\site-packages\torch\nn\modules\module.py", line 2639, in load_state_dict
raise RuntimeError(
...<3 lines>...
)
RuntimeError: Error(s) in loading state_dict for SingleStreamDiT:
size mismatch for blocks.0.mod.lin: copying a param with shape torch.Size([6, 6144]) from checkpoint, the shape in current model is torch.Size([36864]).
Exception Message: RuntimeError: Error(s) in loading state_dict for SingleStreamDiT: size mismatch for blocks.0.mod.lin: copying a param with shape torch.Size([6, 6144]) from checkpoint, the shape in current model is torch.Size([36864]). size mismatch for blocks.1.mod.lin: copying a param with shape torch.Size([6, 6144]) from checkpoint, the shape in current model is torch.Size([36864]). same error
yeah im getting errors in comfyui too.
Same error here.
Same here:
# ComfyUI Error Report ## Error Details - Node ID: 82:68 - Node Type: UNETLoader - Exception Type: RuntimeError - Exception Message: RuntimeError: Error(s) in loading state_dict for SingleStreamDiT: size mismatch for blocks.0.mod.lin: copying a param with shape torch.Size([6, 6144]) from checkpoint, the shape in current model is torch.Size([36864]).
I have the same problem as you. However, the author provides no explanation.
▎ Confirmed — that's a bug in how I converted the file to single-file format, not your setup. Your text encoder and VAE are correct. The modulation tensors got written in the wrong shape. Fix is built, uploading a corrected version shortly. Sorry for the trouble, and thanks for the clear
▎ error report — it named the exact tensor, which made it quick to find.
fix is uploaded
@bonkaiii187 Thank you for the update. :) This model looks really good. Do you have any plans to release a fp8 version?
@belember i can if people want it
@bonkaiii187 Don't bother with FP8; int8 is fine. Takes all of 15 seconds using the comfy tools sscript.
@bonkaiii187 Hmm, I am still getting an error:
Possible reason: ComfyUI execution error (Node 4: UNETLoader): Error(s) in loading state_dict for SingleStreamDiT:
size mismatch for last.modulation.lin: copying a param with shape torch.Size([12288]) from checkpoint, the shape in current model is torch.Size([2, 6144]).
I get errors whether the model is in the diffusion or stable diffusion folders
@clueless_engineer Do you know if an int8 will run on an AMD video card? I know fp8 does.
@bonkaiii187 An fp8? Yes, please.
@belember @bonkaiii187 Yep still same shape error. I'm getting the error @belember listed
uploading a 2nd fixed version now and i just added an fp8 version as well
@bonkaiii187 Thank you, downloading ...
@bonkaiii187 Thank you! Grabbing it now...
@bonkaiii187 Latest fix worked for me. Thanks so much for the amazing model!
Thanks, now for me is working :) , great one
@bonkaiii187 I didn't feel like this needed it's comment, but no matter what vae ,text encoder or res i use i get this weird diamond cross stitching effect on everything. it goes from subtle to very obvious depending on the surface. not sure if this is a forge neo thing, or somehthing, but thought i would bring it up.
@Marukyu9 haven't heard anyone else say anything about it i would guess it's forge neo. but i know what could cause that type of thing if it's the model
@bonkaiii187 okay, i think i figured it out, i was using --pynvml , removing it cleaned it up mostly.
Still getting errors with the fixed model :(
RuntimeError: Error(s) in loading state_dict for SingleStreamDiT:
size mismatch for last.modulation.lin: copying a param with shape torch.Size([12288]) from checkpoint, the shape in current model is torch.Size([2, 6144]).
model.diffusion_model.last.modulation.lin is what needs changed.
weird i'll try a new version
uploading a 2nd fixed version now and i just added an fp8 version as well
@bonkaiii187 Hi, I tried the fp8 version and I get more errors. I tried moving the model from and back again from the diffusion to the stable_diffusion folders to see if it is a location issue (I use SwarmUI)
ComfyUI execution error (Node 4: CheckpointLoaderSimple): Error(s) in loading state_dict for SingleStreamDiT:
size mismatch for last.modulation.lin: copying a param with shape torch.Size([12288]) from checkpoint, the shape in curr
ent model is torch.Size([2, 6144]).
@belember i'm using mps so i can't test the fp8 versions but if you keep giving me the errors i can fix it. i'm uploading a fix now
@bonkaiii187 2nd fix worked for me. the Fp8 did not.
@bonkaiii187 The new fp8 version is working!!!! yeah!!!! Thank you :)
Third times the charm lol. Working great now, thanks for the excellent model!
@bonkaiii187 working for me now. :D thank you!
@bonkaiii187 Your older FP8 looks like it's still up, not sure if that's intentional. One has "fixed" at the end of the filename though.
@TrashWaifuIsBestWaifu cleaned it up :)
Very nice model. Like the aesthetic. For some reason seems like it wants cfg 1.0 > 15-20 steps rather than 8 to not look grainy/dirty/hair frizzed out. I use euler/simple by default, sometimes euler/beta or er_sde. This one and badMilkMelanch seem to want more steps.
Thanks — glad the aesthetic lands!
That grain is almost certainly the noise schedule rather than the step count. it expects shift ≈ 3.1582. If shift is left at 1.0 or
wherever your node defaults, the last sigma doesn't land near zero and you're left with residual noise — which shows up exactly as grainy/dirty/frizzed-out hair. More steps hides it by subdividing the tail, which is why 15–20 works.
Worth a try: euler/simple at 8 steps with shift set to 3.1582 (a ModelSamplingSD3 / ModelSamplingFlux node exposes it if your sampler doesn't). If that cleans it up, you get your speed back.
The fact that badMilkMelanch behaves the same way is a good sign it's a Krea-2-wide scheduler thing rather than either model.
Fair warning — I generate through diffusers rather than ComfyUI, so I can't verify node names on my end. But shift is the first thing I'd check.Thanks for the response. A shift setting is new to me. I'll look around w/ my existing nodes and if I can't find a shift setting there, I'll look to git clone one. (Yes, I'm using comfyui)
@subterranian
No cloning needed — ModelSamplingSD3 is built into ComfyUI core. Add Node → advanced → model → ModelSamplingSD3. It has a single shift widget.
Set it to 3.1582 and wire it between the model loader and your sampler:
UNETLoader → ModelSamplingSD3 (shift 3.1582) → KSampler
Then try euler/simple at 8 steps again. If the grain clears, that was it.
If your build loads Krea 2 at all it'll have that node — it's been core since SD3, long before Krea. Worth checking whether the Krea workflow you're using already has one in the chain with a different value, too.@bonkaiii187 Great info. I'll try it out and let you know how it works. Thanks.
@bonkaiii187 Node doesn't work. I get a black screen output no matter what number I put in there. Have any other comfy users ever complained or mentioned the need for a shift adjustment?
@bonkaiii187 I have the same issue with comfyUI. Tried to set the shift as you said and to use FlowMatchEulerDiscreteScheduler as a scheduler (sampler is Euler), but still this grainy/strange noise in final image.
@notaclue1913810 It could be the fp8 version. i didn't test it very much. try the bigger bf16 version if you have the fp8.
@bonkaiii187 I tried to adjust shift with the modelSamplingAuraFlow node and it works pretty well at 0.72. It's a very narrow range that fixes the problem. With badMilkMelanch anything b/t 1.73 an 3.15 works pretty well. My only concern which I'm not 100% sure about is whether having the shift that low is introducing deformities.
@bonkaiii187 a INT8 version would be perfect I guess
@bonkaiii187 My bad. er_sde/beta works well. I was stuck on every variation of euler and euler_a, and even er_sde/simple wasn't clear. But er_sde/beta is perfectly acceptable. Sorry for the mixup.
@subterranian Awesome! :)
Something's not right with the FP8 version. I can't run the BF16, 16G of vram here, but I've ran a LOT of krea 2 models and this is the only one I can't get to "work right." I've typically used the mu=1.15 with ModelSamplingFlux as well as trying the nodes the other comments have suggested, even just removed the shift to use what the model had being a turbo model, but nothing but more steps makes it get better, and even then, every image is grainy with a cross hatch pattern. Even on the toughest krea 2 model, I can throw euler_a at it and kick steps up and there is some scheduler that will do the trick, but this one is really giving me fits. I hate to come on here and say something's wrong but... this is literally the only krea 2 model I can't get good images out of. It's a shame to because it looks amazing.
You're not doing anything wrong — the FP8 file is genuinely broken and I'm pulling it. Thank you for pushing on this instead of just walking away.
I can't test fp8 so I'm not sure if i should try building another one blindly or not.
@bonkaiii187 I have to say, I downloaded the BF16 and it was basically the same experience. Honestly didn't know I could run it but with offload it worked. There is something about this model that makes it not very flexible on sigmas, sampler, and flow. I eventually installed the flow matching euler scheduler, even tried the custom node, and basically it was by far the best, but it wasn't until around 25 steps that the classic "qwen image" vae look stopped being obvious and at those higher steps it was throwing in a ton of detail. Dropping mu down to .25 or .5 helped a lot but feels not right given that the normal mu for a turbo krea2 model is 1.15 fixed regardless of res. I'm of the opinion that turbo krea2 models should work with euler or euler_a and simple scheduler at 8-12 steps, so yours is the odd one out for sure.
I can definitely use it but it's still just a bit on the gritty side no matter what I do. I'll see if there's anything in the prompt that can smooth it out a bit and keep playing with it. FWIW, I converted the BF16 to an int8 convrot using the comfy kitchen quant node so it would blaze on my 50 series card.
@r2doobie582 This is really useful, thank you — and it points at something I got wrong in the model card.
Two things I checked after your comment:
The LoRA bake isn't the cause. I measured the weight perturbation from the three baked LoRAs: 0.37% median, 1.9% worst case. Far too small to de-calibrate anything.
But the base model is the answer. This is merge recommendation for it is 10 steps with bong_tangent / er_sde — not euler/simple. So the scheduler pickiness you're hitting is inherited from the base, not introduced by me. Worth trying that combination directly.
My "8 steps, euler, simple" advice was extrapolated from my own diffusers pipeline, where that genuinely is what it wants. I never validated it against ComfyUI or against what the base model actually prefers, and you've now spent real time on advice that was wrong for your setup. I'm updating the card.
It's a shame I can't get 23GB to start. The last time I tried phobos5, my PC froze for 15+ minutes despite the swap partition 🥹











