ComfyUI Extension: Gaussian Splat Shot Render
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.
ComfyUI custom node pack for scouting and rendering calibrated camera shots over Gaussian splat scenes.
Looking for a different extension?
Custom Nodes (3)
README
Gaussian Splat Shot Render (ComfyUI)
Custom node for composing camera shots over 3D Gaussian splatting (PLY), with an interactive WebGL scout viewer and CPU raster output that stay aligned.
Install
-
Clone (or copy) this repository into your ComfyUI
custom_nodesfolder. The directory name can be anything; ComfyUI uses the folder name for extension URLs.cd /path/to/ComfyUI/custom_nodes git clone <your-remote-url> gaussian-splat-shot-render-comfyui -
Install Python extras used by the nodes (if your environment does not already have them):
pip install -r gaussian-splat-shot-render-comfyui/requirements.txt -
Restart ComfyUI and refresh the browser.
This pack is self-contained for the combined workflow:
- Load SHARP Model / SHARP Predict (Image to PLY) — monocular Gaussian prediction (checkpoint loads from Hugging Face unless you pass a local path).
- Gaussian Splat Shot Render — aligned WebGL scout + CPU raster from the PLY + SHARP camera metadata.
The WebGL viewer uses web/js/gsplat-bundle.js shipped inside this repository (no ComfyUI-GeometryPack install required). Legacy GeometryPack URLs remain as a fallback in viewer_gaussian_shot.html only.
Developing against a local ComfyUI tree
Keep this repo as the source of truth. Point your Comfy install at it with a junction/symlink or by cloning this repo directly into custom_nodes:
# Windows example: symlink folder name kept short
cmd /c mklink /J "D:\ComfyUI\custom_nodes\gaussian-splat-shot-render-comfyui" "C:\repos\gaussian-splat-shot-render-comfyui"
Layout
| Path | Role |
|------|------|
| __init__.py | ComfyUI node registration and WEB_DIRECTORY |
| gaussian_shot_node.py | GaussianShotRender node, raster, camera / variation math |
| sharp_nodes/ | LoadSharpModel, SharpPredict, vendored Apple sharp/ core |
| web/gaussian_shot.js | Frontend: iframe viewer, widget sync, execution hooks |
| web/viewer_gaussian_shot.html | WebGL viewer (gsplat) and HUD |
| web/js/gsplat-bundle.js | Vendored WebGL splat bundle (from comfy-3d-viewers, GPL-3.0-or-later) |
Performance and memory
- Why the raster feels slow: The “capture” path is a CPU reference splatter (NumPy, optionally Numba-JIT). The inline viewer uses WebGL (
gsplat) on the GPU and only moves splatted fragments—very different work, so realtime preview does not imply a fast final raster. - Speed: Install
numba(pip install numbaor userequirements.txt). The first splat in a Comfy session may pause briefly while LLVM compiles; later runs in the same process stay fast. By default the JIT does not use Numba’s on-disk cache, so cloning the same venv or switching betweenD:\…andC:\…Comfy trees does not explode withModuleNotFoundErrorfor an old path. To opt into disk cache on a stable machine, setGAUSSIAN_SHOT_NUMBA_DISK_CACHE=1. - VRAM after a run: This node does not run the splat raster on CUDA. Any GPU memory you still see is almost always SHARP / other models, ComfyUI’s graph / preview cache (it may place
IMAGEtensors on the GPU), or the browser WebGL tab—not the PLY decode itself. System RAM: one decoded PLY is cached (path + mtime) so repeat runs skip disk parse; that cache can be large on big clouds. - Optional env:
GAUSSIAN_SHOT_DISABLE_PLY_CACHE=1— no in-process PLY decode cache (more I/O and CPU on every run, lower steady RAM).GAUSSIAN_SHOT_DISABLE_NUMBA=1— force the slow pure-Python splat loop (debug only).GAUSSIAN_SHOT_NUMBA_DISK_CACHE=1— enable Numba disk cache (faster first splat after restart if your install path is stable).
License
See LICENSE (MIT for original project code) and THIRD_PARTY_NOTICES.md
(Apple SHARP, GPL-3.0 wrapper nodes, bundled gsplat-bundle.js, HF Hub, model weights).
Donations & Support
If this saves you time, you can support the work here:
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.