aboutsummaryrefslogtreecommitdiffstats
path: root/modules/sd_samplers_common.py
diff options
context:
space:
mode:
authorDeciare <1689220+deciare@users.noreply.github.com>2023-04-19 03:18:58 +0000
committerDeciare <1689220+deciare@users.noreply.github.comw>2023-04-19 03:27:46 +0000
commitd40e44ade479f7bba30d5317381cbc58c861775b (patch)
tree40755c59268f844ba1aa8f0dcec8cf5fdb66699a /modules/sd_samplers_common.py
parent22bcc7be428c94e9408f589966c2040187245d81 (diff)
downloadstable-diffusion-webui-gfx803-d40e44ade479f7bba30d5317381cbc58c861775b.tar.gz
stable-diffusion-webui-gfx803-d40e44ade479f7bba30d5317381cbc58c861775b.tar.bz2
stable-diffusion-webui-gfx803-d40e44ade479f7bba30d5317381cbc58c861775b.zip
Option to use CPU for random number generation.
Makes a given manual seed generate the same images across different platforms, independently of the GPU architecture in use. Fixes #9613.
Diffstat (limited to 'modules/sd_samplers_common.py')
-rw-r--r--modules/sd_samplers_common.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/modules/sd_samplers_common.py b/modules/sd_samplers_common.py
index a1aac7cf..e6a372d5 100644
--- a/modules/sd_samplers_common.py
+++ b/modules/sd_samplers_common.py
@@ -60,3 +60,12 @@ def store_latent(decoded):
class InterruptedException(BaseException):
pass
+
+if opts.use_cpu_randn:
+ import torchsde._brownian.brownian_interval
+
+ def torchsde_randn(size, dtype, device, seed):
+ generator = torch.Generator(devices.cpu).manual_seed(int(seed))
+ return torch.randn(size, dtype=dtype, device=devices.cpu, generator=generator).to(device)
+
+ torchsde._brownian.brownian_interval._randn = torchsde_randn