RunningHub Pixal3D Load Model
Where the install pain and VRAM choices actually live
- pipe
Every Pixal3D workflow in this pack starts here, and it's the node that decides whether the rest of the graph runs at all. It doesn't generate anything - it loads the entire model stack and hands you a PIXAL3D_PIPE that the Image to 3D node consumes. Think of it as the gatekeeper: if you're missing a model file or a CUDA extension, this is where everything goes wrong, loudly.
What it actually loads
Clicking Run on this node is not cheap. Under the hood it pulls in the full Pixal3D pipeline plus the auxiliary zoo the generation needs: DINOv3 image-conditioning models, the MoGe camera/depth estimator, a BiRefNet background remover, and the NAF upsamplers. That's the five separate model folders the README tells you to place under ComfyUI/models, and this node resolves every one of them before it returns. If any path is missing, it raises a clear "not found" error naming the exact location - deliberately, since these nodes never download models at runtime.
It also sets the environment variables that pick the attention and sparse-convolution backends the pipeline will use, preloads the NAF upsamplers, and moves everything to GPU (or shuffles it between CPU and GPU if low_vram is on).
The three inputs
That's the whole interface - three choices, and honestly two of them you can leave alone:
attention_backend-flash_attnis the default and the fast path, but it needs a compiled flash-attention wheel for your exact torch/CUDA. If that build is fighting you,sdpa(PyTorch's built-in attention) is the pragmatic fallback;flash_attn_3,xformers, andnaiveexist for compatibility with newer or older setups. No working flash_attn? Picksdpaand move on with your life.sparse_conv_backend-flex_gemmis the default and comes from the TRELLIS.2 stack, so it's the one this pack expects.spconvandtorchsparseare alternatives;nonedisables sparse convs entirely.low_vram- the one that matters for most people.truemoves models between CPU and GPU during execution so the whole stack fits in 24 GB - the README's tested configuration is exactly this at 1024 resolution. Leave itfalseonly if you've got 48 GB+ and want everything resident and faster.
Installing the backends
The clone-and-pip part is standard:
cd ComfyUI/custom_nodes
git clone https://github.com/RH-RunningHub/ComfyUI_RH_Pixal3D.git
cd ComfyUI_RH_Pixal3D
pip install -r requirements.txt
The requirements file is deliberately thin (MoGe from git plus huggingface_hub); the heavy dependencies are manual because they're wheel-for-your-torch builds. NATTEN is the one with a hard check:
pip uninstall -y natten
pip install natten==0.21.6+torch2100cu128 -f https://whl.natten.org
python -c "import natten; print(natten.__version__, natten.HAS_LIBNATTEN)"
That last line must print True - without libnatten, NAF feature upsampling fails or silently falls back to slow paths. Then flash_attn, flex_gemm, o_voxel, nvdiffrast, and nvdiffrec_render need matching builds; the README keeps their source repos as comments in requirements.txt precisely so you don't accidentally source-build in an incompatible environment.
Common issues
- "not found" on model paths - a folder is missing under
ComfyUI/models. The error names it; the README's model table tells you what to download and where. These nodes will never fetch models for you. no kernel image availableon newer GPUs - Pixal3D's prebuilt wheels historically targeted older architectures; on Blackwell-class cards people had to rebuild the CUDA extensions for their arch (TORCH_CUDA_ARCH_LIST). If that's you, budget an afternoon.HAS_LIBNATTENFalse - NATTEN mismatch. Reinstall the wheel matching your torch+CUDA tag, then re-run the check.
Once this node returns a pipe, the rest of the workflow is pure generation. Get the loader happy and the Image to 3D node is the fun part.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| attention_backend | COMBO | flash_attn | 5 options: flash_attn, flash_attn_3, sdpa, xformers, naive |
| sparse_conv_backend | COMBO | flex_gemm | 4 options: flex_gemm, spconv, torchsparse, none |
| low_vram | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| pipe | PIXAL3D_PIPE | — |