8x Entangled Curves [0,1] (Wavelength)
Eight prompts and a blend that never moves much
- KEYFRAMED_CURVE
- KEYFRAMED_CURVE
- KEYFRAMED_CURVE
- KEYFRAMED_CURVE
- KEYFRAMED_CURVE
- KEYFRAMED_CURVE
- KEYFRAMED_CURVE
- KEYFRAMED_CURVE
At eight prompts, the entangled-curves trick starts to reveal its other side: the more voices you add, the less any one of them moves the needle. Each curve here peaks at ~0.25, so the difference between "leading" and "in the back" is subtle. That's either exactly the slowly-shifting wash you wanted, or a sign you should have reached for fewer prompts. This node won't judge; it just makes the math consistent either way.
It's the 8x member of the "Entangled Curves" family in dmarx's ComfyUI-Keyframed, parameterized by wavelength. The family builds N phase-locked sine curves that sum to ~1 at every frame; this one builds eight.
How it works
Eight SinusoidalCurves with phases an eighth of a turn apart, each with amplitude 1/8 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 eight sum to ~1 at all times. Each swings between ~0 and ~0.25. With the default wavelength of 12, a full rotation of emphasis through all eight prompts takes 12 frames; since the differences are subtle, you'll generally want a longer wavelength so the shifts read as slow drift rather than nervous flicker.
One input, wavelength (FLOAT, default 12, stepped at 0.5). Eight KEYFRAMED_CURVE outputs.
Wiring it up
Each curve output into its own Apply Curve To Conditioning node, merge all eight with KfConditioningAdd, then into the sampler. This is a lot of per-frame conditioning work - the heaviest members of this family sample slowly, so budget accordingly.
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 files; the only dependency is the keyframed library, auto-installed on first startup (first load can pause on pip; pip install keyframed if it fails). It's under keyframed → entangled [0-1]. Eight is the point where you should ask whether you want a blend that barely changes - and if the answer is no, step back down the ladder.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| wavelength | FLOAT | 12.0 | — |
Outputs (8)
| Name | Type | Description |
|---|---|---|
| KEYFRAMED_CURVE | KEYFRAMED_CURVE | — |
| KEYFRAMED_CURVE | KEYFRAMED_CURVE | — |
| KEYFRAMED_CURVE | KEYFRAMED_CURVE | — |
| KEYFRAMED_CURVE | KEYFRAMED_CURVE | — |
| KEYFRAMED_CURVE | KEYFRAMED_CURVE | — |
| KEYFRAMED_CURVE | KEYFRAMED_CURVE | — |
| KEYFRAMED_CURVE | KEYFRAMED_CURVE | — |
| KEYFRAMED_CURVE | KEYFRAMED_CURVE | — |