Initial release
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
-- linear.lua: Linear (uniform) scheduler — the ACE-Step default
|
||||
|
||||
scheduler = {
|
||||
name = "linear",
|
||||
display = "Linear",
|
||||
description = "Uniform spacing (default)",
|
||||
}
|
||||
|
||||
function schedule(output, num_steps, shift)
|
||||
for i = 0, num_steps - 1 do
|
||||
output[i] = 1.0 - i / num_steps
|
||||
end
|
||||
apply_shift(output, num_steps, shift)
|
||||
end
|
||||
|
||||
-- Standard shift warp: t' = shift*t / (1 + (shift-1)*t)
|
||||
function apply_shift(ts, n, shift)
|
||||
if shift == 1.0 then return end
|
||||
for i = 0, n - 1 do
|
||||
local t = ts[i]
|
||||
ts[i] = shift * t / (1.0 + (shift - 1.0) * t)
|
||||
end
|
||||
end
|
||||
|
||||
-- Clamp to [1e-6, 1.0]
|
||||
function clamp(ts, n)
|
||||
for i = 0, n - 1 do
|
||||
if ts[i] < 1e-6 then ts[i] = 1e-6 end
|
||||
if ts[i] > 1.0 then ts[i] = 1.0 end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user