aboutsummaryrefslogtreecommitdiff
path: root/modules/sd_samplers.py
diff options
context:
space:
mode:
authorAlex "mcmonkey" Goodwin <git_commits@alexgoodwin.dev>2022-12-16 08:18:29 -0800
committerAlex "mcmonkey" Goodwin <git_commits@alexgoodwin.dev>2022-12-16 08:18:29 -0800
commit8b0703b8fcdab153958b11f0dd5e5b6b58565fed (patch)
tree306fa121a32ff1a12ae36b2abbe445a49b35352c /modules/sd_samplers.py
parent685f9631b56ff8bd43bce24ff5ce0f9a0e9af490 (diff)
Add a workaround patch for DPM2 a issue
DPM2 a and DPM2 a Karras samplers are both affected by an issue described by https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/3483 and can be resolved by a workaround suggested by the k-diffusion author at https://github.com/crowsonkb/k-diffusion/issues/43#issuecomment-1305195666
Diffstat (limited to 'modules/sd_samplers.py')
-rw-r--r--modules/sd_samplers.py3
1 files changed, 3 insertions, 0 deletions
diff --git a/modules/sd_samplers.py b/modules/sd_samplers.py
index 4c123d3b..b8e0ce53 100644
--- a/modules/sd_samplers.py
+++ b/modules/sd_samplers.py
@@ -494,6 +494,9 @@ class KDiffusionSampler:
x = x * sigmas[0]
+ if self.funcname == "sample_dpm_2_ancestral": # workaround dpm2 a issue
+ sigmas = torch.cat([sigmas[:-2], sigmas[-1:]])
+
extra_params_kwargs = self.initialize(p)
if 'sigma_min' in inspect.signature(self.func).parameters:
extra_params_kwargs['sigma_min'] = self.model_wrap.sigmas[0].item()