Nodes/Comfy EverAnimate/Comfy EverAnimate
ComfyUI Node

Comfy EverAnimate

EverAnimate identity anchors, wired straight into native WanAnimate

By younestft·Created 3 months ago·Updated 3 months ago· 17
Comfy EverAnimate
  • positive
  • negative
  • vae
  • clip_vision_output
  • reference_image
  • face_video
  • pose_video
  • background_video
  • character_mask
  • continue_motion
  • prev_samples
  • video_anchor_latent
  • positive
  • negative
  • latent
  • trim_latent
  • trim_image
  • video_frame_offset
width832
height480
length77
batch_size1
num_video_anchor_latents4
num_motion_latents1
video_frame_offset0
pose_strength1.000
face_strength1.000
motion_handoff_strength1.00
continue_motion_max_frames5

If you've ever chained WanAnimate clips by hand - sampling 81 frames, decoding, copying the last frames, bumping the offset, re-encoding - you know the drill is half the battle. Comfy EverAnimate is the node that exists to retire that routine. It's a conditioning node that sits exactly where the native WanAnimate one would, but it adds EverAnimate's identity-anchor trick: a stack of reference-image latents that get prepended to every chunk so the character doesn't slowly morph into someone else as your video gets longer.

The pack is named after the vita-epfl/EverAnimate research project from spring 2026, which proposed anchoring each chunk with N identity latent slots. This node takes that idea and bolts it onto ComfyUI's native WanAnimate conditioning interface - no WanVideoWrapper, no API, no extra weights. If you already have native WanAnimate running, this is the same stack with one extra conditioning node in front of the KSampler.

How it works

Wan's VAE squashes time by ~4x, so an 81-frame chunk is a 21-latent window. EverAnimate's trick is to glue N anchor latents in front of that window via concat_latent_image and concat_mask - the exact conditioning keys native WanAnimate already understands. Your reference image gets VAE-encoded and repeated N times; the sampler sees "here's who this person is" before it ever denoises a frame.

Then there's the motion memory half. prev_samples (your previous chunk's KSampler output) gets sliced down to its last M latents and written over the front of the new window, weighted by motion_handoff_strength. At 1.0 that's the original hard handoff; the tooltip quietly recommends 0.6–0.8 if you're running low-step distilled checkpoints, where a hard lock tends to cause visible pops. Or skip latents entirely and feed continue_motion - the previous chunk's decoded frames - which triggers native WanAnimate-style image carry-over and takes priority over prev_samples.

The inputs that actually matter

You'll wire the guides, and the rest can mostly stay defaulted:

  • reference_image - the character. This is what becomes the identity anchors.
  • pose_video / face_video - the driving motion. pose_strength and face_strength multiply their influence; 0 disables each cleanly.
  • num_video_anchor_latents (N, default 4) and num_motion_latents (M, default 1) - the two knobs this whole node exists for. More anchors = more identity lock, slightly more VRAM.
  • video_frame_offset - connect the previous node's video_frame_offset output here so pose/face/background guides stay aligned after carry frames get backtracked.

The outputs

positive and negative conditioning plus a blank latent go into your KSampler. The two INTs, trim_latent and trim_image, tell you how much to shave off the front of the chunk - that's the anchors and the carried frames - and video_frame_offset feeds the next chunk. The README's intended graph is Comfy EverAnimate -> KSampler -> TrimVideoLatent -> VAEDecode -> Video Combine, which is basically a native WanAnimate graph with this node swapped in.

Install

ComfyUI Manager (search "Comfy EverAnimate") or:

cd ComfyUI/custom_nodes
git clone https://github.com/younestft/Comfy_EverAnimate.git Comfy-EverAnimate

Restart ComfyUI. No requirements.txt, no models shipped, nothing heavy - but you do need the native WanAnimate stack already present: an Animate 14B checkpoint (the bundled example loads a KJ fp8 build of Wan 2.2 Animate 14B), the umt5_xxl text encoder, and the Wan 2.1 VAE.

Common issues

  • The pack targets the newer comfy_api node API. If nodes fail to register, update ComfyUI before debugging anything else.
  • Keep the seed fixed across chunks. The README says it plainly: shared seed, stable boundaries.
  • If you wired background_video and character_mask and nothing changed, check the Master's ref image background toggle - when it's on, those inputs are ignored by design.
  • The whole pack is weeks old. Expect sharp edges and fast iteration; treat it as a tool for experimentation, not a settled pipeline.
Categorymodel/conditioning/video_models

Inputs (23)

NameTypeDefaultDescription
positiveCONDITIONING
negativeCONDITIONING
vaeVAE
widthINT83216–16384
heightINT48016–16384
lengthINT771–16384
batch_sizeINT11–4096
num_video_anchor_latentsINT41–16EverAnimate N. The paper/LoRA default is 4 identity anchor latent slots.
num_motion_latentsINT10–16EverAnimate M. Number of previous sampler latents to carry into the next chunk.
video_frame_offsetINT00–16384Connect this from the previous Comfy EverAnimate video_frame_offset output.
pose_strengthFLOAT1.0000–10Multiplier for native WanAnimate pose latents. 0 disables pose influence.
face_strengthFLOAT1.0000–10Strength for native WanAnimate face guide. 0 sends a neutral face guide.
motion_handoff_strengthFLOAT1.000–1How strongly the previous chunk's motion latents are locked into the next chunk. 1.0 is the original hard handoff; 0.6-0.8 is usually smoother for low-step distill runs.
continue_motion_max_framesINT51–16384When continue_motion images are connected, carry this many final RGB frames into the next chunk. This matches native WanAnimate's image carry-over behavior.
clip_vision_outputoptCLIP_VISION_OUTPUT
reference_imageoptIMAGE
face_videooptIMAGE
pose_videooptIMAGE
background_videooptIMAGE
character_maskoptMASK
continue_motionoptIMAGENative-style image carry-over. Connect the previous chunk's final decoded images here. When connected, this takes priority over prev_samples.
prev_samplesoptLATENTPrevious native Wan sampler output. The node takes the last M latents as motion memory.
video_anchor_latentoptLATENTAdvanced: prebuilt N anchor latents. Leave empty to repeat the reference image latent.

Outputs (6)

NameTypeDescription
positiveCONDITIONING
negativeCONDITIONING
latentLATENT
trim_latentINT
trim_imageINT
video_frame_offsetINT