Nodes/FAI-Node/⚛️FAI Scale Scheduler⚛️
ComfyUI Node

⚛️FAI Scale Scheduler⚛️

Seventeen motion curves so you never type that cosine formula again

By alanhuang67·Created 2 years ago·Updated 2 years ago· 15
⚛️FAI Scale Scheduler⚛️
  • a
  • b
  • schedule_list
formula
easing_mode
end_frame
ndigits5

FAI Scale Scheduler is a schedule generator with an honest origin story: the author couldn't read the formula string the pack's Voronoi node inherited - something like 0:(15 * cos((a / 60 * 3.141 * (t + 0) / b))**70 + 0.009) - so he took the 17 formulas he actually wanted and turned them into dropdown entries with real names. That's the whole pitch: pick a curve by name, get a per-frame value list out.

Why you'd reach for it: almost everything that animates in a video workflow needs a per-frame curve - scale, detail, randomness, x/y offset, even a seed. This is the node that produces those lists. Wire its schedule_list output into FAI_Voronoi_Generator's scale_schedule or randomness_schedule, or into any scale-style input on other video nodes. In the pack's own example, two Voronoi generators get their schedules fed this way.

Mechanically it's a keyframe scheduler in a trench coat. The selected formula string is parsed and evaluated once per frame, with t as the frame index. The two wildcard inputs, a and b, are the knobs you actually turn - in the example workflow a is wired to the video frame rate and b to the BPM, which is why every formula keeps doing a / 60. They're typed as wildcards, so you can feed in plain numbers or pull them from other nodes.

The inputs that matter:

  • formula - the 17 named curves: smooth periodic sin/cosine, quadratic, cubic, logarithmic, exponential, pulse, sawtooth, gentle wave, and more. They have real characters - Pulse is a square wave, Sawtooth ramps up then snaps back. "Smooth Incremental Change" is the one the example picks for a gentle, calming feel.
  • easing_mode - 19 options including None: linear, ease-in/out, bounce, sinusoidal, exponential, square, triangle. This reshapes the whole curve on top of the formula, which is a cheap way to add organic feel.
  • end_frame - the length of the output. This is where people get burned. Left at 0, the scheduler has no timeline to extend and hands you a list of length one. Set it to your frame count.
  • ndigits - rounding precision (default 5).

Output: schedule_list, a LIST of floats, one per frame.

The trap worth knowing: if you feed a schedule into the Voronoi node that's shorter than its batch_size, it pads with the last value rather than erroring. So a wrong-length list won't crash - it'll just freeze the motion at the tail. A flat, unmoving Voronoi is usually a length mismatch, not a broken formula.

Install through ComfyUI Manager (search "FAI-Node") or:

cd ComfyUI/custom_nodes
git clone https://github.com/alanhuang67/ComfyUI-FAI-Node

then restart. It's part of the small FAI-Node pack by alanhuang67 (Fantasy AI Studio), a hobby project aimed at video generation - no models to download, the only real dependency situation is that the pack's README suggests having SaltAI_AudioViz installed for the full example workflows.

Category⚛️FAI_Node⚛️

Inputs (6)

NameTypeDefaultDescription
formulaCOMBO17 options: High-Frequency Oscillation, Nonlinear Variation, Repeating Linear Change, Smooth Periodic Change [Sin], Smooth Periodic Change [Cosine], Quadratic Curve Change, +11
easing_modeCOMBO19 options: None, linear, ease-in, ease-out, ease-in-out, bounce-in, +13
end_frameoptINT
ndigitsoptINT51–12
aopt*
bopt*

Outputs (1)

NameTypeDescription
schedule_listLIST