4x Entangled Curves [0,1] (Frequency)
Four prompts rotating through the lead
- KEYFRAMED_CURVE
- KEYFRAMED_CURVE
- KEYFRAMED_CURVE
- KEYFRAMED_CURVE
Four prompts, four sine curves, one shared cycle. That's what this node gives you: phase-locked sinusoidal weights that sum to ~1 at every frame, so each of your four prompts cycles through being the strongest contributor while the others stay present underneath. It's the "everyone's in the mix, someone's just louder" model of animation, and it's the default choice for anything with a quad of related concepts.
This is the 4x member of the "Entangled Curves" family in dmarx's ComfyUI-Keyframed pack, parameterized by frequency. Where the 2x version is a crossfade and 3x is a rotating triangle, 4x starts to feel like a proper ensemble - no single prompt ever hits full strength, so the image is always a blend, just with a changing center of gravity.
How it works
Four SinusoidalCurves are built with phases a quarter-turn apart, each with amplitude 1/4 plus a small floor so it never fully zeroes - fully zeroed conditions create "sharp edges" in the traversal, per the README. Balanced phases mean the four curves sum to ~1 at any instant. Individually each swings between ~0 and ~1/2, so the peak prompt contributes half the conditioning while the other three split the rest. The "lead" rotates around the cycle; nothing snaps on or off.
One input, frequency (FLOAT, default 1/12, stepped at 0.01). Four KEYFRAMED_CURVE outputs.
Wiring it up
Each curve output into its own Apply Curve To Conditioning node with its prompt's conditioning, merge with KfConditioningAdd ("Add Conditions"), then into the sampler. Feed it through AnimateDiff and each frame gets a different four-way blend. If four is more than you need, drop to the 3x or 2x sibling; if four isn't enough, the pack goes all the way up to 9x.
Installing it
Part of ComfyUI-Keyframed. ComfyUI Manager: search "ComfyUI-Keyframed". Or:
cd ComfyUI/custom_nodes
git clone https://github.com/dmarx/ComfyUI-Keyframed
Restart ComfyUI. No model downloads; the only dependency is the keyframed library, auto-installed on first startup (the first load can pause while pip runs; if it fails, pip install keyframed yourself). The node is under keyframed → entangled [0-1]. For a four-element story - seasons, moods, characters - this is the node that turns it into motion.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| frequency | FLOAT | 0.08 | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| KEYFRAMED_CURVE | KEYFRAMED_CURVE | — |
| KEYFRAMED_CURVE | KEYFRAMED_CURVE | — |
| KEYFRAMED_CURVE | KEYFRAMED_CURVE | — |
| KEYFRAMED_CURVE | KEYFRAMED_CURVE | — |