Nodes/ComfyUI_PHRenderFormerWrapper/RenderFormer Model Loader
ComfyUI Node

RenderFormer Model Loader

The node that drags Microsoft's neural renderer onto your GPU

By paulh4x·Created about a year ago·Updated about a year ago· 37
RenderFormer Model Loader
    • MODEL
    model_idmicrosoft/renderformer-v1.1-swin-large
    precisionfp16

    Every RenderFormer workflow starts here. This is the first node you place and the one that does the heavy lifting before you've rendered a single pixel: it pulls Microsoft's RenderFormer model - a SIGGRAPH 2025 transformer that renders triangle meshes with PBR materials and global illumination - out of Hugging Face, loads it onto your GPU, and hands it to the sampler as a MODEL.

    It's part of paulh4x/ComfyUI_PHRenderFormerWrapper, a 15-node pack that's a wrapper around RenderFormer. Worth knowing going in: the whole pack is the author's first-ever coding project, openly "100% vibecoded" and experimental. It works - the r/comfyui release thread got a warm reception and it really does render - but don't expect polished official support. The node itself is about as simple as a loader gets.

    How it works

    Under the hood it's a one-liner: RenderFormerRenderingPipeline.from_pretrained(model_id), then .to(device). That call handles downloading, caching, and loading the model. The only inputs are model_id and precision, and honestly, precision is the only one you'll touch after the first run.

    • model_id - defaults to microsoft/renderformer-v1.1-swin-large, the official HF repo. The tooltip says it can also be a local path, which is handy if you've already downloaded the weights and want to skip the network. First run downloads a couple of GB to your Hugging Face cache, so give it a minute.
    • precision - fp16 (default) or fp32. The author's own benchmark was fp32: about 1.15s per 1024×1024 frame on a 4090, running in 8GB VRAM. fp16 will cut memory and usually speed things up, but if you see color or shading artifacts, fp32 is the safest dial to turn. With a 4090-class card, just leave it on fp32.

    Wiring it in

    It has a single output, MODEL, which feeds the RenderFormerGenerator ("Sampler"). That's the whole graph on the model side - load → sample. Everything else - meshes, camera, lights - gets assembled by the Scene Builder and joins the sampler through a separate SCENE input, not through this node.

    Installing it

    The pack installs like any ComfyUI custom node, with one extra step that trips people up. Either:

    # ComfyUI Manager: search "ComfyUI_PHRenderFormerWrapper" and install
    cd ComfyUI/custom_nodes/
    git clone https://github.com/paulh4x/ComfyUI_PHRenderFormerWrapper.git
    cd ComfyUI_PHRenderFormerWrapper
    git clone https://github.com/microsoft/renderformer.git renderformer
    pip install -r requirements.txt
    python -c "import imageio; imageio.plugins.freeimage.download()"
    

    Then restart ComfyUI.

    The git clone ... renderformer line is not optional - it must live inside the pack directory under exactly that name. That's where the example scenes and conversion code come from. If you skip it, nodes load but example/import paths break.

    Common issues

    • First-run silence then a long wait - the model download can look like a hang. It isn't; give it time or watch your network.
    • Import errors on startup - the __init__.py prints a colored "Nodes loading ERROR" banner. Nine times out of ten it's a missing requirement (the pack pulls in trimesh, pymeshlab, h5py, roma, simple-ocio, and a git-installed renderformer-liger-kernel, so it's a heavier dependency set than most). Run pip install -r requirements.txt and restart.
    • VRAM pressure - at 8GB it fits, but if your ComfyUI is already loaded with a diffusion model, consider fp16 or running the loader in a fresh session.

    It's a boring node, and that's a compliment: it's the download-and-go entry point that the rest of this pack depends on.

    CategoryPHRenderFormer

    Inputs (2)

    NameTypeDefaultDescription
    model_idSTRINGmicrosoft/renderformer-v1.1-swin-largeThe model ID from Hugging Face or a local path.
    precisionCOMBOfp162 options: fp16, fp32

    Outputs (1)

    NameTypeDescription
    MODELMODEL