Process Gaussian PLY Enhance
Process Gaussian PLY Enhance — the node for splats that don't exist on disk yet
- input_extrinsics
- input_intrinsics
- ply_path
- extrinsics
- intrinsics
The Load nodes in this pack read from a dropdown of known folders. That works great for splats you already have and breaks down the moment the splat is generated as part of the same workflow - you can't pick a file in a dropdown that doesn't exist when you build the graph. Process Gaussian PLY Enhance is the answer to that. It takes its ply_path over the wire from an upstream node instead of from a file picker.
The canonical upstream is SHARP Predict and the other image→3D nodes that emit a Gaussian splat path at run time. The tooltip names SHARP specifically, but anything that hands you a .ply path as a string plugs in the same way. That's what makes this node feel like part of a real 3D pipeline rather than a file browser: it's the seam between "generate a splat" and "look at it."
What it does with that path
Once the path arrives, the mechanics are the Load nodes' logic minus the folder scan:
- Validates the resolved path exists and ends in
.ply(it errors loudly - and specifically - if not). override_camera(default enabled) - rebuilds the camera from yourfov_degreesandauto_resolution, replacing whatever the upstream splat came with. Flip it to disabled to pass throughinput_extrinsicsandinput_intrinsicsfrom upstream instead (they're ignored entirely while override is on).auto_resolution/target_scale/image_width/image_height- the same resolution-for-intrinsics controls as the Load nodes, with the same rule: auto resolution wins unless you turn it off.enable_opacity_filter+opacity_threshold(default 0.1) - sigmoid the opacity, drop everything below the threshold, and write a cleaned_opacity{threshold}.plynext to the source. Handy for generated splats that come out noisy with floating background gaussians before you save or screenshot anything.
Outputs
Same trio as the whole pack: ply_path (STRING - the original or the filtered file), extrinsics (4×4), and intrinsics (3×3). Wire ply_path into Preview Gaussian Enhance and your generated splat shows up in the viewer with no manual file wrangling.
Install & gotchas
Same pack, same install as its siblings - clone it or search "comfyui-PlyPreview" in ComfyUI Manager:
cd ComfyUI/custom_nodes
git clone https://github.com/XuanYu-github/comfyui-PlyPreview.git
Restart ComfyUI. Dependencies are numpy and plyfile, nothing compiled. This is the pack's quiet superpower and it applies here too: no CUDA, no C++ rasterizer, the rendering happens in your browser.
The failure modes are mostly about the path contract. If upstream hands you a relative path or a path to a file that hasn't been written yet, the node raises "PLY file not found" and names the exact resolved path - check the console for the full message rather than assuming it's broken. And if the preview that follows comes up blank, the same /view-endpoint rule applies: the viewer serves from ComfyUI's output folder, so make sure upstream is writing there.
One take-away: of the three path-producing nodes in this pack, this is the one I'd actually reach for in a living workflow. The dropdowns are for the stuff you already own; this one's for the stuff the graph just made - which, honestly, is the more interesting case.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| ply_path | STRING | PLY file path from upstream node (e.g., SHARP Predict) | |
| input_extrinsicsopt | EXTRINSICS | Extrinsics from upstream node (ignored if override_camera enabled) | |
| input_intrinsicsopt | INTRINSICS | Intrinsics from upstream node (ignored if override_camera enabled) | |
| override_cameraopt | COMBO | enabled | Override input camera params with custom FOV settings |
| fov_degreesopt | FLOAT | 5010–180 | Horizontal field of view in degrees (used when override_camera enabled) |
| auto_resolutionopt | COMBO | enabled | Auto-calculate optimal resolution based on FOV and target scale |
| target_scaleopt | FLOAT | 101–50 | Target gaussian scale in viewer (used when auto_resolution enabled) |
| image_widthopt | INT | 51264–8192 | Image width (used when auto_resolution disabled) |
| image_heightopt | INT | 51264–8192 | Image height (used when auto_resolution disabled) |
| enable_opacity_filteropt | COMBO | disabled | Filter out low-opacity Gaussians to reduce background noise |
| opacity_thresholdopt | FLOAT | 0.100–1 | Minimum opacity (0-1). Gaussians below this will be removed |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| ply_path | STRING | — |
| extrinsics | EXTRINSICS | — |
| intrinsics | INTRINSICS | — |