Nodes/IG Interpolation Nodes/πŸ’Ύ IG Save PLY PointCloud
ComfyUI Node

πŸ’Ύ IG Save PLY PointCloud

Get your point cloud off the graph and onto disk as a real file

By IDGallagherΒ·Created 3 years agoΒ·Updated about a year agoΒ· 3
πŸ’Ύ IG Save PLY PointCloud
  • pointcloud
  • file_path
β—„filename_prefixβ–Ί
β—„export_formatβ–Ύβ–Ί

IG Save PLY PointCloud is the last mile of the pack's 3D pipeline. The two pointcloud projection nodes hand you an in-memory [N, 6] tensor - this node writes it to disk so you can actually open it in something. It's the missing half of "turn an image + depth into a point cloud," and without it the projections are just numbers you can't look at.

The output format is the real decision here:

  • ply_binary - a binary little-endian PLY file, the standard interchange format for point clouds and meshes. This is what you want for Blender, MeshLab, CloudCompare, or anything else that imports PLY.
  • xyz_ascii - a plain-text x y z r g b per line. No header, dead simple, readable by anything. Use it when you're piping to a custom script or want to inspect the data by eye; it's dramatically bigger on disk.

Where does it write? It uses ComfyUI's standard save-image path machinery, so files land in your ComfyUI/output directory (under a counter-prefixed subfolder like any saved image), and filename_prefix just controls the name - leave it empty and you get an auto timestamp like pointcloud_20260815_123456. Because it hooks into that machinery, it also bumps the counter the same way Save Image does, so you won't overwrite previous exports.

Inputs:

  • pointcloud - POINTCLOUD, the [N, 6] tensor from a projection node.
  • filename_prefix - STRING, default empty (auto-generated).
  • export_format - dropdown: ply_binary or xyz_ascii.

Output: file_path - a STRING with the full path to the saved file. That's a nice touch: you can wire it into a text display, or into downstream nodes that need to know where the file went.

The one validation it does: the tensor must be 2D with exactly 6 columns (x y z r g b), and colors are clamped to 0–255 - RGB from the projection nodes is already 0–255, so you only trip that error if you wired something non-standard in. There's no resize or density control here; if the cloud is millions of points and that's too heavy for your viewer, fix it upstream with the projection node's stride instead.

Install is the pack standard:

cd ComfyUI/custom_nodes
git clone https://github.com/IDGallagher/ComfyUI-IG-Nodes
cd ComfyUI-IG-Nodes && pip install -r requirements.txt

Or ComfyUI Manager β†’ search "IG Interpolation Nodes" β†’ Install, restart. No model downloads - it's pure file I/O. The README is :), but the PLY header format and the two writers are right there in nodes/ply_export.py if you ever need the exact contract.

CategoryπŸ“ IG Nodes/IO

Inputs (3)

NameTypeDefaultDescription
pointcloudPOINTCLOUDβ€”
filename_prefixSTRINGβ€”
export_formatCOMBO2 options: ply_binary, xyz_ascii

Outputs (1)

NameTypeDescription
file_pathSTRINGβ€”