Nodes/ComfyUI-NeurCADRecon/Load NeurCADRecon Model
ComfyUI Node

Load NeurCADRecon Model

The 'load model' node that loads nothing

By PozzettiAndrea-archive·Created 9 months ago·Updated 7 months ago· 0
Load NeurCADRecon Model
    • model
    • model_info
    deviceauto
    init_typesiren

    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) - auto picks CUDA if it's there, falls back to CPU. Leave it alone unless you know you want CPU.
    • init_type (siren / geometric_sine / mfgi) - siren is the recommended default and the one the authors tune for. geometric_sine and mfgi are 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.

    CategoryNeurCADRecon

    Inputs (2)

    NameTypeDefaultDescription
    deviceoptCOMBOautoDevice to run training on. 'auto' uses CUDA if available.
    init_typeoptCOMBOsirenNetwork initialization type. 'siren' is recommended for most cases.

    Outputs (2)

    NameTypeDescription
    modelNEURCADRECON_MODEL
    model_infoSTRING