5x Entangled Curves [0,1] (Wavelength)
Five prompts sharing one tempo, set in frames
- KEYFRAMED_CURVE
- KEYFRAMED_CURVE
- KEYFRAMED_CURVE
- KEYFRAMED_CURVE
- KEYFRAMED_CURVE
Five prompts, one shared tempo, zero arithmetic. That's the compact description of this node: five sine curves, phase-locked so they always sum to ~1, each swinging between ~0 and ~2/5. The leading prompt carries 40% of the conditioning while the other four hold the mix steady - everyone's in the frame, the emphasis just wanders.
It's the 5x member of the "Entangled Curves" family in dmarx's ComfyUI-Keyframed, and this version is dialed in by wavelength: the number of frames per full cycle of the rotation. Default 12 = the lead completes one full lap through all five prompts every 12 frames. This is the wavelength flavor's quiet advantage - you don't convert anything, you just type how long you want the cycle to last.
How it works
Five SinusoidalCurves with phases a fifth of a turn apart, each with amplitude 1/5 plus a small floor so none fully zeroes - fully zeroed conditions create "sharp edges" in the traversal, per the README. The balanced phases make the five sum to ~1 at all times. Each curve ranges from ~0 to ~0.4, so no prompt ever dominates, but each also gets a clearly audible turn at the front of the mix.
One input, wavelength (FLOAT, default 12, stepped at 0.5). Five KEYFRAMED_CURVE outputs.
Wiring it up
Standard family pattern: each curve output into its own Apply Curve To Conditioning node with its prompt's conditioning, merge with KfConditioningAdd, then into the sampler for AnimateDiff.
Installing it
Ships in ComfyUI-Keyframed. ComfyUI Manager: search "ComfyUI-Keyframed". Or:
cd ComfyUI/custom_nodes
git clone https://github.com/dmarx/ComfyUI-Keyframed
Restart ComfyUI after. No model downloads; the only dependency is the keyframed library, auto-installed on first startup - first load can pause on pip, and pip install keyframed yourself if it's blocked. It's under keyframed → entangled [0-1]. If five concepts are your story and you think in frames, this is the node that keeps all of them alive without a scheduling spreadsheet.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| wavelength | FLOAT | 12.0 | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| KEYFRAMED_CURVE | KEYFRAMED_CURVE | — |
| KEYFRAMED_CURVE | KEYFRAMED_CURVE | — |
| KEYFRAMED_CURVE | KEYFRAMED_CURVE | — |
| KEYFRAMED_CURVE | KEYFRAMED_CURVE | — |
| KEYFRAMED_CURVE | KEYFRAMED_CURVE | — |