From b2b67127e3b2919b66f2ec0cffe33a2fd0ad13af Mon Sep 17 00:00:00 2001 From: Disty0 Date: Wed, 31 May 2023 12:03:00 +0300 Subject: [PATCH] Fix torch.Generator does not support XPU --- modules/sd_samplers_kdiffusion.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/modules/sd_samplers_kdiffusion.py b/modules/sd_samplers_kdiffusion.py index e5dcf767b..7daf24983 100644 --- a/modules/sd_samplers_kdiffusion.py +++ b/modules/sd_samplers_kdiffusion.py @@ -4,7 +4,7 @@ import torch import k_diffusion.sampling from modules import prompt_parser, devices, sd_samplers_common -from modules.shared import opts, state +from modules.shared import opts, state, cmd_opts import modules.shared as shared from modules.script_callbacks import CFGDenoiserParams, cfg_denoiser_callback from modules.script_callbacks import CFGDenoisedParams, cfg_denoised_callback @@ -319,7 +319,10 @@ class KDiffusionSampler: sigma_max = sigmas.max() current_iter_seeds = p.all_seeds[p.iteration * p.batch_size:(p.iteration + 1) * p.batch_size] - return BrownianTreeNoiseSampler(x, sigma_min, sigma_max, seed=current_iter_seeds) + if cmd_opts.use_ipex: #Remove this after Intel adds support for torch.Generator() + return BrownianTreeNoiseSampler(x.to("cpu"), sigma_min, sigma_max, seed=current_iter_seeds, transform=lambda x: x.to("cpu"), transform_last=lambda x: x.to("xpu")) + else: + return BrownianTreeNoiseSampler(x, sigma_min, sigma_max, seed=current_iter_seeds) def sample_img2img(self, p, x, noise, conditioning, unconditional_conditioning, steps=None, image_conditioning=None): steps, t_enc = sd_samplers_common.setup_img2img_steps(p, steps)