-
Notifications
You must be signed in to change notification settings - Fork 375
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
sample_dpmpp_2m has a bug? #56
Comments
Here is a version that works with DPM++ 2M. At least I seem to get pretty good results with it. And with "Always discard next-to-last sigma" turned OFF At 10 steps: https://imgsli.com/MTYxMjc5
|
will this get adressed or you just guys moved on? |
Any comment on this @crowsonkb? Are you still maintaining this repo or should we just fork it? |
@hallatore yes, please put up a PR for it; thank you! |
I need to look at this but I'm sick right now so it might be a few days |
@crowsonkb Take care! 🙏 |
to aid understanding, here's what the diff looks like: it changes the second-order step. when we compute when computing @hallatore does that sound like a correct description of your technique? personally: looking at the before/after samples, I'm not convinced it's "better" or more "correct" — to me it looks "different". |
Just curious, is there any guarantee that h_min won't be zero, or close to zero, and therefore, should there be a check to make sure we have sane values of r? Judging from the samples here, it does seem that this change can help, in practice. |
A lot of the code takes for granted that h_last is always lower than h. When that is true we get a factor between 1..0. But when this is wrong we get a value above 1. I'm not sure if min/max-ing is the right approach to fixing this, but we do want to never have an r value above 1. The other change is that h from the "current step" while denoised_d is a value between current and last step based on r. I think it makes sense that if denoised_d is a computed factor between current and last step, then h should also be computed from the same factor. Otherwise you use the current steps denoising factor on the computed denoised_d. Here i'm also unsure if the average is a good fit. So to sum it up the changes try to address two things.
|
If you never want an r value above one, then I'd say set that as a max; clamp the range, make sure it's in the valid range you want. And see if you can find some pathological test cases for it! |
Just tried Female warrior, 10 steps, seed 3013411575 without clamp With clamp
But the value of |
Yes, both of those look good to me... |
@Metachs interesting; what about for higher values of CFG Scale, such as 10 or 15? |
i made the same change to h_d and prefer the result, seems a halfway point between original and OP mod. |
how can i make that change |
Hi,
I've been playing around with the sample_dpmpp_2m sampling and found that swapping one variable changes/fixes blur. I don't know the math formula for this, so I might be wrong. But I think there might be a bug in the code?
Let me know what you think. And if you want me to create a PR for it.
Here are my results
The text was updated successfully, but these errors were encountered: