Load NeurCADRecon Model
The 'load model' node that loads nothing
- model
- model_info
For a node called "Load Model", this one is doing something suspiciously un-loady. There are no pretrained weights, no model files to grab, nothing on disk at all. What you actually get is a blank, untrained SIREN network plus the settings for training it. That's the point - this pack is built around per-object reconstruction, where a small network overfits to a single shape, so the "model" doesn't exist until you make it. This node is just the ceremony before the real work.
It's the first stop in the four-node NeurCADRecon pipeline: Load Model → Train → Inference, with Load Checkpoint as a shortcut to skip straight back to Inference. NeurCADRecon itself is the ComfyUI port of a SIGGRAPH 2024 paper (NeurCADRecon: Neural Representation for Reconstructing CAD Surfaces) by Qiujie Dong et al., and the whole pitch is that it recovers CAD-like surfaces - sharp edges, flat faces, the kind of geometry that smooth implicit-surface methods always round off. If you're reconstructing machined parts, brackets, or anything that looks designed rather than grown, that's the niche.
How it works
The node doesn't build the network yet. It stores a network_config dict - 3D input, sine activations with omega_0 = 30 (the classic SIREN trick), 256 hidden units across 4 hidden layers, geometric initialization - and hands it to the train node, which constructs the actual MLP. The reason for the lazy approach is a genuinely interesting ComfyUI gotcha: ComfyUI runs the whole graph under torch.inference_mode(True), and you cannot train a network that way. The training node escapes that context internally, and creating the network there too keeps it out of trouble. So this node is really just "stamp the config, pick a device."
The inputs and outputs that matter
Only two inputs, both optional:
- device (
auto/cuda/cpu) -autopicks CUDA if it's there, falls back to CPU. Leave it alone unless you know you want CPU. - init_type (
siren/geometric_sine/mfgi) -sirenis the recommended default and the one the authors tune for.geometric_sineandmfgiare alternative network initializations from the implicit-surface literature. If you don't know what those do, don't touch them.
Outputs: model (NEURCADRECON_MODEL) which wires straight into NeurCADReconTrain, and model_info (STRING), a plain-text summary you can stick on a preview node to confirm what you've configured. Both Train and Load Checkpoint hand back the same type, so all roads converge on Inference.
Installing the pack
Grab the whole pack through ComfyUI Manager (search "NeurCADRecon") or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/PozzettiAndrea/ComfyUI-NeurCADRecon
pip install -r ComfyUI-NeurCADRecon/requirements.txt
Then restart ComfyUI. The requirements are modest: torch>=2.0, numpy, trimesh>=3.20, scipy, and PyMCubes for mesh extraction. No giant model downloads, ever - this is pure training code, GPL-3.0. The author is Andrea Pozzetti, the same person behind ComfyUI-CADabra, ComfyUI-SAM3DObjects, and ComfyUI-MeshSegmenter, so it sits in a small but active family of geometry-focused packs. Be aware the README literally opens with "Work in Progress! This node is not finished." - it works, but it's young.
Where people get burned
The most common mistake is expecting pretrained weights to materialize, or wiring this straight into Inference and getting a RuntimeError telling you the model hasn't been trained. Both are by design. This node hands you an empty brain; the training node is where the shape goes in. If you don't want to sit through 5–15 minutes of training, you want the Load Checkpoint node instead.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| deviceopt | COMBO | auto | Device to run training on. 'auto' uses CUDA if available. |
| init_typeopt | COMBO | siren | Network initialization type. 'siren' is recommended for most cases. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| model | NEURCADRECON_MODEL | — |
| model_info | STRING | — |