Nodes/ComfyUI_RH_Pixal3D/RunningHub Pixal3D Load Model
ComfyUI Node

RunningHub Pixal3D Load Model

Where the install pain and VRAM choices actually live

By RH-RunningHub·Created 3 months ago·Updated 3 months ago· 29
RunningHub Pixal3D Load Model
    • pipe
    attention_backendflash_attn
    sparse_conv_backendflex_gemm
    low_vramfalse

    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_attn is 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, and naive exist for compatibility with newer or older setups. No working flash_attn? Pick sdpa and move on with your life.
    • sparse_conv_backend - flex_gemm is the default and comes from the TRELLIS.2 stack, so it's the one this pack expects. spconv and torchsparse are alternatives; none disables sparse convs entirely.
    • low_vram - the one that matters for most people. true moves 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 it false only 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 available on 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_LIBNATTEN False - 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.

    CategoryRunningHub/Pixal3D

    Inputs (3)

    NameTypeDefaultDescription
    attention_backendCOMBOflash_attn5 options: flash_attn, flash_attn_3, sdpa, xformers, naive
    sparse_conv_backendCOMBOflex_gemm4 options: flex_gemm, spconv, torchsparse, none
    low_vramBOOLEANfalse

    Outputs (1)

    NameTypeDescription
    pipePIXAL3D_PIPE