aboutsummaryrefslogtreecommitdiffstats
path: root/modules/sd_samplers.py
diff options
context:
space:
mode:
authorAUTOMATIC1111 <16777216c@gmail.com>2022-11-02 04:29:16 +0000
committerGitHub <noreply@github.com>2022-11-02 04:29:16 +0000
commit10f62546d30913ad7fde5d77ed39e864b84bb856 (patch)
tree797d2ac8d27da7b17e03c6cae4345c2f8838d588 /modules/sd_samplers.py
parent5510c282b1f1974005790066b5e444f74a5178fb (diff)
parent5b6bedf6f2ebacb7f1f5809af8e26a6a1af16e2a (diff)
downloadstable-diffusion-webui-gfx803-10f62546d30913ad7fde5d77ed39e864b84bb856.tar.gz
stable-diffusion-webui-gfx803-10f62546d30913ad7fde5d77ed39e864b84bb856.tar.bz2
stable-diffusion-webui-gfx803-10f62546d30913ad7fde5d77ed39e864b84bb856.zip
Merge pull request #4021 from AUTOMATIC1111/add-kdiff-cfgdenoiser-callback
Add mid-kdiffusion cfgdenoiser script callback - access latents, conditionings and sigmas mid-sampling
Diffstat (limited to 'modules/sd_samplers.py')
-rw-r--r--modules/sd_samplers.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/modules/sd_samplers.py b/modules/sd_samplers.py
index 8772db56..44d4c189 100644
--- a/modules/sd_samplers.py
+++ b/modules/sd_samplers.py
@@ -12,6 +12,7 @@ from modules import prompt_parser, devices, processing, images
from modules.shared import opts, cmd_opts, state
import modules.shared as shared
+from modules.script_callbacks import CFGDenoiserParams, cfg_denoiser_callback
SamplerData = namedtuple('SamplerData', ['name', 'constructor', 'aliases', 'options'])
@@ -280,6 +281,12 @@ class CFGDenoiser(torch.nn.Module):
image_cond_in = torch.cat([torch.stack([image_cond[i] for _ in range(n)]) for i, n in enumerate(repeats)] + [image_cond])
sigma_in = torch.cat([torch.stack([sigma[i] for _ in range(n)]) for i, n in enumerate(repeats)] + [sigma])
+ denoiser_params = CFGDenoiserParams(x_in, image_cond_in, sigma_in, state.sampling_step, state.sampling_steps)
+ cfg_denoiser_callback(denoiser_params)
+ x_in = denoiser_params.x
+ image_cond_in = denoiser_params.image_cond
+ sigma_in = denoiser_params.sigma
+
if tensor.shape[1] == uncond.shape[1]:
cond_in = torch.cat([tensor, uncond])