Koolook Load Camera Poses (Absolute Path)
Koolook Load Camera Poses
- CAMERACTRL_POSES
Camera control nodes usually come with a rule you never noticed until it bites you: the pose file has to live inside ComfyUI's input folder, because the built-in loaders strip paths outside it. Koolook Load Camera Poses (Absolute Path) exists specifically to ignore that rule. You hand it a path anywhere on disk and it loads the track.
The file format is the RealEstate10k-style CameraCtrl pose file, the same one AnimateDiff's CameraCtrl loader expects: line 1 is metadata, and every line after is 19 space-separated floats - a timestamp, camera intrinsics, width/height placeholders, and a flattened 3x4 pose. If you've exported a camera track from a matchmove tool or a CameraCtrl workflow, this is the file you already have.
How it works
The mechanism is deliberately boring: read the file, parse each pose row, rewrite the width/height placeholders with pose_width and pose_height, and return a CAMERACTRL_POSES list. The ~ in a path gets expanded (~/shots/track.txt works), blank lines are tolerated, and a row with the wrong number of columns raises a clear error naming the offending line rather than silently producing a broken track.
The two optional floats - pose_width (1280) and pose_height (720) - are the resolution baked into every pose row. They matter because some downstream CameraCtrl nodes use the pose resolution to interpret the intrinsics. Set them to match the resolution you'll actually generate at, not the original track's.
When to reach for it
This is a niche node for a specific workflow: you have a camera track (from a matchmove, from a drone shot you stabilized, from a real set you're replicating), it lives in a project folder next to your plates, and you want AnimateDiff-CameraCtrl or a similar camera-conditioned model to drive a generated shot along that exact path. The absolute-path load is the whole value - your project folder stays organized, the track doesn't get copied into ComfyUI's input directory.
Install
Part of the ComfyUI-Koolook pack. ComfyUI Manager → Install Custom Nodes → Git URL:
https://github.com/malkuthro/ComfyUI-Koolook.git
Or:
cd ComfyUI/custom_nodes
git clone https://github.com/malkuthro/ComfyUI-Koolook.git
Restart and it's under Koolook/Camera. No models, no dependencies. Standard pack warning: install once. A Manager install at custom_nodes/koolook/ plus a git clone copy at custom_nodes/ComfyUI-Koolook/ loads both on every boot and the workflow store starts silently corrupting until you remove one.
Common issues
- "Pose file not found" - the path is relative to the ComfyUI working directory or the wrong absolute path. This node doesn't strip paths, but it also doesn't guess. Check the path exists and is absolute or
~-expanded. - "Line N expected 19 values" - the file isn't RealEstate10k format, or it has trailing junk. Every data row must be exactly 19 whitespace-separated numbers.
- Camera looks wrong downstream -
pose_width/pose_heightdon't match your generation resolution, so the intrinsics are interpreted against the wrong frame size. Align them and re-run.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| file_path | STRING | input/poses/example_track.txt | Absolute or user-expanded path to a RealEstate10k-style CameraCtrl pose TXT file. |
| pose_widthopt | FLOAT | 12801–16384 | Width value written into each pose row before returning CAMERACTRL_POSES. |
| pose_heightopt | FLOAT | 7201–16384 | Height value written into each pose row before returning CAMERACTRL_POSES. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CAMERACTRL_POSES | CAMERACTRL_POSES | — |