DynamiCrafter ControlnetApply
Steer the animation with sketches
- controlnet
- images
- controlnet
This is the node that actually does something with DynamiCrafter's control model. On its own, a loaded sketch encoder is inert. DynamiCrafterControlnetApply combines that encoder with your control images and a strength value, and produces the guidance object that plugs into the interpolation sampler. If you want the generated inbetween frames to follow rough sketches instead of being left entirely to the model, this is the node in the middle that makes it happen.
It's part of kijai's ComfyUI-DynamiCrafterWrapper, the ComfyUI port of the CUHK / Tencent AI Lab DynamiCrafter and ToonCrafter models. The whole ControlNet path here is optional sugar on top of the core interpolation workflow - powerful when you need it, ignorable when you don't.
How it works
Standard ComfyUI ControlNet conditions a still image on a structural map. This is the same idea aimed at video: the control model reads your sketch/control frames and biases the generated animation toward them, at a strength you set. That's what enables ToonCrafter's reference-guided colorization - provide sketch frames, and the interpolation follows the drawn structure while filling in motion and color. This node packages the model + images + strength into a single DC_CONTROL handle that the sampler knows how to consume.
The inputs and outputs that matter
- controlnet - the
DC_CN_MODELfromDownloadAndLoadDynamiCrafterCNModel(orDynamiCrafterCNLoader). This is the loaded encoder. - images - your control frames (
IMAGE), i.e. the sketches you want the animation to follow. - control_scale - the strength dial, 0 to 1, default 0.6. This is the one you'll actually tune: higher makes the sketch guidance more dominant (the output hews tightly to your drawings), lower lets the model take more liberties. Around 0.6 is a reasonable middle; push it up if the guidance is being ignored, down if the result looks stiff or over-constrained.
The output is controlnet (type DC_CONTROL) - a bit of a naming quirk, since the input is also called controlnet, but the type changed from DC_CN_MODEL to DC_CONTROL. That output wires into the optional controlnet input on ToonCrafterInterpolation.
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 and restart. You'll also want the control model loaded (via DownloadAndLoadDynamiCrafterCNModel) and an interpolation node that accepts DC_CONTROL.
Common issues
- Guidance seems ignored, or too heavy-handed. That's
control_scale. Raise it toward 1 for stronger adherence, lower it toward 0 to loosen. Default 0.6 is a starting point, not a law. - Nothing to connect it to. The
DC_CONTROLoutput only fitsToonCrafterInterpolation's optionalcontrolnetslot. If your graph is a plainDynamiCrafterI2Vimage-to-video, there's nowhere for this to go - the control path is for the interpolation node. - Mismatched control images. Your
imagesshould line up with the animation you're generating (roughly one control frame per intended keyframe/segment). Random or mismatched sketches produce confused guidance. And remember the whole control path is optional - if you don't want sketch steering, just don't wire it up.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| controlnet | DC_CN_MODEL | — | |
| images | IMAGE | — | |
| control_scale | FLOAT | 0.600–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| controlnet | DC_CONTROL | — |