diff --git a/docs/Project.toml b/docs/Project.toml index e8f458e..24160e5 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -1,5 +1,6 @@ [deps] Diffusers = "90edb7a8-79d7-49b2-b6b1-9322c3fdead8" Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" +LaTeXStrings = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" PlotlyJS = "f0f68f2c-4968-5e81-91da-67840de0976a" Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" diff --git a/docs/src/beta_schedules.md b/docs/src/beta_schedules.md index d2c5ce6..22e9e10 100644 --- a/docs/src/beta_schedules.md +++ b/docs/src/beta_schedules.md @@ -1,32 +1,105 @@ ```@eval using Diffusers.BetaSchedules -using Plots -plotlyjs() +using LaTeXStrings +using PlotlyJS T = 1000 -linear = linear_beta_schedule(T) -scaled_linear = scaled_linear_beta_schedule(T) -cosine = cosine_beta_schedule(T) -sigmoid = sigmoid_beta_schedule(T) -plot( - [linear, scaled_linear, cosine, sigmoid], - label=["linear" "scaled_linear" "cosine" "sigmoid"], - xlabel="t", - ylabel="β", - title="Beta schedules", - legend=:topleft, - yscale=:log10, +β_linear = linear_beta_schedule(T) +β_scaled_linear = scaled_linear_beta_schedule(T) +β_cosine = cosine_beta_schedule(T) +β_sigmoid = sigmoid_beta_schedule(T) + +α̅_linear = cumprod(1 .- β_linear) +α̅_scaled_linear = cumprod(1 .- β_scaled_linear) +α̅_cosine = cumprod(1 .- β_cosine) +α̅_sigmoid = cumprod(1 .- β_sigmoid) + +p1 = plot( + [ + scatter(y=β_linear, name="Linear"), + scatter(y=β_scaled_linear, name="Scaled linear"), + scatter(y=β_cosine, name="Cosine"), + scatter(y=β_sigmoid, name="Sigmoid"), + ], + Layout( + updatemenus=[ + attr( + type="buttons", + active=1, + buttons=[ + attr( + label="Linear", + method="relayout", + args=["yaxis.type", "linear"], + ), + attr( + label="Log", + method="relayout", + args=["yaxis.type", "log"], + ), + ] + ), + ], + title="Beta schedules", + xaxis=attr( + title=L"$t$", + ), + yaxis=attr( + type="log", + title=L"\beta", + ) + ) ) -savefig("fig_beta_schedules.html") +savefig(p1, "fig_beta_schedules.html") + +p2 = plot( + [ + scatter(y=α̅_linear, name="Linear"), + scatter(y=α̅_scaled_linear, name="Scaled linear"), + scatter(y=α̅_cosine, name="Cosine"), + scatter(y=α̅_sigmoid, name="Sigmoid"), + ], + Layout( + updatemenus=[ + attr( + type="buttons", + buttons=[ + attr( + label="Linear", + method="relayout", + args=["yaxis.type", "linear"], + ), + attr( + label="Log", + method="relayout", + args=["yaxis.type", "log"], + ), + ], + ), + ], + title="Cumulative alpha schedules", + xaxis=attr( + title=L"$t$", + ), + yaxis=attr( + title=L"\overline\alpha", + ) + ) +) + +savefig(p2, "fig_alpha_bar_schedules.html") + nothing ``` ```@raw html + ``` + ```@autodocs Modules = [Diffusers.BetaSchedules] ```