-
Notifications
You must be signed in to change notification settings - Fork 5.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Schedulers] Analysis of simple
, exponential
, polyexponential
and beta
#9490
Comments
@yiyixuxu WDYT? |
thanks a lot for doing this |
Exponential and beta are now merged so I think we can consider this issue resolved. As mentioned polyexponential matches exponential unless the |
This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread. Please note that issues that do not follow the contributing guidelines are likely to be ignored. |
This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread. Please note that issues that do not follow the contributing guidelines are likely to be ignored. |
i think this issue can be closed? |
Yes this is resolved. Closing with a final note regarding |
I'm creating this issue to present my findings in relation to a discussion in #9416 about supporting additional schedulers used in A1111/Forge/Comfy etc. specifically
simple
,exponential
,polyexponential
andbeta
schedulers.I've tested these schedulers and compared them to Diffusers with step counts
4
,8
,15
, and30
.sgm_uniform
is also included in these tests to confirm the findings in the above linked issue. On the Diffusers side we testtimestep_spacing
linspace
,leading
andtrailing
with bothinterpolation_type
linear
andlog_linear
.Conclusions
Simple
simple
schedule type is an exact match totimestep_spacing
trailing
interpolation_type
linear
.SGM Uniform
As found in the link issue this schedule type is a near exact match to
timestep_spacing
trailing
interpolation_type
linear
and in turn a near exact match tosimple
schedule type.Exponential and Polyexponential
These schedule types produce the exact same results with the default
rho
(1.0
) in Polyexponential, and there is no match to Diffusers, so needs to be implemented.Beta
There is no match to Diffusers, so needs to be implemented.
Notes
Code used to produce these results is attached below test results, I've confirmed the results are accurate with simple modification to Forge that prints the sigmas for each tested schedule type.
Test results
4 steps
timestep_spacing=linspace, interpolation_type=linear
timestep_spacing=leading, interpolation_type=linear
timestep_spacing=trailing, interpolation_type=linear
timestep_spacing=linspace, interpolation_type=log_linear
timestep_spacing=leading, interpolation_type=log_linear
timestep_spacing=trailing, interpolation_type=log_linear
simple
sgm_uniform
exponential
polyexponential
beta
8 steps
timestep_spacing=linspace, interpolation_type=linear
timestep_spacing=leading, interpolation_type=linear
timestep_spacing=trailing, interpolation_type=linear
timestep_spacing=linspace, interpolation_type=log_linear
timestep_spacing=leading, interpolation_type=log_linear
timestep_spacing=trailing, interpolation_type=log_linear
simple
sgm_uniform
exponential
polyexponential
beta
15 steps
timestep_spacing=linspace, interpolation_type=linear
timestep_spacing=leading, interpolation_type=linear
timestep_spacing=trailing, interpolation_type=linear
timestep_spacing=linspace, interpolation_type=log_linear
timestep_spacing=leading, interpolation_type=log_linear
timestep_spacing=trailing, interpolation_type=log_linear
simple
sgm_uniform
exponential
polyexponential
beta
30 steps
timestep_spacing=linspace, interpolation_type=linear
timestep_spacing=leading, interpolation_type=linear
timestep_spacing=trailing, interpolation_type=linear
timestep_spacing=linspace, interpolation_type=log_linear
timestep_spacing=leading, interpolation_type=log_linear
timestep_spacing=trailing, interpolation_type=log_linear
simple
sgm_uniform
exponential
polyexponential
beta
Code
cc @asomoza
The text was updated successfully, but these errors were encountered: