diff --git a/modules/processing_diffusers.py b/modules/processing_diffusers.py index e1109c204..8672a9b4e 100644 --- a/modules/processing_diffusers.py +++ b/modules/processing_diffusers.py @@ -344,7 +344,9 @@ def process_diffusers(p: processing.StableDiffusionProcessing): if p.sag_scale > 0 and is_txt2img(): update_sampler(shared.sd_model) supported = ['DDIMScheduler', 'PNDMScheduler', 'DDPMScheduler', 'DEISMultistepScheduler', 'UniPCMultistepScheduler', 'DPMSolverMultistepScheduler', 'DPMSolverSinlgestepScheduler'] - if sd_model.scheduler.__class__.__name__ in supported: + if hasattr(sd_model, 'sfast'): + shared.log.warning(f'SAG incompatible compile mode: backend={shared.opts.cuda_compile_backend}') + elif sd_model.scheduler.__class__.__name__ in supported: sd_model = sd_models.switch_pipe(diffusers.StableDiffusionSAGPipeline, sd_model) p.extra_generation_params["SAG scale"] = p.sag_scale p.task_args['sag_scale'] = p.sag_scale diff --git a/modules/sd_models_compile.py b/modules/sd_models_compile.py index 144faa762..7e1bf1da7 100644 --- a/modules/sd_models_compile.py +++ b/modules/sd_models_compile.py @@ -164,6 +164,7 @@ def compile_stablefast(sd_model): try: t0 = time.time() sd_model = sf.compile(sd_model, config) + sd_model.sfast = True setup_logging() # compile messes with logging so reset is needed if shared.opts.cuda_compile_precompile: sd_model("dummy prompt")