Nodes/AnimateDiff Evolved/NaiveReuse Keyframe πŸŽ­πŸ…πŸ…“
ComfyUI Node Runs on cloud

NaiveReuse Keyframe πŸŽ­πŸ…πŸ…“

Schedule the cheap consistency fix over time

By KosinkadinkΒ·Created 3 years agoΒ·Updated 8 days agoΒ· 3,519
NaiveReuse Keyframe πŸŽ­πŸ…πŸ…“
  • prev_kf
  • mult_multival
  • NAIVEREUSE_KF
β—„mult1.000β–Ί
β—„start_percent0.000β–Ί
β—„guarantee_steps1β–Ί
β—„inherit_missingtrueβ–Ί

NaiveReuse's root node gives you one flat strength (strength_multival) or a keyframe schedule (naivereuse_kf). This node is a single point in that schedule - the same chaining pattern used across this whole pack's scheduling nodes, just simpler than ContextRef's version, because NaiveReuse has no mode or tune concept to override, only strength.

What it does

mult (0–1, default 1) is the strength at this point in the schedule. start_percent (default 0) is where it kicks in. guarantee_steps (default 1) is a floor - this keyframe is guaranteed to actually run for at least that many steps even if the next one in the chain is scheduled right behind it. mult_multival lets a mask or a per-frame list of floats drive the strength instead of a flat number. prev_kf chains this onto an earlier NaiveReuse Keyframe to build a multi-point schedule by hand. inherit_missing (default true) carries over from the same pattern ContextRef Keyframe uses - since NaiveReuse has no mode or tune fields to replace, its practical effect here is minimal, but it's there for consistency across the pack's keyframe API.

Output is NAIVEREUSE_KF, which feeds into NaiveReuse's naivereuse_kf input, or chains further via another Keyframe's prev_kf.

Why schedule it at all

NaiveReuse already defaults to running only through the first 15% of the sampling process, on the theory that's when reusing the reference's noise statistics does the most good. Scheduling on top of that lets you go further - say, start it at full strength for the very first few steps, then taper it off rather than cutting it off sharply at a fixed percent, for a gentler transition into the model's own independent generation.

A concrete example

A typical shape: one keyframe at start_percent 0 with mult 1 for the first handful of steps, chained via prev_kf into a second at start_percent 0.08 with mult 0 - effectively switching NaiveReuse off partway through the window it's normally allowed to run in (end_percent 0.15 on the root node), rather than letting it run at full strength the whole way to that cutoff. That's the main reason to reach for this node over the root's flat strength_multival: a taper instead of an on/off switch.

Installing it

ComfyUI Manager: search AnimateDiff Evolved by Kosinkadink, install, restart. Or git clone https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved into custom_nodes and restart manually.

Common issues

Same ordering caution as the rest of this pack's chained keyframe nodes: keep start_percent values ascending as you walk the prev_kf chain, or the schedule won't produce the shape you expect. And since NaiveReuse has no public community documentation to check your settings against, a short test render is the only real way to confirm a schedule is doing what you think.

CategoryAnimate Diff πŸŽ­πŸ…πŸ…“/context opts/context extras/naivereuse

Inputs (6)

NameTypeDefaultDescription
prev_kfoptNAIVEREUSE_KEYFRAMEβ€”
mult_multivaloptMULTIVALβ€”
multoptFLOAT1.0000–1β€”
start_percentoptFLOAT0.0000–1β€”
guarantee_stepsoptINT10–9007199254740991β€”
inherit_missingoptBOOLEANtrueβ€”

Outputs (1)

NameTypeDescription
NAIVEREUSE_KFNAIVEREUSE_KEYFRAMEβ€”