Pixal3D Image To 3D
Pixal3D Image To 3D
- model
- image
- manual_fov
- pixal3d_result
- rembg_image
This is the heart of the pack. Pixal3D Image To 3D takes a single image plus a loaded model handle and returns a textured 3D result - the mesh and texture data that Export GLB later turns into a file. It's Tencent ARC's Pixal3D running in ComfyUI: a May-2026 image-to-3D model built on the TRELLIS.2 backbone, MIT-licensed since late May, and the community's early take was that it's a step up from raw TRELLIS.2 for single-image geometry. The headline trick - "pixel-aligned" in the name - means it back-projects your image's pixel features directly into 3D space instead of just loosely injecting them via attention, which is why the front face comes out so close to the input.
How it works
Under the hood it runs a multi-stage pipeline: an image encoder (DINOv3) reads the image, a background step handles the cutout, a camera-fitting step (MoGe or manual) decides the view, then sparse-structure, shape, and texture sampling stages generate the geometry and paint it. Non-square images are padded to square before Pixal3D's square encoder, so a 9:16 or 16:9 image doesn't come out stretched.
You don't need to know any of that to use it, but it explains the three knobs that dominate the node.
The inputs that matter
- model - the
PIXAL3D_MODELhandle from Pixal3D Model Loader. The tooltip carries an easy-to-miss warning: if you change backend, VRAM, helper-model, or NAF settings on the loader, you have to re-run the loader to get a matching handle. - image - your subject. RGBA alpha is respected when
background_modeiskeep_alphaorauto_remove, which matters for the transparency workflows below. - pipeline_type -
1024_cascade(the normal path, lower VRAM) or1536_cascade(the default; more detail, more VRAM, and can drop resolution if the token budget runs out). The README's low-VRAM guidance says 1024. Community reports back that up: a 4060 laptop with 6GB runs fine at 1024_cascade. - background_mode -
auto_remove(default: uses RMBG-2.0 unless your image already has alpha),keep_alpha(prefers alpha, no background model needed), ornone(skips removal; alpha is ignored by design). If you have a transparent PNG/WebP,keep_alphaskips the gated RMBG download entirely. - camera_mode -
moge(default; MoGe estimates camera/FOV from the image) ormanual(uses the manual camera values, and is overridden if a Pixal3D Camera Controlmanual_fovis connected). Manual mode is how you fix bad framing - and it's the only camera mode available if you turned MoGe off to save VRAM. - seed, steps, guidance - the sampler controls. Defaults (seed 42, steps 12, guidance 7.5, texture_guidance 1.0) match upstream Pixal3D. For a first run, change the seed and leave the rest alone.
- max_num_tokens (default 49152) - caps high-resolution sparse tokens. Lower it to cut VRAM; the tooltip's honest about the cost, which is detail.
- extend_pixel (default 0) - nudges the camera-fitting target when MoGe framing is slightly too tight or loose. A cheap fix before you give up on auto camera.
Outputs
Two of them:
- pixal3d_result (
PIXAL3D_RESULT) - wire this to Pixal3D Export GLB. It's the mesh + texture data, in-memory only. - rembg_image (
IMAGE) - the image Pixal3D actually used after background preprocessing. This is the one beginners ignore and later regret ignoring: connect it to a Preview Image node and you can see whether auto-remove butchered your cutout before you burn five minutes generating from garbage.
What to expect
Realistic expectations save real time. The KB's verdict on the whole field applies: the front-facing geometry is genuinely impressive, but it's triangle-soup topology with a hallucinated backside (single-image models only see one view - "the backside is hallucinated" is a feature, not a bug), and it's not ready for rigging or animation. A static prop, a 3D print, or a base mesh? Great. A game-ready deformable asset? Plan on retopology.
Timing: community reports put it around 5–6 minutes per asset at 1024_cascade / 20 steps / 4096 texture on a 4070 Ti 12GB. It's a session-scale operation, not a sub-second TripoSR-style pass - treat it like a render, batch accordingly, and check rembg_image before you commit.
Troubleshooting
- Missing head/feet, or half a head - a community-reported pattern on this node, usually tied to framing and background handling. Try manual camera mode to reframe, and check
rembg_imageto confirm the cutout is clean. - Nothing happens / no file - the node produces no file on its own; that's Export GLB's job. If you generated and have no output, you've forgotten the exporter.
- VRAM OOM -
1024_cascade,max_num_tokensdown,background_mode=keep_alphawith a transparent input, and manual camera (so MoGe doesn't need to load) is the README's lowest-VRAM recipe.
Inputs (17)
| Name | Type | Default | Description |
|---|---|---|---|
| model | PIXAL3D_MODEL | Pixal3D model handle from Pixal3D Model Loader. Re-run the loader after changing backend, VRAM, helper-model, or NAF settings. | |
| image | IMAGE | Input subject image. RGBA alpha is respected when background_mode is keep_alpha or auto_remove. | |
| seed | INT | 420–18446744073709550000 | Random seed for all Pixal3D sampling stages. |
| pipeline_type | COMBO | 1536_cascade | 1024_cascade is the normal path. 1536_cascade can improve detail but needs more VRAM and may lower resolution if token count is too high. |
| background_mode | COMBO | auto_remove | auto_remove uses Pixal3D/rembg unless alpha exists. keep_alpha prefers alpha. none skips background removal. |
| camera_mode | COMBO | moge | moge estimates camera/FOV from the image. manual uses manual_camera_angle_x, manual_distance, and mesh_scale unless a Pixal3D Camera Control manual_fov input is connected. |
| manual_camera_angle_x | FLOAT | 0.8580.1–3 | Horizontal field of view in radians for manual camera mode. |
| manual_distance | FLOAT | 2.000.1–20 | Camera distance for manual camera mode. |
| mesh_scale | FLOAT | 1.000.05–10 | Scale used for camera fitting. Usually keep 1.0. |
| extend_pixel | INT | 0-512–512 | Offsets the camera fitting target. Useful if MoGe framing is slightly too tight or loose. |
| camera_resolution | INT | 512256–2048 | Resolution used for MoGe camera fitting math. 512 matches upstream defaults. |
| steps | INT | 121–100 | Sampling steps for sparse structure, shape, and texture stages. Upstream default is 12. |
| guidance | FLOAT | 7.50–20 | Guidance strength for sparse structure and shape sampling. Upstream default is 7.5. |
| texture_guidance | FLOAT | 1.00–20 | Guidance strength for texture sampling. Upstream default is 1.0. |
| max_num_tokens | INT | 491524096–200000 | Caps high-resolution sparse tokens. Lower values reduce VRAM, but can reduce detail. |
| force_offload | BOOLEAN | false | Unload the Pixal3D model from Comfy model management after generation. |
| manual_fovopt | PIXAL3D_CAMERA | Bundled manual camera values from Pixal3D Camera Control. Only used when camera_mode=manual. When connected, it overrides manual_camera_angle_x, manual_distance, and mesh_scale. Ignored when camera_mode=moge. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| pixal3d_result | PIXAL3D_RESULT | — |
| rembg_image | IMAGE | — |