diff --git a/modules/processing_diffusers.py b/modules/processing_diffusers.py index 5362fa31a..9d8605d75 100644 --- a/modules/processing_diffusers.py +++ b/modules/processing_diffusers.py @@ -319,7 +319,7 @@ def process_diffusers(p: StableDiffusionProcessing, seeds, prompts, negative_pro unload_diffusers_lora() return results - if shared.opts.diffusers_move_base and not shared.sd_model.has_accelerate: + if shared.opts.diffusers_move_base and not hasattr(shared.sd_model, 'has_accelerate', False): shared.sd_model.to(devices.device) is_img2img = bool(sd_models.get_diffusers_task(shared.sd_model) == sd_models.DiffusersTaskType.IMAGE_2_IMAGE or sd_models.get_diffusers_task(shared.sd_model) == sd_models.DiffusersTaskType.INPAINTING) @@ -417,7 +417,7 @@ def process_diffusers(p: StableDiffusionProcessing, seeds, prompts, negative_pro if is_refiner_enabled: if shared.opts.save and not p.do_not_save_samples and shared.opts.save_images_before_refiner and hasattr(shared.sd_model, 'vae'): save_intermediate(latents=output.images, suffix="-before-refiner") - if shared.opts.diffusers_move_base and not shared.sd_model.has_accelerate: + if shared.opts.diffusers_move_base and not hasattr(shared.sd_model, 'has_accelerate', False): shared.log.debug('Moving to CPU: model=base') shared.sd_model.to(devices.cpu) devices.torch_gc() @@ -433,7 +433,7 @@ def process_diffusers(p: StableDiffusionProcessing, seeds, prompts, negative_pro unload_diffusers_lora() return results - if shared.opts.diffusers_move_refiner and not shared.sd_refiner.has_accelerate: + if shared.opts.diffusers_move_refiner and not hasattr(shared.sd_refiner, 'has_accelerate', False): shared.sd_refiner.to(devices.device) refiner_is_sdxl = bool("StableDiffusionXL" in shared.sd_refiner.__class__.__name__) p.ops.append('refine') @@ -469,7 +469,7 @@ def process_diffusers(p: StableDiffusionProcessing, seeds, prompts, negative_pro for refiner_image in refiner_images: results.append(refiner_image) - if shared.opts.diffusers_move_refiner and not shared.sd_refiner.has_accelerate: + if shared.opts.diffusers_move_refiner and not hasattr(shared.sd_refiner, 'has_accelerate', False): shared.log.debug('Moving to CPU: model=refiner') shared.sd_refiner.to(devices.cpu) devices.torch_gc() diff --git a/modules/sd_models.py b/modules/sd_models.py index c58a22932..4ace52368 100644 --- a/modules/sd_models.py +++ b/modules/sd_models.py @@ -965,10 +965,10 @@ class DiffusersTaskType(Enum): INPAINTING = 3 def set_diffuser_pipe(pipe, new_pipe_type): - sd_checkpoint_info = pipe.sd_checkpoint_info if hasattr(pipe, "sd_checkpoint_info") else None - sd_model_checkpoint = pipe.sd_model_checkpoint if hasattr(pipe, "sd_model_checkpoint") else None - sd_model_hash = pipe.sd_model_hash if hasattr(pipe, "sd_model_hash") else None - has_accelerate = pipe.has_accelerate if hasattr(pipe, "has_accelerate") else None + sd_checkpoint_info = getattr(pipe, "sd_checkpoint_info", None) + sd_model_checkpoint = getattr(pipe, "sd_model_checkpoint", None) + sd_model_hash = getattr(pipe, "sd_model_hash", None) + has_accelerate = getattr(pipe, "has_accelerate", None) if new_pipe_type == DiffusersTaskType.TEXT_2_IMAGE: new_pipe = diffusers.AutoPipelineForText2Image.from_pipe(pipe)