MoGe Model Loader
The 1.2GB first-run download, tamed
- moge_model
Every SplatKit render node needs MoGe - Microsoft's monocular geometry estimator that turns your panorama into a depth mesh the camera path is flown through. The MoGe Model Loader is the clean way to load that model once and hand it to every node that wants it, instead of each node doing its own load. It's a two-node wrapper in the spirit of Kijai's ComfyUI-MoGe, and if you run any workflow in this pack more than once, it saves you minutes of reload time on every queue.
Why MoGe and not a plain depth model? Because MoGe outputs an affine-invariant point map - a per-pixel 3D coordinate plus a validity mask - not just a grayscale depth map. From that point map the pack derives the mesh it renders the fly-through against, and its sky masking means the geometry knows where the pano "runs out." It's the right tool for the job this pack does, which is why it's vendored in and auto-downloaded rather than optional.
How it works
The node has a single input, moge_ckpt, a dropdown that defaults to auto (download). On first use it fetches Ruicheng/moge-vitl's model.pt (~1.2 GB) into ComfyUI/models/MoGe via Hugging Face Hub and returns a MOGE_MODEL object from its moge_model output. If you already have a MoGe checkpoint on disk, drop it in models/MoGe and it shows up in the dropdown - no download needed. That folder is registered with ComfyUI, so any other SplatKit node's moge_ckpt dropdown sees the same files.
The whole point is the output. Every render node in the pack (Plot Camera, HiRes Pano Fly-Through, HiRes Composite, the perspective fly-through) has its own optional moge_model input that overrides its own moge_ckpt dropdown. Wire the loader into several nodes and they all share one loaded model. The author's own tooltip is blunt about what it saves: "load once and reuse across nodes."
Install and first run
cd ComfyUI/custom_nodes
git clone https://github.com/mickmumpitz/ComfyUI-SplatKit
python_embeded\python.exe -m pip install -r ComfyUI-SplatKit/requirements.txt
Restart ComfyUI, then run the node once. The 1.2 GB download is the one thing to plan for; it happens on the node's first execution and shows progress in the console. Everything else the pack needs (opencv, trimesh, scikit-image, click, matplotlib, huggingface_hub) comes from its requirements file. There's no nvdiffrast and no pytorch3d anywhere in this pack - the rasterizer is a pure-torch shim - so don't expect any compiled-toolchain pain here.
Troubleshooting
- "MoGe checkpoint not found" - you picked a filename in the dropdown that isn't in
models/MoGe, orauto (download)failed mid-fetch. Re-run once; if the download dies on a flaky connection, run it again and the partial file is replaced. - Slow first run - that's the download plus the JIT compile of the rasterizer's optional triton backend. It self-tests on first use and silently falls back to pure torch if triton's missing, so a long first queue is normal, not broken.
- On a Mac - the MoGe nodes themselves are platform-independent; only the SphereSfM binary is Windows/Linux-only right now, so you can do the depth/mesh/render side of the pipeline on Mac without issue.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| moge_ckpt | COMBO | MoGe checkpoint from ComfyUI/models/MoGe. 'auto (download)' fetches 'Ruicheng/moge-vitl' into that folder on first use (~1.2GB). Drop your own model.pt in models/MoGe to pick it here, or wire a MoGe Model Loader node into 'moge_model'. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| moge_model | MOGE_MODEL | — |