Nodes/ComfyUI_HYWorld2/πŸŽ₯ PLY Scene Renderer
ComfyUI Node

πŸŽ₯ PLY Scene Renderer

πŸŽ₯ Render your saved splat from any camera angle

By AHEKOTΒ·Created 4 months agoΒ·Updated about a month agoΒ· 74
πŸŽ₯ PLY Scene Renderer
    • views
    • camera_poses
    • camera_intrinsics
    β—„ply_pathβ€”β–Ί
    β—„coverage_modebalancedβ–Ί
    β—„width1024β–Ί
    β—„height1024β–Ί
    β—„fov90β–Ί
    β—„use_gsplattrueβ–Ί
    β—„seed0β–Ί

    Once you've reconstructed a scene and saved it as a Gaussian splat PLY, what do you do with it? Render it from new angles. That's the whole job of VNCCS_PLYSceneRenderer: it takes a saved .ply file and produces a set of images from cameras arranged around the scene, plus the camera poses and intrinsics that describe those views.

    The neat part is the second-order use. The rendered views aren't just for looking at - they're the input to the pack's splat-patching / repair nodes and the WorldGen pipeline. Render a scene from angles the model never saw, and you've got a way to check for holes, then feed those views through an edit model to fill them. It's the "scene restoration" workflow the node docstring mentions.

    Inputs

    Only one required: ply_path - the path to a Gaussian PLY, typically the output of VNCCS_SavePLY. The optional ones do the real work:

    • coverage_mode - the big one. minimal, balanced, ideal, testing, camera_control. This selects how many cameras and how they're arranged. balanced is a good default; ideal targets >90% scene coverage (more views, slower); testing is for quick smoke tests; camera_control switches to your own camera definitions.
    • width / height - render resolution, 256–2048, default 1024.
    • fov - field of view in degrees (30–120, default 90).
    • use_gsplat - render with the gsplat rasterizer when available; if the fork isn't built, it falls back to a slower path.
    • seed - camera placement seed, so you can get the same orbit twice.

    Outputs: views (a list of IMAGEs - note this one is an actual list, so downstream list-aware nodes are happy), plus camera_poses and camera_intrinsics tensors that match the views, ready to plug into anything that expects cameras.

    Gotchas

    Rendering a huge splat is slow and VRAM-hungry; if it dies, try smaller width/height first, and confirm use_gsplat is actually resolving to the vendored fork (this pack must be the only gsplat installed). The camera files are .json-adjacent structures - if you feed the camera_poses elsewhere, keep them paired with the matching intrinsics, they're useless alone.

    Install

    Standard for this pack: ComfyUI Manager β†’ search HY-World 2.0, or clone + install:

    cd ComfyUI/custom_nodes
    git clone https://github.com/AHEKOT/ComfyUI_HYWorld2
    cd ComfyUI_HYWorld2
    pip install -r requirements.txt
    python install.py
    

    install.py compiles the vendored gsplat_maskgaussian CUDA fork under the gsplat name - don't install upstream gsplat or this node's "faster/better rendering" silently downgrades (or errors).

    CategoryVNCCS/3D

    Inputs (7)

    NameTypeDefaultDescription
    ply_pathSTRINGPath to Gaussian PLY file from SavePLY node
    coverage_modeoptCOMBObalanced5 options: minimal, balanced, ideal, testing, camera_control
    widthoptINT1024256–2048β€”
    heightoptINT1024256–2048β€”
    fovoptFLOAT9030–120β€”
    use_gsplatoptBOOLEANtrueUse official gsplat library for faster/better rendering if available.
    seedoptINT00–4294967295β€”

    Outputs (3)

    NameTypeDescription
    viewsIMAGEβ€”
    camera_posesTENSORβ€”
    camera_intrinsicsTENSORβ€”