Nodes/AnimateDiff Evolved/Apply AnimateDiff Model (Adv.) πŸŽ­πŸ…πŸ…“β‘‘
ComfyUI Node Runs on cloud

Apply AnimateDiff Model (Adv.) πŸŽ­πŸ…πŸ…“β‘‘

The Advanced Apply node β€” scheduling and stacking motion models

By KosinkadinkΒ·Created 3 years agoΒ·Updated 8 days agoΒ· 3,519
Apply AnimateDiff Model (Adv.) πŸŽ­πŸ…πŸ…“β‘‘
  • motion_model
  • motion_lora
  • scale_multival
  • effect_multival
  • ad_keyframes
  • prev_m_models
  • per_block
  • M_MODELS
β—„start_percent0.000β–Ί
β—„end_percent1.000β–Ί

Displayed as Apply AnimateDiff Model (Adv.), this is the full-featured sibling of ADE_ApplyAnimateDiffModelSimple. Same job - turn a loaded motion model into the M_MODELS bundle Use Evolved Sampling needs - but with two things Simple doesn't have: start_percent/end_percent to schedule exactly when in the sampling process this motion model is active, and prev_m_models to chain multiple motion models together. That second one is what the README means by "using multiple motion models at once via Gen2 nodes" - a capability the Simple node and the Gen1 all-in-one loaders can't do.

Reach for this over Simple whenever you want anything beyond "one motion model, active the whole time." Two concrete uses: fading a motion model in partway through sampling instead of from step zero, or stacking two different motion models (say, a base v3 module plus a HotshotXL-style module for a specific effect) so both contribute.

How it works

It wraps a MOTION_MODEL_ADE object into an M_MODELS bundle, same as Simple, but with scheduling metadata attached: start_percent/end_percent tell Use Evolved Sampling to only apply this particular motion model's influence during that window of the denoising process. If you chain another Apply node's output into prev_m_models, both motion models' bundles get combined into one M_MODELS that carries all of them downstream together.

The inputs and outputs that matter

Required: motion_model (type MOTION_MODEL_ADE, from a Load or Inject node), start_percent (default 0), and end_percent (default 1) - leave these at their full-range defaults unless you specifically want to schedule this model's activity to part of the run.

Optional: motion_lora for a camera-movement LoRA on this specific model, scale_multival and effect_multival for strength/override control, ad_keyframes for finer scheduling within this model's active window, prev_m_models - the stacking input, feed another Apply node's M_MODELS output here to combine - and per_block for block-level customization. Output is M_MODELS, feeding Use Evolved Sampling's m_models input, or yet another Apply node's prev_m_models if you're stacking three or more.

How to install it

Standard for the pack - ComfyUI Manager, search AnimateDiff Evolved by Kosinkadink, or:

cd ComfyUI/custom_nodes && git clone https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved

No model download tied to this node specifically - it applies whatever motion module(s) you've already loaded elsewhere in the graph.

Common issues & troubleshooting

Stacked two motion models and results got worse, not better. Combining motion models is a real feature but not free - two modules pulling in different directions can fight each other. Try scheduling them to non-overlapping start_percent/end_percent ranges rather than both running the full 0–1 range simultaneously, so one hands off to the other instead of both fighting for influence at once.

Scheduled a model to start partway through (start_percent > 0) and the transition looks abrupt. Expected - there's no built-in crossfade between "motion model off" and "motion model on" at the boundary. If you need a smoother handoff, overlap two Apply nodes' ranges slightly rather than using a hard cutoff on one.

Not sure if you need this over Simple. If your workflow is one motion model, active for the whole clip, with no stacking - ADE_ApplyAnimateDiffModelSimple does the same job with fewer inputs to worry about. Use this one specifically when you need scheduling or stacking.

CategoryAnimate Diff πŸŽ­πŸ…πŸ…“/β‘‘ Gen2 nodes β‘‘

Inputs (9)

NameTypeDefaultDescription
motion_modelMOTION_MODEL_ADEβ€”
start_percentFLOAT0.0000–1β€”
end_percentFLOAT1.0000–1β€”
motion_loraoptMOTION_LORAβ€”
scale_multivaloptMULTIVALβ€”
effect_multivaloptMULTIVALβ€”
ad_keyframesoptAD_KEYFRAMESβ€”
prev_m_modelsoptM_MODELSβ€”
per_blockoptPER_BLOCKβ€”

Outputs (1)

NameTypeDescription
M_MODELSM_MODELSβ€”