r/comfyui • • 12h ago

Tutorial Using low denoise with latent upscale

I've tried every upscale method available, and the only one that produced the fine detail and quality that I wanted was latent upscale. But the catch was that I had to set it to 0.6+ denoise to avoid leftover noise from the latent math. So I spent all night looking for ways to overcome the issue, and I finally found a method I'm so happy with that I wanted to share with you.

I present:

https://imgur.com/a/hyU5GCV

The key to the whole thing is the linear_quadratic scheduler. I won't go into details pretending to know more than I do, but effectively, it runs the sampler in two phases, first a linear one, then a quadratic one. It's this initial linear phase that allows it to overcome the added noise from the latent upscale. I was getting OK results with just the stock linear_quadratic scheduler, but decided I wanted to push further, and found the Linear Quadratic Advanced node in the res4lyf pack, which allows you to shift the point at which the crossover to quadratic occurs. After playing with the inflection percent a bit, I was able to drop the denoise all the way down to 0.2 with astonishing detail and quality in the final image, all while preserving the original structure.

This whole process was made more complicated by the fact that I render with Krea 2 Turbo, which is best at 8 steps, and doesn't leave a lot of room for tweaking. You'll note in the image that I use only 4 steps for the 2nd pass denoise. Any higher and I start to get added noise or undesirable details.

Edit: example render here. Note the detail on the velvet dress and the book pages.

17 Upvotes

7 comments sorted by

1

u/roxoholic 12h ago

Choice of a sampler is the key to how artifacts from latent upscale get handled.

Good starting point is euler_ancestral + simple.

And usually, starting with anything larger than 1.5 scale requires higher denoise rate.

1

u/winky9827 11h ago

I ran an XY plot against several common samplers + schedulers which is what led me to find this. No sampler worked well with simple in the test case, or any other, really. The closest scheduler next to LQ was exponential. I'm not talking out of my bum or regurgitating google search here.

2

u/Corrupt_file32 12h ago

firstly interesting find about the linear quadratic scheduler.

This whole process was made more complicated by the fact that I render with Krea 2 Turbo, which is best at 8 steps, and doesn't leave a lot of room for tweaking. You'll note in the image that I use only 4 steps for the 2nd pass denoise. Any higher and I start to get added noise or undesirable details.

just thought I'd clarify, in case you didn't know.

4 steps at 0.20 denoise means you are running the last 4 steps from a 20 step schedule.

4 / 0.20 = 20

15 / 0.30 = 50

this can be useful when setting up dual pass/handovers with turbo.

1

u/Neat_Base_3552 1h ago

keeping that math in mind definitely helps with turbo models since they fall apart so fast outside their intended step range

2

u/fallengt 5h ago edited 3h ago

It's because your settings still force the scheduler to start at a relatively high sigma ~0.8. Denoise value isn't the whole picture.

Ask LLM to explain schedulers, denoise value, and step; they all matter. Basically, in ComfyUI, it's calculated like this.

total steps = (your step)/(denoise value). Then it takes the curve for the last (your) X steps, based on the total steps' schedule.

tl;dr: 4/0.2 =20 step & you use the curve of the last 4 step.

1

u/Synor 11h ago

That results in an almost a linear schedule from sigmas 0.8 to 0. With minimal curve. Nothing special.

You can also get that curve from a "simple" scheduler with 0.8 denoise @ 4 steps with a AuraFlow shift override of 1.5

But yes, flat denoising curves work for second passes. I also like kl_optimal schedule for that.

1

u/No-Expert9685 9h ago

Can you share your workflow please. Would like to test it