ComfyUI Extension: Sykko Tools for ComfyUI

Authored by SykkoAtHome

Created

Updated

0 stars

Utilities for working with camera animations inside ComfyUI. The repository currently provides a node for loading camera motion from ASCII FBX files and a corresponding command line helper for debugging.

Custom Nodes (0)

    README

    Sykko Tools for ComfyUI

    Utilities for working with camera animations inside ComfyUI. The repository currently provides a node for loading camera motion from ASCII FBX files and a corresponding command line helper for debugging.

    LoadFBXCamera node

    The LoadFBXCamera node reads a camera animation from an ASCII FBX file and outputs:

    • cameractrl_poses: list of WAN-compatible rows where each row is [0, cx, cy, fx, fy, width, height, r11, r12, r13, t1, r21, r22, r23, t2, r31, r32, r33, t3]. visualizer_space selects whether the 3x4 matrix is camera-to-world (c2w) or world-to-camera (w2c).
    • frames: integer count of rows in cameractrl_poses.

    start_frame and duration define the range of frames. duration is the number of frames to load and must satisfy duration = 4n + 1 (e.g. 1, 5, 9, ...). The node fails fast if any frame in [start_frame..start_frame+duration-1] is missing and asserts that the number of returned poses matches the requested span. Axes can be flipped individually using the flip_x, flip_y and flip_z booleans. The pose export can be customised via the width, height, angles_unit, euler_order and unwrap_angles inputs.

    CLI example

    For quick inspection of a camera file you can run the sample script:

    python sample/load_fbx_camera.py sample/camera_ascii.fbx --flip-x --flip-z --start-frame 10 --duration 9
    

    This prints the camera pose array along with the frame count and FPS. Omitting optional flags defaults to no axis flips and uses the full frame range.