aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKyle <zerouex@gmail.com>2023-02-04 00:46:13 +0000
committerKyle <zerouex@gmail.com>2023-02-04 00:46:13 +0000
commitba6a4e7e9431d02ba3656c6ae44d5dfe29908d68 (patch)
tree8e32832e8d0d665cda7f9e87677c539905477583
parentc27c0de0f73c5f533acfa10426dbac7ac988bc85 (diff)
downloadstable-diffusion-webui-gfx803-ba6a4e7e9431d02ba3656c6ae44d5dfe29908d68.tar.gz
stable-diffusion-webui-gfx803-ba6a4e7e9431d02ba3656c6ae44d5dfe29908d68.tar.bz2
stable-diffusion-webui-gfx803-ba6a4e7e9431d02ba3656c6ae44d5dfe29908d68.zip
Use original CFGDenoiser if image_cfg_scale = 1
If image_cfg_scale is =1 then the original image is not used for the output. We can then use the original CFGDenoiser to get the same result to support AND functionality. Maybe in the future AND can be supported with "Image CFG Scale"
-rw-r--r--modules/sd_samplers_kdiffusion.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/modules/sd_samplers_kdiffusion.py b/modules/sd_samplers_kdiffusion.py
index 6107e99e..6c57fdec 100644
--- a/modules/sd_samplers_kdiffusion.py
+++ b/modules/sd_samplers_kdiffusion.py
@@ -245,7 +245,7 @@ class KDiffusionSampler:
self.funcname = funcname
self.func = getattr(k_diffusion.sampling, self.funcname)
self.extra_params = sampler_extra_params.get(funcname, [])
- self.model_wrap_cfg = CFGDenoiser(self.model_wrap) if not shared.sd_model.cond_stage_key == "edit" else CFGDenoiserEdit(self.model_wrap)
+ self.model_wrap_cfg = CFGDenoiser(self.model_wrap)
self.sampler_noises = None
self.stop_at = None
self.eta = None
@@ -280,6 +280,9 @@ class KDiffusionSampler:
return p.steps
def initialize(self, p):
+ if shared.sd_model.cond_stage_key == "edit" and getattr(p, 'image_cfg_scale', None) != 1:
+ self.model_wrap_cfg = CFGDenoiserEdit(self.model_wrap)
+
self.model_wrap_cfg.mask = p.mask if hasattr(p, 'mask') else None
self.model_wrap_cfg.nmask = p.nmask if hasattr(p, 'nmask') else None
self.model_wrap_cfg.step = 0
@@ -352,7 +355,7 @@ class KDiffusionSampler:
'cond_scale': p.cfg_scale,
}
- if hasattr(p, 'image_cfg_scale'):
+ if hasattr(p, 'image_cfg_scale') and p.image_cfg_scale != 1 and p.image_cfg_scale != None:
extra_args['image_cfg_scale'] = p.image_cfg_scale
samples = self.launch_sampling(t_enc + 1, lambda: self.func(self.model_wrap_cfg, xi, extra_args=extra_args, disable=False, callback=self.callback_state, **extra_params_kwargs))