Nodes/ComfyUI-DynamiCrafterWrapper/DynamiCrafter BatchInterpolation
ComfyUI Node

DynamiCrafter BatchInterpolation

Chain many keyframes into one clip

By kijai·Created 2 years ago·Updated about a year ago· 681
DynamiCrafter BatchInterpolation
  • model
  • clip_vision
  • positive
  • negative
  • images
  • images
  • last_image
steps50
cfg7.00
eta1.00
frames16
seed0
fs10
keep_model_loadedtrue
vae_dtypeauto
cut_near_keyframes0

Regular interpolation takes two frames and fills the gap. This node takes a whole stack of keyframes and interpolates between each consecutive pair, stitching the results into one continuous sequence. If you've got a handful of drawings or stills that mark out the beats of a shot, this is how you turn them into a single animated clip in one run instead of doing pair-by-pair interpolations by hand and gluing them together afterward.

It's part of kijai's ComfyUI-DynamiCrafterWrapper, the ComfyUI port of the CUHK / Tencent AI Lab DynamiCrafter/ToonCrafter models. Think of this node as the multi-keyframe version of the interpolation you'd otherwise run one pair at a time.

How it works

You give it a batch of images - three, five, however many keyframes - and it walks through them, generating the inbetween frames for keyframe 1→2, then 2→3, and so on, concatenating everything into one output sequence. Unlike ToonCrafterInterpolation, decode is built in here: the node outputs finished images directly, no separate decode node required. It also holds the model in VRAM across the batch (there's a toggle for it) so you're not paying reload cost between segments.

The inputs and outputs that matter

Wiring is the same shape as the other samplers: model (DCMODEL), clip_vision, positive/negative conditioning, and images - except here images is your sequence of keyframes, not a single pair. The dials that matter:

  • frames - how many frames to generate per segment (default 16). More keyframes × more frames-per-segment = a longer final clip, so watch your total.
  • fs - motion/frame-stride (default 10). Same knob as elsewhere: lower is calmer, higher is more dynamic.
  • cut_near_keyframes - the batch-specific one. Set it (0–5) to trim a few generated frames near each keyframe. Because every keyframe is a fixed anchor, the motion tends to slow and "pause" as it approaches one; cutting a frame or two near each anchor smooths that stutter out of the final sequence.
  • steps / cfg - quality and prompt adherence; defaults 50 / 7.
  • keep_model_loaded - leave it true (the default) so the model stays resident across the batch. Only turn it off if you're desperate to free VRAM between segments.

Two outputs: images (the full stitched IMAGE sequence, ready for Video Combine) and last_image (the final frame, for chaining another clip off the end).

Installing it

Bundled with the pack. ComfyUI Manager → search ComfyUI-DynamiCrafterWrapper, or cd ComfyUI/custom_nodes && git clone https://github.com/kijai/ComfyUI-DynamiCrafterWrapper, then pip install -r requirements.txt, restart. Install xformers (pip install xformers --no-deps) for memory. You'll need a DynamiCrafter/ToonCrafter checkpoint (DownloadAndLoadDynamiCrafterModel), the SD 2.1 CLIP encoder, and a CLIP Vision model.

Common issues

  • Stutter at every keyframe. Expected without cut_near_keyframes - the anchors make motion pause. Bump it to 1 or 2 and it cleans up.
  • VRAM climbs across the batch. keep_model_loaded keeps the model resident, which is faster but heavier. On a tight card, drop resolution and frames-per-segment rather than turning it off, since reloading between every pair is painfully slow.
  • Keyframes too different. The model interpolates best between frames that are close in composition and style. Wildly different consecutive keyframes give you muddy, unconvincing transitions - space your beats sensibly.
  • Runtime adds up. Every segment is a full sampling pass, so a long keyframe list is a long render. Prototype with fewer frames and steps before committing to the full run.
CategoryDynamiCrafterWrapper

Inputs (14)

NameTypeDefaultDescription
modelDCMODEL
clip_visionCLIP_VISION
positiveCONDITIONING
negativeCONDITIONING
imagesIMAGE
stepsINT501–200
cfgFLOAT7.000–20
etaFLOAT1.000–20
framesINT161–100
seedINT00–18446744073709550000
fsINT102–100
keep_model_loadedBOOLEANtrue
vae_dtypeCOMBOauto4 options: fp32, fp16, bf16, auto
cut_near_keyframesINT00–5

Outputs (2)

NameTypeDescription
imagesIMAGE
last_imageIMAGE