aboutsummaryrefslogtreecommitdiffstats
path: root/modules/sd_samplers.py
diff options
context:
space:
mode:
authorAUTOMATIC <16777216c@gmail.com>2022-09-06 16:33:51 +0000
committerAUTOMATIC <16777216c@gmail.com>2022-09-06 16:33:51 +0000
commitfd66199769ebe0851d2ff33fdc7b191421822454 (patch)
tree58665e755d560046e06792ba2da8ed56ec683a8a /modules/sd_samplers.py
parentdb6db585eb9ee48e7315e28603e18531dbc87067 (diff)
downloadstable-diffusion-webui-gfx803-fd66199769ebe0851d2ff33fdc7b191421822454.tar.gz
stable-diffusion-webui-gfx803-fd66199769ebe0851d2ff33fdc7b191421822454.tar.bz2
stable-diffusion-webui-gfx803-fd66199769ebe0851d2ff33fdc7b191421822454.zip
added preview option
Diffstat (limited to 'modules/sd_samplers.py')
-rw-r--r--modules/sd_samplers.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/modules/sd_samplers.py b/modules/sd_samplers.py
index 896e8b3f..ff7e686e 100644
--- a/modules/sd_samplers.py
+++ b/modules/sd_samplers.py
@@ -42,6 +42,8 @@ def p_sample_ddim_hook(sampler_wrapper, x_dec, cond, ts, *args, **kwargs):
img_orig = sampler_wrapper.sampler.model.q_sample(sampler_wrapper.init_latent, ts)
x_dec = img_orig * sampler_wrapper.mask + sampler_wrapper.nmask * x_dec
+ state.current_latent = x_dec
+
return sampler_wrapper.orig_p_sample_ddim(x_dec, cond, ts, *args, **kwargs)
@@ -141,6 +143,9 @@ class KDiffusionSampler:
self.func = getattr(k_diffusion.sampling, self.funcname)
self.model_wrap_cfg = CFGDenoiser(self.model_wrap)
+ def callback_state(self, d):
+ state.current_latent = d["denoised"]
+
def sample_img2img(self, p, x, noise, conditioning, unconditional_conditioning):
t_enc = int(min(p.denoising_strength, 0.999) * p.steps)
sigmas = self.model_wrap.get_sigmas(p.steps)
@@ -157,7 +162,7 @@ class KDiffusionSampler:
if hasattr(k_diffusion.sampling, 'trange'):
k_diffusion.sampling.trange = lambda *args, **kwargs: extended_trange(*args, **kwargs)
- return self.func(self.model_wrap_cfg, xi, sigma_sched, extra_args={'cond': conditioning, 'uncond': unconditional_conditioning, 'cond_scale': p.cfg_scale}, disable=False)
+ return self.func(self.model_wrap_cfg, xi, sigma_sched, extra_args={'cond': conditioning, 'uncond': unconditional_conditioning, 'cond_scale': p.cfg_scale}, disable=False, callback=self.callback_state)
def sample(self, p, x, conditioning, unconditional_conditioning):
sigmas = self.model_wrap.get_sigmas(p.steps)
@@ -166,6 +171,6 @@ class KDiffusionSampler:
if hasattr(k_diffusion.sampling, 'trange'):
k_diffusion.sampling.trange = lambda *args, **kwargs: extended_trange(*args, **kwargs)
- samples_ddim = self.func(self.model_wrap_cfg, x, sigmas, extra_args={'cond': conditioning, 'uncond': unconditional_conditioning, 'cond_scale': p.cfg_scale}, disable=False)
+ samples_ddim = self.func(self.model_wrap_cfg, x, sigmas, extra_args={'cond': conditioning, 'uncond': unconditional_conditioning, 'cond_scale': p.cfg_scale}, disable=False, callback=self.callback_state)
return samples_ddim