Unverified Commit 9ea62d11 authored by YiYi Xu's avatar YiYi Xu Committed by GitHub
Browse files

[DPMSolverSinglestepScheduler] correct `get_order_list` for...


[DPMSolverSinglestepScheduler] correct `get_order_list` for `solver_order=2`and `lower_order_final=True`  (#6953)

* add

* change default

---------
Co-authored-by: default avataryiyixuxu <yixu310@gmail,com>
parent a326d611
...@@ -151,7 +151,7 @@ class DPMSolverSinglestepScheduler(SchedulerMixin, ConfigMixin): ...@@ -151,7 +151,7 @@ class DPMSolverSinglestepScheduler(SchedulerMixin, ConfigMixin):
sample_max_value: float = 1.0, sample_max_value: float = 1.0,
algorithm_type: str = "dpmsolver++", algorithm_type: str = "dpmsolver++",
solver_type: str = "midpoint", solver_type: str = "midpoint",
lower_order_final: bool = True, lower_order_final: bool = False,
use_karras_sigmas: Optional[bool] = False, use_karras_sigmas: Optional[bool] = False,
final_sigmas_type: Optional[str] = "zero", # "zero", "sigma_min" final_sigmas_type: Optional[str] = "zero", # "zero", "sigma_min"
lambda_min_clipped: float = -float("inf"), lambda_min_clipped: float = -float("inf"),
...@@ -233,7 +233,7 @@ class DPMSolverSinglestepScheduler(SchedulerMixin, ConfigMixin): ...@@ -233,7 +233,7 @@ class DPMSolverSinglestepScheduler(SchedulerMixin, ConfigMixin):
orders = [1, 2, 3] * (steps // 3) + [1, 2] orders = [1, 2, 3] * (steps // 3) + [1, 2]
elif order == 2: elif order == 2:
if steps % 2 == 0: if steps % 2 == 0:
orders = [1, 2] * (steps // 2) orders = [1, 2] * (steps // 2 - 1) + [1, 1]
else: else:
orders = [1, 2] * (steps // 2) + [1] orders = [1, 2] * (steps // 2) + [1]
elif order == 1: elif order == 1:
...@@ -320,7 +320,7 @@ class DPMSolverSinglestepScheduler(SchedulerMixin, ConfigMixin): ...@@ -320,7 +320,7 @@ class DPMSolverSinglestepScheduler(SchedulerMixin, ConfigMixin):
if not self.config.lower_order_final and num_inference_steps % self.config.solver_order != 0: if not self.config.lower_order_final and num_inference_steps % self.config.solver_order != 0:
logger.warn( logger.warn(
"Changing scheduler {self.config} to have `lower_order_final` set to True to handle uneven amount of inference steps. Please make sure to always use an even number of `num_inference steps when using `lower_order_final=True`." "Changing scheduler {self.config} to have `lower_order_final` set to True to handle uneven amount of inference steps. Please make sure to always use an even number of `num_inference steps when using `lower_order_final=False`."
) )
self.register_to_config(lower_order_final=True) self.register_to_config(lower_order_final=True)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment