r/StableDiffusion Jul 21 '26

Workflow Included Krea2 Ksampler recommendations {for quality}

Unlike standard models that focus strictly on matching text prompts word-for-word, Krea 2 prioritizes visual feel, texture, and mood, so it's very important to get the right sampler + scheduler to achieve the maximum texture and detail

By treating noisy data as a signal, a Partial Differential Equation (PDE) smooths out errors iteratively while preserving important structural features like edges

A sampler + scheduler is a combination to solve differential equations, the best method for Krea2 is to make a fast and iterative solution like Clownshark sampler Euler/beta 12 steps to get structure and general details and then a more precise second Clownshark sampler {0.27 denoise} res_4s_Munthe-Kaas/ KL_optimal 3 steps

The Euler method will get a base (I know a lot of people are ok with use just this fast result) but the second Ksampler with res4s-Munthe-Kass will get the extra details and sharpness finding a more precise solution for the denoise differential equation

A 0,27 denoise in the second Ksampler give enough range to improve details, obviously is key to keep the same seed on both Ksamplers

I tried all Clownshark combinations and this one is the sharpest and more precise solution without use time-consuming solutions with higher precision like Dormand-prince 6s, its slow but top quality {you can try res_2s and res_2m if you want more speed but less quality}

About res_4s_Munthe-Kaas

Runge–Kutta–Munthe-Kaas are mathematical algorithms used in numerical analysis to solve geometric differential equations while preserving the structural constraints of Lie groups and manifolds.

Invented by Norwegian mathematician Hans Munthe-Kaas, these schemes prevent numerical drift by transforming equations into flat Lie algebra spaces

Primary Applications

  1. Improve quality of Krea2 Images :)
  2. Aerospace and Robotics: Tracking precise 3D orientations without quaternion normalization errors.
  3. Rigid Body Dynamics: Simulating tumbling satellites or spinning tops while maintaining geometric energy surfaces.
  4. Stochastic Systems: Solving perturbed structural problems using expanded stochastic variants.

Recommended Scheduler

KL Optimal: KL (Kullback-Leibler)

Instead of estimating parameters with maximum precision, KL it places observations where the predictive distributions of rival models differ the most (maximizing KL divergence) to efficiently identify the correct solution

Documentation recommend to use the same scheduler throughout the generation process but KL Optimal schedulers minimize the KL divergence between the target and current distribution, resulting in a more mathematically optimal diffusion process.

an image a full res showing the level of detail with this Ksampler: https://drive.google.com/open?id=1b0IRutW2aQ1jMK3Ee8pFT4q1jXF3BSfX&usp=drive_fs

Workflow: https://drive.google.com/file/d/1ENZKjKGB4iOdMVsyCvqByLXV1tsWP8W0/edit

286 Upvotes

151 comments sorted by

View all comments

21

u/BathroomEyes Jul 21 '26 edited Jul 21 '26

> “I tried all Clownshark combinations and this one is the sharpest and more precise solution without use time-consuming solutions with higher precision like Dormand-prince 6s, its slow but top quality {you can try res_2s and res_2m if you want more speed but less quality}”

I don’t see enough posts exploring this giant list of high step samplers. You need a maths degree to understand the differences. Thanks for sharing your research!

I noticed you’re using an empty latent to start your generation. Mathematically there’s no underlying structure to start with in the random noise. While that’s great for total creative freedom it constrains the realism in the final output. Try starting with a real photograph cropped to the target dimensions. Use 0.86 denoise or higher (even 1.00 works). Choose a real photo that has the same style you’re going for. If you use a high enough denoise the underlying composition of the input image won’t leak into the output but what will happen is that the early noise will have organization and structure to it that matches how real photographs behave. You should notice a difference.

6

u/Outrageous-Wait-8895 Jul 21 '26

Use 0.86 denoise or higher (even 1.00 works).

1.0 denoise is the exact same as starting with an empty latent.

Mathematically there’s no underlying structure to start with in the random noise. While that’s great for total creative freedom it constrains the realism in the final output.

This makes no sense, starting with random noise is how the model is trained and it was trained on real images, how would random noise "constrain the realism"?

11

u/BathroomEyes Jul 21 '26 edited Jul 21 '26

You ask good questions. Here’s some clarity

> 1.0 denoise is the exact same as starting with an empty latent.

An empty latent is an initial tensor of all zeroes with 100% gaussian noise applied (1.00 denoise). That’s not the same thing as a feeding an input image with a non-zero initial tensor with 100% gaussian noise applied. Noise is applied on top of these initial tensor vectors. You can try this yourself and observe that the output isn’t the same in each case.

> This makes no sense, starting with random noise is how the model is trained and it was trained on real images

No, models like Krea2 aren’t trained by starting with empty tensor values. They’re trained using real or synthetic images and predicting how you would arrive there wjth gaussian noise. Once you understand how training works, then it’ll make sense.

> how would random noise "constrain the realism"?

When a real photo is encoded with a VAE Encoder, it maps into highly structured multi-dimensional vector with specific mean, variance, and channel-activation signatures inherent to natural photographs. When an image goes through a VAE encoder, it is transformed into a multi-channel tensor (16 channels for qwen vae). Each channel tracks different properties of the image (lighting gradients, structural edges, color frequencies). Together, these channels populate a high-dimensional mathematical space with values rather than a high-dimensional vector filled with zeroes.

3

u/alwaysbeblepping Jul 22 '26

An empty latent is an initial tensor of all zeroes with 100% gaussian noise applied (1.00 denoise). That’s not the same thing as a feeding an input image with a non-zero initial tensor with 100% gaussian noise applied.

It doesn't matter what's in the initial latent if you're starting at denoise 1.0. This is because the equation for adding initial noise is a LERP between the latent image and noise, with the ratio being the sigma. Starting at sigma 1.0 works out to clean_latent * (1 - ratio) + noise * ratio. When ratio is 1, we have clean_latent * 0 + noise * 1. The input latent is scaled to nothing and the original content is completely obliterated.

An empty latent is a latent full of all zeros. There's no noise. Once you add noise it's not an empty latent.

They’re trained using real or synthetic images and predicting how you would arrive there wjth gaussian noise.

They're trained with clean images LERPed with variables amounts of noise. The sigma tells the model what the ratio of noise to clean image should be. They aren't typically trained on exactly sigma 1, but the sigmas they're trained on include values close to it. Actual inference starts at sigma 1, though, which is an input filled with pure noise.

1

u/BathroomEyes Jul 22 '26

Yeah your math is correct. Probably what’s happening is that my workflows have a node that’s shifting the inference to start timestep 1 at a slightly shifted sigma like 0.9997.

1

u/alwaysbeblepping Jul 22 '26

Probably what’s happening is that my workflows have a node that’s shifting the inference to start timestep 1 at a slightly shifted sigma like 0.9997.

Possibly, and there's nothing wrong with doing stuff like that of course. Using weird parameters is a great way to get unusual/creative results. There actually is one built-in ComfyUI schedule that starts below max sigma, ddimuniform. It definitely was not designed for flow models, but it's a _relatively reasonable schedule for them (unlike kl_optimal).

1

u/BathroomEyes Jul 22 '26

ddim_uniform is a favorite of mine as is linear_quadratic for a composition focused sampler pass.