ComfyUI Node

ExVideoNode

Stretch Stable Video Diffusion to 128 frames from one still

By AIFSH·Created 2 years ago·Updated 2 years ago· 101
ExVideoNode
  • image
  • svd_base_model
  • exvideo_model
  • VIDEO
num_frames128
fps30
num_inference_steps50
if_upscaletrue
seed1

One image in, an mp4 out - that's the pitch. But ExVideoNode isn't just another image-to-video node; it's an SVD (Stable Video Diffusion) node that goes where plain SVD won't: way past its native ~14 frames. The default num_frames is 128, so a single still becomes a four-plus-second clip at 30fps. If you've been getting two-second loops out of ComfyUI's stock SVD workflow and want longer, this is the pack's answer.

How it works

Under the hood it builds DiffSynth's SVDVideoPipeline from a model manager holding two models: the SVD base (stabilityai/stable-video-diffusion-img2vid-xt) and the ExVideo continuation model (ECNU-CILab/ExVideo-SVD-128f-v1). That second model is the whole trick - ExVideo is a fine-tune that teaches SVD to keep going for far more frames than it was trained for, and the node wires it in as a second SD_MODEL_PATH. Your input image gets crop-and-resized to 512x512, motion intensity is fixed at a bucket of 127, and it denoises num_frames frames at your chosen fps with num_inference_steps steps.

The if_upscale toggle (default on) runs a second pass after the first render: it takes the 512 output, re-encodes at 1024 with denoising_strength 0.5 and half the steps, and writes an upscaled_ prefixed file - that's the one the node returns if it succeeds. Turn it off and you get the raw 512 result, which is your first lever when VRAM complains. Note it's a crop-and-resize, not a letterbox: your image gets cropped to square, so compose for a center crop or you'll lose the edges.

The inputs that matter

  • image (IMAGE) - the still you're animating.
  • svd_base_model and exvideo_model - both SD_MODEL_PATH. The shipped workflow wires two SDPathLoader nodes into these: one for the SVD base, one for the ExVideo fine-tune. Both download on first use.
  • num_frames (128), fps (30), num_inference_steps (50) - the clip length and quality knobs.
  • if_upscale (True), seed - the rest of it.

Output is VIDEO, and it lands as an mp4 in ComfyUI's output folder. Wire it into the pack's PreViewVideo node to actually look at it in the UI.

What you're signing up for

This is the pack's most VRAM-hungry node, and the author's test environment - an 11GB 2080 Ti - is optimistic, not typical. SVD is already chunky, and 128 frames of temporal processing at fp16 plus a 1024 upscale pass will OOM a small card fast. Your dials, in order: if_upscale off, then num_frames down, then fps down. The downloads are also chunky (SVD xt is multiple gigabytes), and they're synchronous - the UI freezing on the first run is expected.

One honest caveat: for one-off short clips, ComfyUI's regular SVD nodes are more flexible - they expose motion bucket and micro-conditioning that this node hardcodes. ExVideoNode is a specialization, not a replacement. If what you want is a long take from a still with zero workflow fiddling, it's exactly that. If you want to tune the motion, build the stock SVD graph instead.

Install is the pack standard: ComfyUI Manager (search "ComfyUI-DiffSynth-Studio"), or git clone https://github.com/AIFSH/ComfyUI-DiffSynth-Studio into custom_nodes, pip install -r requirements.txt, restart, and make sure ffmpeg is on your PATH. Expect the first run to spend a while downloading models before a single frame appears.

CategoryAIFSH_DiffSynth-Studio

Inputs (8)

NameTypeDefaultDescription
imageIMAGE
svd_base_modelSD_MODEL_PATH
exvideo_modelSD_MODEL_PATH
num_framesINT128
fpsINT30
num_inference_stepsINT50
if_upscaleBOOLEANtrue
seedINT1

Outputs (1)

NameTypeDescription
VIDEOVIDEO