Nodes/AnimateDiff Evolved/Replace Orig. Pose Aspect Ratio πŸŽ­πŸ…πŸ…“β‘‘
ComfyUI Node Runs on cloud

Replace Orig. Pose Aspect Ratio πŸŽ­πŸ…πŸ…“β‘‘

Telling CameraCtrl what resolution a pose was actually built for

By KosinkadinkΒ·Created 3 years agoΒ·Updated 13 days agoΒ· 3,519
Replace Orig. Pose Aspect Ratio πŸŽ­πŸ…πŸ…“β‘‘
  • poses
  • CAMERACTRL_POSES
β—„orig_pose_width1280β–Ί
β—„orig_pose_height720β–Ί

CameraCtrl's camera trajectories carry their intrinsics - focal length and optical center - as values normalized to a 0–1 range rather than pixel units, so the same trajectory can in principle apply at any output resolution. But "in principle" is doing some work in that sentence: a pose authored at one resolution and aspect ratio doesn't automatically reproject correctly onto a wildly different one. This node lets you tell the system what width and height a CAMERACTRL_POSES object was actually built against, so downstream handling has the right reference to work from instead of assuming a default.

When this matters

If you're building a trajectory from scratch with ADE_CameraPoseBasic or its Advanced sibling at your actual target resolution, you likely don't need this node - the pose already matches what you're rendering. It matters specifically for a pose you didn't build yourself: one loaded with ADE_LoadCameraPoses, whether that's one of CameraCtrl's own reference trajectories or something saved from an earlier session at a different resolution. If your render's aspect ratio doesn't match what the pose assumes, this is the node that corrects the mismatch at the source, rather than leaving the framing subtly wrong and hoping it's close enough.

Inputs and output

All required:

  • poses (CAMERACTRL_POSES) - the trajectory whose original resolution you're correcting.
  • orig_pose_width (default 1280, min 1) - the width the pose was actually authored for.
  • orig_pose_height (default 720, min 1) - the height it was authored for.

The 1280Γ—720 default matches the reference resolution CameraCtrl's own example poses use elsewhere in this pack. Output is CAMERACTRL_POSES - the same object, with corrected origin metadata, ready to feed into the Gen2 CameraCtrl application node or into ADE_ReplaceCameraParameters if the intrinsics themselves also need adjusting.

How to install it

Same CameraCtrl requirements as the rest of this node 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), which the README states CameraCtrl "was specifically trained for."
  • Gen2 only.

Common issues & troubleshooting

Not sure you need this at all. If you built the pose yourself at your target resolution, skip it - this node exists for poses authored elsewhere (a loaded file, an example trajectory) at a resolution that doesn't match your render.

Changed the values and the framing looks worse, not better. CameraCtrl is one of the least-discussed corners of an already niche pack, and this specific node has essentially no community usage to check your intuition against. Treat it as an experiment: render a short, cheap test at each setting and compare, rather than committing GPU time to a long generation on a guess.

Aspect ratio fixed but the camera still doesn't frame right. This node only corrects what resolution the pose assumes it was built at - it doesn't touch the intrinsics themselves. If framing is still off after this, ADE_ReplaceCameraParameters (which overrides focal length and optical center directly) is the next thing to try.

KB gap worth flagging: our sources don't document the exact reprojection math this node performs, only its inputs and the fact that it exists to correct pose-origin resolution - the same gap the rest of this pack's CameraCtrl corner already carries.

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

Inputs (3)

NameTypeDefaultDescription
posesCAMERACTRL_POSESβ€”
orig_pose_widthINT12801–9007199254740991β€”
orig_pose_heightINT7201–9007199254740991β€”

Outputs (1)

NameTypeDescription
CAMERACTRL_POSESCAMERACTRL_POSESβ€”