Nodes/AnimateDiff Evolved/LoRA Hook Keyframes Interp. πŸŽ­πŸ…πŸ…“
ComfyUI Node Runs on cloud

LoRA Hook Keyframes Interp. πŸŽ­πŸ…πŸ…“

A smooth strength ramp instead of hand-placed steps

By KosinkadinkΒ·Created 3 years agoΒ·Updated 8 days agoΒ· 3,519
LoRA Hook Keyframes Interp. πŸŽ­πŸ…πŸ…“
  • prev_hook_kf
  • HOOK_KF
β—„start_percent0.000β–Ί
β—„end_percent1.000β–Ί
β—„strength_start1.000β–Ί
β—„strength_end1.000β–Ί
β—„interpolationβ–Ύβ–Ί
β—„intervals5β–Ί
β—„print_keyframesfalseβ–Ί

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.

CategoryAnimate Diff πŸŽ­πŸ…πŸ…“/conditioning/schedule lora hooks

Inputs (8)

NameTypeDefaultDescription
start_percentFLOAT0.0000–1β€”
end_percentFLOAT1.0000–1β€”
strength_startFLOAT1.0000–10β€”
strength_endFLOAT1.0000–10β€”
interpolationCOMBO4 options: linear, ease_in, ease_out, ease_in_out
intervalsINT52–100β€”
print_keyframesBOOLEANfalseβ€”
prev_hook_kfoptHOOK_KEYFRAMESβ€”

Outputs (1)

NameTypeDescription
HOOK_KFHOOK_KEYFRAMESβ€”