@@ -98,7 +98,7 @@ def get_hr_scheduler_from_infotext(d: dict):
9898
9999
100100@functools .cache
101- def get_sampler_and_scheduler (sampler_name , scheduler_name ):
101+ def get_sampler_and_scheduler (sampler_name , scheduler_name , * , revert_to_automatic = True ):
102102 default_sampler = samplers [0 ]
103103 found_scheduler = sd_schedulers .schedulers_map .get (scheduler_name , sd_schedulers .schedulers [0 ])
104104
@@ -116,16 +116,16 @@ def get_sampler_and_scheduler(sampler_name, scheduler_name):
116116 sampler = all_samplers_map .get (name , default_sampler )
117117
118118 # revert back to Automatic if it's the default scheduler for the selected sampler
119- if sampler .options .get ('scheduler' , None ) == found_scheduler .name :
119+ if revert_to_automatic and sampler .options .get ('scheduler' , None ) == found_scheduler .name :
120120 found_scheduler = sd_schedulers .schedulers [0 ]
121121
122122 return sampler .name , found_scheduler .label
123123
124124
125125def fix_p_invalid_sampler_and_scheduler (p ):
126126 i_sampler_name , i_scheduler = p .sampler_name , p .scheduler
127- p .sampler_name , p .scheduler = get_sampler_and_scheduler (p .sampler_name , p .scheduler )
128- if p .sampler_name != i_sampler_name or i_scheduler != p .scheduler :
127+ p .sampler_name , p .scheduler = get_sampler_and_scheduler (p .sampler_name , p .scheduler , revert_to_automatic = False )
128+ if p .sampler_name != i_sampler_name or ( i_scheduler != p .scheduler ) :
129129 logging .warning (f'Sampler Scheduler autocorrection: "{ i_sampler_name } " -> "{ p .sampler_name } ", "{ i_scheduler } " -> "{ p .scheduler } "' )
130130
131131
0 commit comments