Previous design scanned input/ AND output/ and stored prefixed combo
entries like 'input/apple.ply'. When comfy-test ran the workflow, the
saved value 'input/apple.ply' didn't match anything the node could
resolve, and VALIDATE_INPUTS rejected the prompt:
Custom validation failed for node: ply_file -
LoadPLY: 'input/apple.ply' is not a known PLY in input/ or output/
Refactor to mirror ComfyUI's stock LoadImage node:
- INPUT_TYPES lists ONLY input/, bare filenames (no folder prefix)
- IS_CHANGED uses folder_paths.get_annotated_filepath(name)
- VALIDATE_INPUTS uses folder_paths.exists_annotated_filepath(name)
- load() returns folder_paths.get_annotated_filepath(name)
`get_annotated_filepath` understands `[input]/name`, `[temp]/name`,
and `[output]/name` annotations transparently, so power users can
type those into the combo if they need output/ access — same as
LoadImage. The default UX is "pick from input/".
Output-side PLYs from upstream nodes (GaussianMerge, GaussianExport,
LiToExportPLY) are wired directly into PreviewGaussians via the
STRING output — no LoadPLY needed.
workflows/merge_splats.json: rewrite widgets_values from
"input/apple.ply" -> "apple.ply" to match the new bare-filename
convention.