Apply AnimateDiff Model (Adv.) ππ π β‘
The Advanced Apply node β scheduling and stacking motion models
- motion_model
- motion_lora
- scale_multival
- effect_multival
- ad_keyframes
- prev_m_models
- per_block
- M_MODELS
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.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| motion_model | MOTION_MODEL_ADE | β | |
| start_percent | FLOAT | 0.0000β1 | β |
| end_percent | FLOAT | 1.0000β1 | β |
| motion_loraopt | MOTION_LORA | β | |
| scale_multivalopt | MULTIVAL | β | |
| effect_multivalopt | MULTIVAL | β | |
| ad_keyframesopt | AD_KEYFRAMES | β | |
| prev_m_modelsopt | M_MODELS | β | |
| per_blockopt | PER_BLOCK | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| M_MODELS | M_MODELS | β |