What is TRELLIS.2?

TRELLIS.2 is a model released by Microsoft that generates a 3D model from a single image.

The output is a 3D model with color and surface detail (a mesh with PBR textures).

Pixal3D

Pixal3D is an improved version based on TRELLIS.2, released by Tsinghua University, Tencent ARC Lab, and others.

It projects the image features into 3D space pixel by pixel before generating, so the input image and the 3D model line up pixel for pixel, and the shape stays faithful to the input image.


Downloading the models

📂ComfyUI/
└── 📂models/
    ├── 📂background_removal/
    │   └── birefnet.safetensors
    ├── 📂clip_vision/
    │   └── dino_v3_L_naf_fp32.safetensors
    ├── 📂diffusion_models/
    │   ├── trellis_2_int8_convrot.safetensors
    │   ├── pixal3d_int8_convrot.safetensors
    │   └── pixal3d_multiview_int8_convrot.safetensors
    ├── 📂geometry_estimation/
    │   └── moge_3_vitl_fp16.safetensors
    └── 📂vae/
        ├── trellis_2_shape_vae_bf16.safetensors
        └── trellis_2_texture_vae_bf16.safetensors

TRELLIS.2

The workflow is huge enough to make you hesitate, but for the most part you just swap the input image and run it.

trellis_2_image2model.json
Deep diveTRELLIS.2

Preprocessing

Removes the background with BiRefNet and makes a square image with a solid black background.

Four sampling passes

TRELLIS.2 generates in four passes, starting from the rough shape.

  • Pass 1
    • Decides where the object is, using a coarse 32³ voxel grid
  • Pass 2
    • Builds the shape inside those voxels at a resolution of 512
  • Pass 3
    • Raises the shape from pass 2 to a resolution of 1536 and rebuilds it
  • Pass 4
    • Adds color and material to the finished shape

Mesh post-processing

The generated mesh is cleaned up before the textures are baked.

  • Remesh Mesh rebuilds the faces evenly, and Decimate Mesh reduces them to 700,000
  • Unwrap Mesh UVs unwraps the UVs, and the voxel colors are baked into a texture
  • The normal map and AO are also baked from the mesh before decimation
Outputs
Input
Input
Output

Pixal3D

It is almost the same as TRELLIS.2, but it takes an extra FOV (field of view) input, so a step that estimates it from the image is added.

pixal3d_image2model.json
Deep divePixal3D

Preprocessing

The pad_factor of Crop Image to Mask is 1.0 for TRELLIS.2, but Pixal3D uses 1.1 here.

Model

Switch the diffusion model to pixal3d_int8_convrot.safetensors. The VAE and DINOv3 are the same as for TRELLIS.2.

Estimating the field of view with MoGe

Pixal3D uses the field of view (FOV) of the camera that took the image to project the image into 3D space.

This workflow uses MoGe-3 to estimate the FOV.

Outputs
Input
Input
Output

Pixal3D multi-view

Generates a 3D model from four images: front, left, back, and right.

pixal3d_multiview2model.json

The multi-view images were generated with Qwen-Image-2.1. Prepare them however you like, for example by making a turntable video with a video generation model and pulling frames from it.

Deep divePixal3D multi-view

Four-view input

Each of the four images is turned into a black-background image, the same way as above.

To keep the workflow compact, the images are first gathered into a list and processed in order, then taken out one at a time with Get Item From List.

  • fov stays at the default of 20
    • When you use photos, it may be better to put in a value estimated from one of them with MoGe.
Outputs
Front
Front
Left
Left
Back
Back
Right
Right
Output