Collapse the 4-node PlyPreview surface to one node:
- PreviewGaussians: takes ply_path (STRING, forceInput) plus camera-
intrinsics widgets (fov_degrees, image_width, image_height) directly
on the node. NODE_CLASS_MAPPINGS = {"PreviewGaussians": ...}.
- Drop load_gaussian_ply.py, load_gaussian_ply_path.py,
process_gaussian_ply.py and the /plypreview/files refresh route.
- common.py stays — get_default_intrinsics + get_default_extrinsics
are reused.
- Frontend JS unchanged except the preview block targets
"PreviewGaussians". The LoadPLY-dropdown refresh block is left in
place as harmless dead code in case the loader node comes back.
- requirements.txt cleared (no Python deps; PLY parsing is in the
browser via gsplat.js).
- README slimmed to a few lines.
- Removed Figure1/2 + image/ + README.en.md + README.zh-CN.md.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
18 lines
408 B
Python
18 lines
408 B
Python
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
"""ComfyUI-TurntableGSViewer — tiny Gaussian-splat turntable viewer node."""
|
|
|
|
from .preview_gaussian import PreviewGaussians
|
|
|
|
WEB_DIRECTORY = "web"
|
|
|
|
NODE_CLASS_MAPPINGS = {
|
|
"PreviewGaussians": PreviewGaussians,
|
|
}
|
|
|
|
NODE_DISPLAY_NAME_MAPPINGS = {
|
|
"PreviewGaussians": "Preview Gaussians",
|
|
}
|
|
|
|
__all__ = ["NODE_CLASS_MAPPINGS", "NODE_DISPLAY_NAME_MAPPINGS"]
|