diff --git a/modules/devices.py b/modules/devices.py index 2cd0c8d0f..b67bc8d80 100644 --- a/modules/devices.py +++ b/modules/devices.py @@ -202,6 +202,10 @@ if backend == 'ipex': CondFunc('torch.nn.modules.Linear.forward', lambda orig_func, *args, **kwargs: orig_func(args[0], args[1].to(args[0].weight.data.dtype)), lambda *args, **kwargs: args[2].dtype != args[1].weight.data.dtype) + #Diffusers bfloat16: + CondFunc('torch.nn.modules.Conv2d._conv_forward', + lambda orig_func, *args, **kwargs: orig_func(args[0], args[1].to(args[2].data.dtype), args[2], args[3]), + lambda *args, **kwargs: args[2].dtype != args[3].data.dtype) #Functions that does not work with the XPU: #UniPC: CondFunc('torch.linalg.solve', diff --git a/modules/sd_models.py b/modules/sd_models.py index 9543db97a..2c74390ef 100644 --- a/modules/sd_models.py +++ b/modules/sd_models.py @@ -744,7 +744,7 @@ def load_diffuser(checkpoint_info=None, already_loaded_state_dict=None, timer=No if not refiner_enough_vram and not (shared.opts.diffusers_move_base and shared.opts.diffusers_move_refiner): shared.log.warning(f"Insufficient GPU memory, using system memory as fallback: free={free_vram} GB") shared.log.debug('Enabled moving base model to CPU') - shared.log.debug('Enabled moving base model to CPU') + shared.log.debug('Enabled moving refiner model to CPU') shared.opts.diffusers_move_base=True shared.opts.diffusers_move_refiner=True shared.log.debug('Moving base model to CPU')