Nodes/ComfyUI-EasyAnimate/EasyAnimateRun
ComfyUI Node

EasyAnimateRun

The node that actually makes the video

By chaojie·Created 2 years ago·Updated 2 years ago· 56
EasyAnimateRun
  • model
  • IMAGE
promptA snowy forest landscape with a dirt road running through it. The road is flanked by trees covered in snow, and the ground is also covered in snow. The sun is shining, creating a bright and serene atmosphere. The road appears to be empty, and there are no people or animals visible in the video. The style of the video is a natural landscape shot, with a focus on the beauty of the snowy forest and the peacefulness of the road.
negative_promptStrange motion trajectory, a poor composition and deformed video, worst quality, normal quality, low quality, low resolution, duplicate and ugly
video_length80
num_inference_steps30
width512
height512
guidance_scale6.00
seed1234

EasyAnimateRun is the payoff node in this pack. Its sibling EasyAnimateLoader assembles the whole EasyAnimate pipeline - PixArt backbone, motion module, video VAE - into one EasyAnimateModel wire; this node takes that wire, your prompt, and a handful of settings, and produces frames. The first thing a beginner needs to know: the output is not a video file. It's an IMAGE batch - in ComfyUI terms, a tensor of all 80 frames stacked together. You save it with VideoHelperSuite's VHS_VideoCombine, which is exactly what the pack's own wf.json does. If you expected an mp4 to pop out, that's the missing piece.

EasyAnimate itself is Alibaba PAI's open-source text-to-video model, a PixArt diffusion transformer with an AnimateDiff-style motion module. Its release thread had to hold off the "sora-like is a stretch" crowd back in June 2024, and they had a point - it's a modest, low-res (512×512) video baseline, not a rival to anything commercial. But it runs locally, needs no API key, and this node is a clean two-node wrapper around it. It's a fine way to learn what T2V generation actually feels like without wrangling a Wan or a Hunyuan install.

How it works

The node hands your prompt to the EasyAnimate diffusers pipeline with video_length, resolution, guidance_scale, num_inference_steps, and a seeded generator, then rearranges the raw output from b c t h w (batch, channels, time, height, width) to b t h w c. That last reshape is what makes ComfyUI see a stack of frames instead of a blob of tensors - and what lets VHS_VideoCombine pick them up as a video.

The inputs that matter

  • model - the EasyAnimateModel wire from EasyAnimateLoader. This is required, and it's why the loader exists: you can't run this node standalone.
  • prompt / negative_prompt - both multiline. The defaults are decent starting points; the negative is the standard anti-artifact list ("strange motion trajectory, deformed video, worst quality…"). PixArt conditions on T5, so long, descriptive English sentences work better than comma soup.
  • video_length - default 80 frames (about 3 seconds at ~24fps). Keep it even; the motion module chunks frames in pairs, and odd lengths are where things get weird.
  • width / height - default 512×512. This model was trained at that size. Pushing it up eats VRAM fast and doesn't buy you much.
  • num_inference_steps (30), guidance_scale (6.0), seed - the usual knobs. More steps costs time; the seed is your reproducibility lever.

One detail worth knowing: the sampler was chosen back in the loader, and the loader's sampler dropdown is ignored anyway - the code pins DPM++ unconditionally. So if motion looks mushy, your levers here are steps and guidance, not scheduler swaps.

Installing it

Same pack as the loader, so one install covers both:

cd ComfyUI/custom_nodes
git clone https://github.com/chaojie/ComfyUI-EasyAnimate

or search "EasyAnimate" in ComfyUI Manager, then restart. Then download the two required weights: the motion module (easyanimate_v1_mm.safetensors, 4.1GB) into ComfyUI/models/checkpoints, and the PixArt base (PixArt-XL-2-512x512.tar, 11.4GB) extracted into ComfyUI/models/diffusers. For saving the output you'll also want VideoHelperSuite from the Manager. The pack's requirements (diffusers, transformers, xformers, decord, timm) are heavy but standard - just know they install into your shared Python environment, so a dependency clash with an existing pack is the classic first-run failure.

Common issues

The most common confusion is the missing mp4 - again, wire IMAGE into VHS_VideoCombine, set fps and format there, and it'll write the file. If the node errors at load time with an empty model wire, you forgot the loader or it failed to assemble. And if generation crawls or OOMs, the loader's CPU offload keeps the pipeline modest, but 80 frames at 512×512 is still real work - drop video_length to 40 or the resolution to 448 if your card is struggling.

CategoryEasyAnimate

Inputs (9)

NameTypeDefaultDescription
modelEasyAnimateModel
promptSTRINGA snowy forest landscape with a dirt road running through it. The road is flanked by trees covered in snow, and the ground is also covered in snow. The sun is shining, creating a bright and serene atmosphere. The road appears to be empty, and there are no people or animals visible in the video. The style of the video is a natural landscape shot, with a focus on the beauty of the snowy forest and the peacefulness of the road.
negative_promptSTRINGStrange motion trajectory, a poor composition and deformed video, worst quality, normal quality, low quality, low resolution, duplicate and ugly
video_lengthINT80
num_inference_stepsINT30
widthINT512
heightINT512
guidance_scaleFLOAT6.00
seedINT1234

Outputs (1)

NameTypeDescription
IMAGEIMAGE