Эх сурвалжийг харах

Merge pull request #15681 from AUTOMATIC1111/fix_p_invalid_sampler_and_scheduler

more old sampler scheduler compatibility
AUTOMATIC1111 1 жил өмнө
parent
commit
c3c90deec0

+ 3 - 0
modules/processing.py

@@ -843,6 +843,9 @@ def process_images(p: StableDiffusionProcessing) -> Processed:
 
 
         sd_models.apply_token_merging(p.sd_model, p.get_token_merging_ratio())
         sd_models.apply_token_merging(p.sd_model, p.get_token_merging_ratio())
 
 
+        # backwards compatibility, fix sampler and scheduler if invalid
+        sd_samplers.fix_p_invalid_sampler_and_scheduler(p)
+
         res = process_images_inner(p)
         res = process_images_inner(p)
 
 
     finally:
     finally:

+ 8 - 1
modules/sd_samplers.py

@@ -1,7 +1,7 @@
 from __future__ import annotations
 from __future__ import annotations
 
 
 import functools
 import functools
-
+import logging
 from modules import sd_samplers_kdiffusion, sd_samplers_timesteps, sd_samplers_lcm, shared, sd_samplers_common, sd_schedulers
 from modules import sd_samplers_kdiffusion, sd_samplers_timesteps, sd_samplers_lcm, shared, sd_samplers_common, sd_schedulers
 
 
 # imports for functions that previously were here and are used by other modules
 # imports for functions that previously were here and are used by other modules
@@ -122,4 +122,11 @@ def get_sampler_and_scheduler(sampler_name, scheduler_name):
     return sampler.name, found_scheduler.label
     return sampler.name, found_scheduler.label
 
 
 
 
+def fix_p_invalid_sampler_and_scheduler(p):
+    i_sampler_name, i_scheduler = p.sampler_name, p.scheduler
+    p.sampler_name, p.scheduler = get_sampler_and_scheduler(p.sampler_name, p.scheduler)
+    if p.sampler_name != i_sampler_name or i_scheduler != p.scheduler:
+        logging.warning(f'Sampler Scheduler autocorrection: "{i_sampler_name}" -> "{p.sampler_name}", "{i_scheduler}" -> "{p.scheduler}"')
+
+
 set_samplers()
 set_samplers()