LoRA Hook Keyframes Interp. ππ π
A smooth strength ramp instead of hand-placed steps
- prev_hook_kf
- HOOK_KF
Its sibling node, LoRA Hook Keyframe, builds one strength value at one point in time - chain several by hand and you get a step function. This node skips the hand-placing: give it a start and end percent, a start and end strength, and it generates a whole run of interpolated keyframes between them in one shot. If what you actually want is a LoRA fading in or out smoothly rather than switching in discrete jumps, this is the node, not a chain of the single-keyframe version.
How it works
start_percent/end_percent mark the window of the sampling process this ramp covers, and strength_start/strength_end are the values it interpolates between across that window. intervals sets how many discrete keyframes get generated to approximate the curve - more intervals, smoother the ramp reads in practice, since under the hood it's still a series of steps even though it looks continuous. interpolation picks the shape of that curve rather than a straight line between the two endpoints, letting the strength ease in, ease out, or move linearly, depending on what fits your generation.
Like its sibling, prev_hook_kf lets you chain this generated block onto an existing keyframe schedule, so you can combine a hand-placed step with an interpolated ramp in the same overall timeline. print_keyframes dumps the actual generated schedule for inspection - worth flipping on the first time you build a new curve, so you're checking real numbers against your intent before spending render time on a long clip.
The inputs and outputs that matter
Required: start_percent (default 0), end_percent (default 1), strength_start (default 1, range 0β10), strength_end (default 1, range 0β10), interpolation - the curve shape, intervals (default 5, range 2β100) - how many keyframes the ramp gets broken into, and print_keyframes (default false) - debug printout of the generated schedule.
Optional: prev_hook_kf (HOOK_KEYFRAMES) - chain onto an existing schedule.
Output is a single HOOK_KF (HOOK_KEYFRAMES), attached to a LoRA Hook the same way its sibling's output is.
How to install it
ComfyUI Manager: search AnimateDiff Evolved, confirm the author is Kosinkadink, install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved
then restart. No model download for this node specifically - pure scheduling logic on top of a LoRA hook and LoRA file you already have set up.
Common issues & troubleshooting
Ramp doesn't feel smooth, more like visible jumps. Raise intervals. Under the hood this is still discrete keyframes, so a low interval count on a long time window will read as steppy rather than continuous, especially at slower LoRA strength changes.
Not sure the curve is doing what you intended. Turn on print_keyframes and read the actual generated values rather than guessing from output alone - this is a genuinely under-documented corner of the pack (LoRA hook scheduling doesn't have much community writeup to lean on), so verifying against the printed schedule is more reliable than assuming a particular interpolation behavior.
Strength ramps but the LoRA's effect doesn't seem to change at all. Confirm this node's output actually reaches the hook, and that the hook is attached to conditioning or a region that's genuinely part of what's being sampled - same failure mode as the single-keyframe node, since both output the identical HOOK_KEYFRAMES type into the same downstream slot.
Wondering whether you need the smooth version or the manual one. If you want a clean fade in or out between two known strengths, this node does it in one step. If you need an irregular schedule - on, then off, then back on at a different strength - you're better off hand-placing individual LoRA Hook Keyframe nodes instead, since interpolation only ever moves between two endpoints.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| start_percent | FLOAT | 0.0000β1 | β |
| end_percent | FLOAT | 1.0000β1 | β |
| strength_start | FLOAT | 1.0000β10 | β |
| strength_end | FLOAT | 1.0000β10 | β |
| interpolation | COMBO | 4 options: linear, ease_in, ease_out, ease_in_out | |
| intervals | INT | 52β100 | β |
| print_keyframes | BOOLEAN | false | β |
| prev_hook_kfopt | HOOK_KEYFRAMES | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| HOOK_KF | HOOK_KEYFRAMES | β |