Create CameraCtrl Poses ππ π β‘
Your first camera move in AnimateDiff
- prev_poses
- CAMERACTRL_POSES
CameraCtrl is AnimateDiff-Evolved's camera-motion control feature - instead of hoping the model gives you a pan or zoom because your prompt asked nicely, you author an actual camera trajectory and CameraCtrl steers generation to follow it. This node is where most people would start: one clean camera move, no stacking, no complexity.
What it does
Pick a motion_type from the dropdown (the kind of move - pan, zoom, tilt, and similar, depending on what CameraCtrl's model supports), set a speed, and a frame_length for how many frames the move covers, and this node builds a CAMERACTRL_POSES object encoding that trajectory. prev_poses lets you chain multiple Basic nodes together - one motion for the first stretch of frames, then another motion picking up where it left off - so you can build a sequence of distinct moves (pan, then zoom, then hold) without needing the multi-motion Advanced node.
That output feeds into the Gen2 CameraCtrl application node (not covered in this article), which needs the CameraCtrl model itself loaded to actually apply the trajectory during sampling.
Inputs and output
motion_type- the camera move to apply, chosen from the pack's supported list.speed- how fast the move happens, -100 to 100, default 1. Negative values likely reverse the motion's direction - experiment on a short test render before committing to a long one.frame_length- how many frames this move spans, default 16 (matching AnimateDiff's native context window).prev_poses(optional) - chains onto an earlierCAMERACTRL_POSESobject to build a longer sequence of moves.
Output is CAMERACTRL_POSES.
How to install it
CameraCtrl needs a specific model file beyond the base pack, and it's Gen2-only per the README.
- ComfyUI Manager - search AnimateDiff Evolved by Kosinkadink, install, restart.
- Manual -
cd ComfyUI/custom_nodes && git clone https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved, restart. - Model - the README is explicit: use the pruned model
CameraCtrl_pruned.safetensors- not the original, unpruned release. - Motion module - CameraCtrl "requires AnimateDiff SD1.5 models, and was specifically trained for v3 model," per the README, so pair it with
v3_sd15_mmfor the intended behavior. - Use the Gen2 helper nodes under the CameraCtrl submenu, and note this feature doesn't exist outside Gen2 at all.
Common issues & troubleshooting
This is one of the least-discussed corners of the whole pack. CameraCtrl barely comes up in community discussion even relative to other niche AnimateDiff-Evolved features - there isn't a well-worn tutorial trail to lean on. Expect to work mostly from the README and your own experimentation, and start with a short, cheap test render before committing GPU time to a long one.
Camera motion doesn't look like it's applying at all. Confirm you're on the v3 SD1.5 motion module - the README states CameraCtrl "was specifically trained for" it, and other motion modules may not respond to the control signal the way v3 does.
Motion looks right but generation quality suffers. CameraCtrl is layered on top of everything else motion-related; if you're also running ControlNets, high context lengths, or other Gen2 features simultaneously, isolate CameraCtrl on its own first to confirm the trajectory itself looks right before reintroducing everything else.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| motion_type | COMBO | 13 options: Static, Pan Up, Pan Down, Pan Left, Pan Right, Zoom In, +7 | |
| speed | FLOAT | 1.00-100β100 | β |
| frame_length | INT | 16 | β |
| prev_posesopt | CAMERACTRL_POSES | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CAMERACTRL_POSES | CAMERACTRL_POSES | β |