-
Notifications
You must be signed in to change notification settings - Fork 377
Add Euler, Heun and DPM++ (2M) samplers #50
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
Conversation
Also adds the command line parsing mechanism for actually selecting the sampler. And fixes the misspelling of Euler.
🚀 |
Add ddim sampler, please. |
Also added DPM++ (2M) sampler, because I like that one, too! |
Would you be so kind to compile and upload an avx2 windows executable for your SD.cpp fork, please? |
😆 someone cant wait for @leejet to merge this. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you are missing "sampling-method" and "sample-method"
eg. help tells you to use "sample-method" but its actually "sampling-method"
edit: you also changed "euler a" to "euler_a" as the parameter
Would inpainting be a separate mode altogether, or is it a sampling type? Edit: I guess inpainting is just part of img2img but does anyone know how to apply mask technique vs sketch? |
It is very much a different mode, yes, iirc img2img with masking or something like that. |
This was proposed in a issue discussion of the stable diffusion webui, at AUTOMATIC1111/stable-diffusion-webui#8457 and apparently works around overstepping of the DPM++ (2M) method with small step counts. The parameter is called dpmpp2mv2 here.
Added another one: The modified version of DPM++ (2M) from this thread over in AUTOMATIC1111's webui discussions. Apparently, there are mathematical arguments why the unmodified method could sometimes overstep and produce exaggerated edge artefacts, and this change fixes that. |
That one is fixed now, thanks! |
True, I considered it more practical not to have spaces inside command line arguments like that. Not good? |
Also note PR #51, which allows all these samplers to run with the "Karras" schedule, by specifying |
match code style update README.md set euler_a as the default sampling method
Great! Thank you for your contribution. However, I prefer to use euler a as the default sampling method, as stable-diffusion-weiui does. So I made some small changes. |
I don't like ancestral samplers, so I implemented the simplest deterministic ones: Euler and Heun sampling, based on their python equivalents from the k-diffusers package.
This also includes code to do the
--sampling-method
parameter parsing. And fixes the spelling of Euler. :)