Nodes/AnimateDiff Evolved/Replace Camera Parameters πŸŽ­πŸ…πŸ…“β‘‘
ComfyUI Node Runs on cloud

Replace Camera Parameters πŸŽ­πŸ…πŸ…“β‘‘

Tuning CameraCtrl's intrinsics

By KosinkadinkΒ·Created 3 years agoΒ·Updated 8 days agoΒ· 3,519
Replace Camera Parameters πŸŽ­πŸ…πŸ…“β‘‘
  • poses
  • CAMERACTRL_POSES
β—„fx0β–Ί
β—„fy1β–Ί
β—„cx0.50β–Ί
β—„cy0.50β–Ί

This is the deepest-cut node in an already niche corner of the pack. Once you have a CAMERACTRL_POSES object - built with Create CameraCtrl Poses, its Advanced sibling, or loaded from a file - it carries not just the motion trajectory but the camera's intrinsic parameters. This node lets you override those intrinsics without touching the trajectory itself.

What "camera intrinsics" means here

fx/fy are the camera's focal length in the x and y directions, and cx/cy are the principal point - where the optical center of the camera sits in the frame - both normalized to a 0–1 range rather than pixel units. This is standard computer-vision camera-model vocabulary (the same parameters that describe a pinhole camera in any 3D vision pipeline), carried into CameraCtrl because the underlying technique models the "camera" generating your video as an actual virtual camera with these properties. cx/cy default to 0.5/0.5 - dead center, the normal case - while fx/fy default to specific non-round values (0.474812461/0.844111024) that come from CameraCtrl's own reference setup.

Practically: if a trajectory (especially a loaded file, authored for someone else's aspect ratio or field of view) doesn't quite match your target framing, this node lets you correct the intrinsics without rebuilding the motion path from scratch.

Inputs and output

  • poses - the CAMERACTRL_POSES object whose intrinsics you're overriding.
  • fx, fy - focal length, x and y, 0–1, extremely fine step (essentially continuous).
  • cx, cy - principal point, x and y, 0–1, step 0.01. Leave at 0.5/0.5 for a centered camera unless you have a specific reason to shift it.

Output is CAMERACTRL_POSES with the new intrinsics applied.

How to install it

Same CameraCtrl requirements as the rest of the family.

  • 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 - CameraCtrl_pruned.safetensors.
  • Motion module - v3 SD1.5 (v3_sd15_mm).
  • Gen2 only.

Common issues & troubleshooting

You're not sure whether you actually need this node. Most people building a camera pose from scratch with the Basic or Advanced nodes won't need to touch this - the defaults are sane. Reach for it specifically when a loaded pose file's framing doesn't match your target output, or when you're deliberately experimenting with field-of-view effects.

This is uncharted territory even within an already-obscure feature. CameraCtrl overall barely comes up in community discussion, and hand-tuning its camera intrinsics is a level deeper than that. There's no well-worn set of "good" fx/fy values to reference beyond CameraCtrl's own defaults - treat any change as an experiment, and compare against the unmodified pose so you can tell what actually shifted.

Changing fx/fy produces a much bigger visual shift than expected. Focal length changes affect apparent field of view, so small changes in a 0–1 normalized value can read as a meaningfully different "lens" in the output. Move it in small increments rather than jumping to an arbitrary number.

CategoryAnimate Diff πŸŽ­πŸ…πŸ…“/β‘‘ Gen2 nodes β‘‘/CameraCtrl/poses

Inputs (5)

NameTypeDefaultDescription
posesCAMERACTRL_POSESβ€”
fxFLOAT00–1β€”
fyFLOAT10–1β€”
cxFLOAT0.500–1β€”
cyFLOAT0.500–1β€”

Outputs (1)

NameTypeDescription
CAMERACTRL_POSESCAMERACTRL_POSESβ€”