DynamiCrafter BatchInterpolation
Chain many keyframes into one clip
- model
- clip_vision
- positive
- negative
- images
- images
- last_image
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_loadedkeeps 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.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| model | DCMODEL | — | |
| clip_vision | CLIP_VISION | — | |
| positive | CONDITIONING | — | |
| negative | CONDITIONING | — | |
| images | IMAGE | — | |
| steps | INT | 501–200 | — |
| cfg | FLOAT | 7.000–20 | — |
| eta | FLOAT | 1.000–20 | — |
| frames | INT | 161–100 | — |
| seed | INT | 00–18446744073709550000 | — |
| fs | INT | 102–100 | — |
| keep_model_loaded | BOOLEAN | true | — |
| vae_dtype | COMBO | auto | 4 options: fp32, fp16, bf16, auto |
| cut_near_keyframes | INT | 00–5 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| last_image | IMAGE | — |