KfSinusoidalGetPhase
What phase is that sine actually in?
- curve
- FLOAT
KfSinusoidalGetPhase is the introspective one of the sinusoidal family. Wire a sinusoidal curve in and it returns a FLOAT: the curve's phase, in radians. Where the GetFrequency and GetWavelength nodes tell you how fast a curve waves, this one tells you where in its cycle it currently sits - whether it starts at zero rising, at its peak, or somewhere in between.
Phase is the parameter people skip. The default is 0, and for a lot of throwaway work that's fine. But once you're stacking multiple sine curves - say, several prompts or parameters that should trade off - phase is how you stagger them. The entangled curve nodes do this automatically, offsetting each output by 2π/n so they never peak at the same time. When you inherit one of those curves and want to know exactly how it was offset, this node is the way to find out.
How to use it
- Read back a curve's alignment. Whether you built it with
KfSinusoidalWithFrequencyor got it from an entangled node, this tells you its phase so you can reason about it. - Match or mirror curves. If one curve peaks while another troughs, they're roughly
πapart. That's usually intentional - but now you can verify it numerically instead of guessing from a plot. - Feed the number forward. The FLOAT output drives other nodes, so you can turn one curve's phase into an input for something else, or just display it for bookkeeping.
Phase is stored in radians, not degrees: a full cycle is 2π (≈6.28), and π flips the wave upside down. If the number comes out as an awkward decimal, that's normal - the step on the constructor's phase field is π/24 precisely because these values get fiddly.
Inputs and outputs
- curve - a
SINUSOIDAL_CURVE,forceInput(wire-only; you can't type a value). - FLOAT output - phase in radians.
Installing it
It ships with the pack, so the install is the pack install. No models, no weights, just the keyframed Python dependency which auto-installs on first load. ComfyUI Manager → search "ComfyUI-Keyframed", or:
cd ComfyUI/custom_nodes
git clone https://github.com/dmarx/ComfyUI-Keyframed
restart, and you'll find it under keyframed → sinusoidal.
Honest take: this is a debugging and verification node, not a workflow centerpiece. You'll want it once you have two curves that should be in sync and aren't, or when you're porting a curve someone else built and need its exact parameters. When that day comes, it beats eyeballing a plot.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| curve | SINUSOIDAL_CURVE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| FLOAT | FLOAT | — |