Nodes/MTB Nodes/Postshot Train (mtb)
ComfyUI Node Runs on cloud

Postshot Train (mtb)

Train Gaussian Splat / NeRF radiance fields from ComfyUI

By melMass·Created 3 years ago·Updated about a month ago· 721
Postshot Train (mtb)
  • images
  • project_file_path
profileSplat MCMC
image_selectbest
train_steps_limit30
output_pathoutput
postshot_cliC:/Program Files/Jawset Postshot/bin/postshot-cli.exe
gpu0
num_train_images0
max_image_size1600
max_num_features8
splat_density1.00
max_num_splats3000
export_splat_ply

This is the odd one out in MTB, and easily the most advanced. Postshot Train (mtb) doesn't make an image - it takes a set of images of a scene and trains a radiance field (a 3D Gaussian Splat or a NeRF) from them, so you can end up with a navigable 3D reconstruction instead of a flat picture. It does this by driving Jawset's Postshot application from inside your ComfyUI graph.

Be clear-eyed about what this is: it's a wrapper around external software, not a self-contained node. Postshot is a separate desktop app (Windows) that does the actual reconstruction; this node shells out to its command-line tool. So the value is workflow glue - if you're already generating or collecting multi-view images in ComfyUI, this lets you kick off a splat/NeRF training run without leaving the graph. If you've never touched photogrammetry or Gaussian Splatting, this is a deep-end node and not where you start.

It lives in its own postshot corner of MTB Nodes (comfy_mtb) by melMass.

How it works

Gaussian Splatting and NeRFs both reconstruct a 3D scene from many photos taken around it, then let you render new viewpoints. Splats represent the scene as millions of little 3D blobs and render fast; NeRFs represent it as a neural field and render slower but can be very detailed. The node feeds your images to the Postshot CLI, picks a reconstruction profile, runs the training, and returns the path to the resulting project file.

Per the node's own docs, you must run the Postshot GUI at least once and log in before the CLI will work, and if you installed it somewhere non-standard you set the location in ComfyUI's Settings > MTB.

The inputs and outputs that matter

  • images - the multi-view set of the scene. More coverage, better reconstruction.
  • profile - the reconstruction model. Options are Splat MCMC (the default and the recommended profile for most scenes - it caps the number of splat primitives, so it controls memory and disk), Splat ADC (similar, with a density knob), and five NeRF sizes S/M/L/XL/XXL. Per the docs, NeRF L is the recommended default when you want good image quality; S is toy-scale, XL/XXL push fine detail at heavy cost. NeRFs render much slower than splats.
  • train_steps_limit (default 30) - how long training runs. Higher means more refinement and more time.
  • image_select (best / all, default best) - whether Postshot auto-picks the best frames or uses everything you gave it.
  • postshot_cli - the path to postshot-cli.exe. Defaults to the standard Windows install location; change it if yours differs.

There are several optional tuning inputs - among them splat_density, max_num_splats, max_image_size, num_train_images, gpu, and export_splat_ply (set a path to export a .ply splat file). Leave them at defaults until you know why you're changing them.

Output is project_file_path (STRING) - the location of the trained Postshot project, which you open in Postshot to view or export.

How to install it

The ComfyUI side is normal: ComfyUI Manager → search MTB Nodes → install → restart, or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/melMass/comfy_mtb

The catch is the external dependency. You must install Jawset Postshot separately (it's a Windows application), run its GUI once and log in, and make sure the postshot_cli path points at its executable. Without Postshot itself installed, this node has nothing to call.

Common issues & troubleshooting

"postshot-cli not found." The postshot_cli path is wrong, or Postshot isn't installed. Fix the path in the node or in Settings > MTB, and confirm the app is actually installed at that location.

It errors before training even starts. The docs are explicit: run the Postshot GUI at least once and log in first. The CLI relies on that initial setup; skipping it is the classic first-run failure.

Windows-shaped by default. The default CLI path is a C:/Program Files/... Windows path. This node is built around a desktop app that's Windows-first - running it on a headless Linux GPU box is not the intended setup.

Reconstruction looks rough. That's usually input coverage, not the node. Radiance fields need many overlapping views of the scene; a handful of frames from one angle can't reconstruct geometry. Give it more, well-distributed images, and start with Splat MCMC before reaching for the slow, heavy NeRF profiles.

Categorymtb/postshot

Inputs (13)

NameTypeDefaultDescription
imagesIMAGEThese image will get save to disk first
profileCOMBOSplat MCMCThe radiance field model profile to train
image_selectCOMBObestHow to select training images from the source image sets
train_steps_limitINT301–1000Number of kSteps to train the model for
output_pathSTRINGoutputpath to save the project to Absolute paths are kept as is, relatives are from the output directory.
postshot_cliSTRINGC:/Program Files/Jawset Postshot/bin/postshot-cli.exe
gpuoptINT00–255Specify the index of the GPU to use
num_train_imagesoptINT0If image-select best is used, specifies the number of training images to select
max_image_sizeoptINT1600Downscale training images such that their longer edge is at most this value in pixels. Disabled if zero.
max_num_featuresoptINT8Maximum number of 2D kFeatures extracted from each image.
splat_densityoptFLOAT1.000.125–8Controls how much additional splats are generated during training.Applies only in 'Splat ADC' profile.
max_num_splatsoptINT3000Sets the maximum number of splats (in kSplats) created during training. Applies only in 'Splat MCMC' profile.
export_splat_plyoptSTRINGIf not empty will also save a ply file. Absolute paths are kept as is, relatives are from the output directory.

Outputs (1)

NameTypeDescription
project_file_pathSTRING