Nodes/camera-comfyUI/LoadPointCloud
ComfyUI Node

LoadPointCloud

Bring your saved point cloud back to life

By Alexankharin·Created about a year ago·Updated about a month ago· 36
LoadPointCloud
    • loaded pointcloud
    pointcloud_file

    Point cloud work is expensive - you estimate depth, unproject thousands of points, clean them - and the last thing you want is to rebuild the cloud every time you tweak the camera move. LoadPointCloud is the reload button: pick a .ply or .npy file from your input folder and get your cloud back as the same (N,7) tensor every node in this pack speaks.

    It's the load half of the pack's persistence story (SavePointCloud is the save half), and the README is explicit about the format split: .npy is the fast, lossless, internal-pipeline format; .ply is the portable format for external tools like CloudCompare or Blender. For anything you're going to reuse in ComfyUI, save as .npy; for anything leaving the machine, .ply.

    How it works

    The pointcloud_file input is a dropdown built from .ply and .npy files sitting in ComfyUI's input/ folder (with a file chooser). Drop your file in, refresh, select it. What comes out is loaded pointcloud, a TENSOR shaped (N,7) - X, Y, Z, R, G, B, A per point - ready to wire into CameraMotionNode for a fly-through, TransformPointCloud for a pose change, CameraTrajectoryNode to fly through it interactively, or ProjectPointCloud to re-render it. That's the whole job: one file in, one tensor out, no models, no CUDA, no tuning.

    A note on the type system, since this trips people up: (N,7) point cloud tensors and GSPLAT splat objects are different things in this pack, and the loaders are not interchangeable. If your file is a trained 3DGS splat .ply (position + covariance attributes), that's LoadPlySplat's file; LoadPointCloud expects a plain XYZRGBA cloud. The README's workflow test_pointcloud_loading.json shows the intended loop: save a cloud you built, reload it later, orbit-render it - all from .npy/.ply.

    Install

    Shared camera-comfyUI install: Manager → search "camera-comfyUI" → Install, or clone https://github.com/Alexankharin/camera-comfyUI into custom_nodes/ and run python install.py. No dependencies beyond the pack itself - this node works even if every heavy optional dep (gsplat, SHARP, VGGT) failed, since it's just numpy/torch loading.

    Troubleshooting

    • File not in the dropdown: it's not in input/, or it's neither .ply nor .npy. Those are the only two this node lists.
    • Loaded cloud looks wrong or is empty: check the file was saved with SavePointCloud (same (N,7) layout). A PLY from an unrelated tool may have a different column order.
    • Type error downstream: you're wiring a loaded cloud into a node expecting GSPLAT. If the file is trained splats, switch to LoadPlySplat.
    • Keep .npy for round-trips: if you only ever move the cloud inside ComfyUI, .npy is faster and lossless. Save .ply copies only when you need external tools.
    CategoryCamera/PointCloud

    Inputs (1)

    NameTypeDefaultDescription
    pointcloud_fileCOMBOSelect a .ply or .npy point‐cloud file to load from your input folder.

    Outputs (1)

    NameTypeDescription
    loaded pointcloudTENSOR