Nodes/IAMCCS-nodes/WanImageMotionPro Legacy
ComfyUI Node

WanImageMotionPro Legacy

The old motion Pro you probably only need if a saved workflow demands it

By IAMCCS·Created 11 months ago·Updated 7 days ago· 113
WanImageMotionPro Legacy
  • positive
  • negative
  • anchor_samples
  • prev_samples
  • end_samples
  • positive
  • negative
  • latent
  • trim_slots
length81
motion_latent_count1
motion1.15
motion_modemotion_only (prev_samples)
add_reference_latentsfalse
latent_precisionfp32
vram_profilenormal
include_padding_in_motionfalse
safety_presetsafe
use_end_frametrue
end_transition_frames0
end_lock_slots1
lock_start_slots1
diagnostic_logfalse
use_prev_samplestrue
end_overshoot_slots0

IAMCCS_WanImageMotionProLegacy ("WanImageMotionPro Legacy") is the earlier generation of IAMCCS's end-frame-lock motion node, kept in the pack so older workflows keep loading. If you're starting fresh today, you almost certainly want the newer WanImageMotionPro or the trimmed Plus Simple instead - this one exists for compatibility, not because it's better.

That's not to say it's broken. The Legacy variant already has the two headline features of the family: motion amplitude boost on the prev-sample tail, and FLF-style end-frame locking via use_end_frame, end_lock_slots, and end_overshoot_slots with a trim_slots output. The shared core is all here: motion (1.0–2.0), motion_mode, motion_latent_count, safety_preset (base/safe/safer/legacy), lock_start_slots, vram_profile, and the diagnostic_log toggle.

What it's missing

Compare the schema with the current Pro and the differences are obvious. There's no clip_vision_mode routing (the fix for SVI-Pro crossfade bleed when anchor and end are the same image), no latent_refresh/delta_max AdaIN stabilization, no prev_samples_profile/prev_tail_pick_mode/prev_anchor_blend for handling ragged SVI tails, and no raw_mode parity switch. It's the 1.3.5-era feature set - good enough for straightforward A→B chunks, but it can't handle the messy continuation cases the modern node was built for.

The end_transition_frames input is also here, deprecated with the same warning as everywhere else in this family: keep it at 0, because blending latents toward the end frame in latent space produces frozen, static output. The VAE latent space just doesn't interpolate linearly.

When to use it (honestly)

Three scenarios. You loaded an old workflow and don't want to rewire - fine, it'll run. You need exact bit-for-bit behavior of an older run for comparison. Or you're deliberately avoiding the newer node's added complexity and want the small, predictable surface. Otherwise, pick the current node.

Outputs are the family standard: positive, negative, latent, and trim_slots for cutting the overshoot tail. Same end_overshoot_slots warning applies - if you have KJNodes FETA/wrapped-attention WAN optimizations active, overshoot > 0 can crash with an einops shape mismatch; set it to 0 or update KJNodes.

Install

Same pack, same routine:

cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git

or ComfyUI Manager → search "IAMCCS" → restart. No models, no extra deps. Compatibility floor: ComfyUI ≥ 0.3.0, Python ≥ 3.12, Torch ≥ 2.8.

The practical takeaway: keep the pack updated, let legacy nodes retire in your saved graphs, and only reach for this one when a workflow literally references it.

CategoryIAMCCS/Wan

Inputs (21)

NameTypeDefaultDescription
positiveCONDITIONING
negativeCONDITIONING
lengthINT811–16384
anchor_samplesLATENT
motion_latent_countINT10–16
motionFLOAT1.151–2
motion_modeCOMBOmotion_only (prev_samples)2 options: motion_only (prev_samples), all_nonfirst (anchor+motion)
add_reference_latentsBOOLEANfalse
latent_precisionCOMBOfp324 options: auto, fp16, fp32, normal
vram_profileCOMBOnormal5 options: normal, chunked_blocks_2, chunked_blocks_4, loop_per_frame (lowest_vram), cpu_offload (slowest)
include_padding_in_motionBOOLEANfalse
safety_presetCOMBOsafebase : 1:1 with WanImageToVideoSVIProFLF - no amplitude processing at all. safe : per-channel stabilisation + tanh limiter + 2-frame ramp (active at any motion value, recommended default). safer : same as safe but tighter limiter + longer ramp (best above motion=1.5). legacy : hard clamp +/-6 + frame-scalar diff centering, mirrors PainterI2V algorithm.
use_end_frameBOOLEANtrueWhen False, end_samples is ignored even if the wire is connected. Use this to safely bypass the end-frame encoder without disconnecting the node, preventing ping-pong artifacts.
end_transition_framesINT00–32DEPRECATED - keep at 0. Values > 0 blend padding latents toward the end frame in latent space, which produces static/frozen output because VAE latent interpolation is not linear. 0 = hard cut, identical to the original FLF node behavior.
end_lock_slotsINT11–16How many final latent slots to hard-lock to end_samples. Default 1 = only the very last slot (~last 4 video frames) is locked, so the end frame appears exactly at the last frame defined by 'length'. Increase only if a single locked slot is not enough for convergence. Set 16 for 1:1 parity with the original FLF node (locks min(T_end, total_latents)).
lock_start_slotsINT10–16How many initial latent slots to hard-lock to the start image via concat_mask. Default 1 (~ first 4 video frames) matches FLF-style start anchoring. Set 0 to allow motion immediately from the first video frame.
diagnostic_logBOOLEANfalseWhen enabled, prints compact diagnostics about concat_latent_image/mask and motion/end-lock ranges. Useful to debug 'static clip' or segment discontinuities.
use_prev_samplesBOOLEANtrueWhen False, prev_samples is ignored even if the wire is connected. Use this on the first segment when autolink forces prev_samples to be connected.
end_overshoot_slotsINT00–8Extends the internal generation window by this many latent slots when the end lock is active (use_end_frame=True + end_samples connected). The end image is locked at the tail of the EXTENDED range, so the visible clip converges toward the end frame without hard-freezing on it. Use the trim_slots output to cut the overshoot frames after sampling. 0 = disabled, original behavior. 1 = +4 video frames (recommended). 2 = +8 video frames (looser convergence). NOTE: If you have KJNodes WAN attention optimizations (FETA / wrapped_attention) enabled, some versions may crash with an einops shape mismatch when overshoot > 0. Workaround: set end_overshoot_slots=0 or disable/update that KJNodes optimization.
prev_samplesoptLATENT
end_samplesoptLATENT

Outputs (4)

NameTypeDescription
positiveCONDITIONING
negativeCONDITIONING
latentLATENT
trim_slotsINT