Nodes/ComfyUI-Sharp/Merge Gaussians (PLY Files)
ComfyUI Node

Merge Gaussians (PLY Files)

Combining multiple PLY files into one point cloud

By PozzettiAndrea·Created 8 months ago·Updated 2 months ago· 358
Merge Gaussians (PLY Files)
    • ply_paths
    • merged_ply_path
    • field_ply_path
    • num_gaussians
    ply_folder
    output_prefixmerged
    max_depth0.0
    min_opacity0.00

    This is the assembly step at the end of a multi-view SHARP pipeline. If you've generated separate .ply files - one per panorama face from SharpPredictGaussiansFromMetricDepth, or several iterative captures of a scene - this node reads all of them out of a folder, applies a couple of basic quality filters, and writes out one combined point cloud.

    How it works

    Point it at ply_folder and it loads every PLY inside, applies whatever depth/opacity thresholds you've set, concatenates what survives, and saves the result. Nothing fancier than that - no ICP registration, no blending across overlapping regions, no deduplication of Gaussians that landed in the same spot from two different faces. It trusts that your per-file Gaussians are already correctly placed (i.e. that the extrinsics/intrinsics feeding each source PLY were consistent), which is exactly what the rest of the panorama pipeline - AlignDepthMaps, ProjectDepthToPanorama, SharpRayToPlanarDepth - exists to guarantee before this node ever runs.

    The inputs and outputs that matter

    • ply_folder (required, STRING) - path to the folder of PLY files to merge.
    • output_prefix (optional, default merged).
    • max_depth (optional, default 0 = no filter) - drop Gaussians beyond this distance from camera. Useful for trimming stray or hallucinated far-field points that SHARP sometimes produces at silhouette edges.
    • min_opacity (optional, default 0 = no filter) - drop near-invisible Gaussians. A cheap way to shrink the merged file without visibly changing the result.

    Outputs: ply_paths (the individual files that went into the merge - a manifest, essentially), merged_ply_path (the combined result - this is what you open in a viewer), field_ply_path (a separate PLY export; the node doesn't spell out exactly how it differs from merged_ply_path beyond the name, so treat it as a bonus export worth inspecting rather than assume its exact contents), and num_gaussians (INT) - the final count in the merged result.

    Installing it

    Manager: search "Sharp," install highest (nightly if that build misbehaves). Or Manager → Git URL: https://github.com/PozzettiAndrea/ComfyUI-Sharp.git. Manual: clone, pip install -r requirements.txt --upgrade, python install.py, restart.

    To actually view merged_ply_path, install ComfyUI-GeometryPack separately, or drop the file into superspl.at/editor - a free browser-based viewer that also handles the "can't screenshot" gap the built-in preview has.

    Common issues

    num_gaussians is your first diagnostic if a merge "looks empty" once you view it - if it's near zero, check that ply_folder actually points at the right directory and has files in it before you start tweaking max_depth/min_opacity, since an empty or wrong folder produces the same visual result as filters set too aggressively.

    If the merged result has visible seams where per-face Gaussians should meet, that's not something this node can fix on its own - it's a symptom of the upstream depth-alignment steps, or of skipping edge_crop on SharpPredictGaussiansFromMetricDepth, which exists specifically to trim the low-quality edge Gaussians that cause seams like this.

    CategorySHARP

    Inputs (4)

    NameTypeDefaultDescription
    ply_folderSTRINGPath to folder containing PLY files to merge
    output_prefixoptSTRINGmergedPrefix for output merged PLY file
    max_depthoptFLOAT0.00–1000Filter out Gaussians beyond this depth (0 = no filter)
    min_opacityoptFLOAT0.000–1Filter out Gaussians with opacity below this (0 = no filter)

    Outputs (4)

    NameTypeDescription
    ply_pathsSTRING
    merged_ply_pathSTRING
    field_ply_pathSTRING
    num_gaussiansINT