From: TencentARC <huggingface.co/TencentARC>Newsgroups: alt.freeweights.textSubject:

Pixal3D

Date: 2026-11-15Commit: b0cb2e1Signed: 2DC28CC7B26A283B ✓

Image to 3d model. Safetensors weights, 46.0 GB in all. Published by TencentARC under MIT.

text46.0GBPixal3Dsafetensorspermissive
FactsParamsnot statedSize46.0 GBFormatssafetensorsTaskimage to 3dLicenseMITFrom sourcepermissive
$ fw get TencentARC/Pixal3D
# manifest sha256 cc046d3d3882… · 46.0 GB · 28 files
$ fw verify ./Pixal3D TencentARC/Pixal3D
From sourceHosted (signed)TencentARC/Pixal3DLast check: 2026-11-15 04:31 UTC

Get help: custom fine-tune or private deploy. We review your setup before we quote.

Works with

Runs with

Ranked by fit to this model (safetensors), then by GitHub stars.

Overview

Size
46.0 GB
Weights
46.0 GB (safetensors)
Parameters
not stated
Formats
safetensors
Task
image to 3d
License
MIT (permissive)
Files
28, each with a sha256
Publisher
TencentARC
Added
2026-11-15
Section
alt.freeweights.text
Lineage

Original release from the publisher.

Where these bytes come from
Publisher at the pinned commit→You

Sources are tried in order. A file counts only when its size and sha256 match the manifest. Sources are checked when you ask for them, not on a timer.

Sources
BadgeHostLast checkResult
From sourcehuggingface.co2026-11-15 04:31 UTCpassed

Model card

From the publisher at commit b0cb2e1. Shown as plain text with links; images open at the publisher.

Pixal3D: Pixel-Aligned 3D Generation from Images#

SIGGRAPH 2026#

Dong-Yang Li¹ · Wang Zhao²* · Yuxin Chen² · Wenbo Hu² · Meng-Hao Guo¹ · Fang-Lue Zhang³ · Ying Shan² · Shi-Min Hu¹✉

¹Tsinghua University (BNRist) &nbsp;&nbsp; ²Tencent ARC Lab &nbsp;&nbsp; ³Victoria University of Wellington

*Project lead &nbsp;&nbsp; ✉Corresponding author

https://ldyang694.github.io/projects/pixal3d/ https://github.com/TencentARC/Pixal3D https://huggingface.co/spaces/TencentARC/Pixal3D https://huggingface.co/TencentARC/Pixal3D https://arxiv.org/abs/2605.10922 LICENSE

Pixal3D generates high-fidelity 3D assets from a single image. Unlike previous methods that loosely inject image features via attention, Pixal3D explicitly lifts pixel features into 3D through back-projection, establishing direct pixel-to-3D correspondences. This enables near-reconstruction-level fidelity with detailed geometry and PBR textures.


✨ News#

  • May 2026: Release training code and data preparation toolkit. 🔧
  • May 2026: Release the improved version based on Trellis.2 backbone. 💪
  • May 2026: Release inference code and online demo. 🤗
  • Apr 2026: Our paper is accepted to SIGGRAPH 2026! 🎉

📌 Branches#

BranchDescription
mainLatest version — improved implementation based on Trellis.2 backbone with better performance.
paperPaper version — original implementation based on Direct3D-S2, corresponding to results reported in our SIGGRAPH 2026 paper.

If you want to reproduce the results in our paper, please switch to the paper branch.

🎮 Try It Online#

You can try Pixal3D directly in your browser without any installation via our Hugging Face Gradio demo:

👉 Launch Demo

🚀 Getting Started#

Installation#
Step 1: Follow TRELLIS.2 Installation#

Please first follow the installation guide of TRELLIS.2 to set up the base environment.

Step 2: Install Additional Dependencies#
pip install -r requirements.txt
Step 3: Install natten#
NATTEN_CUDA_ARCH="xx" NATTEN_N_WORKERS=xx pip install natten==0.21.0 --no-build-isolation

Please replace xx with the CUDA architecture and the number of build workers suitable for your machine.

Step 4: Install utils3d#
pip install https://github.com/LDYang694/Storages/releases/download/20260430/utils3d-0.0.2-py3-none-any.whl

Note: requirements-hfdemo.txt is for the Hugging Face Spaces demo (H-series GPU architecture) and may not be compatible with other architectures.

Usage#
Inference#

Generate a GLB mesh from a single image:

python inference.py --image assets/images/0_img.png --output ./output.glb

Low-VRAM mode (reduces peak VRAM by loading models on-demand):

python inference.py --image assets/images/0_img.png --output ./output.glb --low_vram

By default, the pipeline resolution is 1536 (standard mode) or 1024 (low-VRAM mode). You can override this with --resolution:

# Force 1536 even in low-VRAM mode
python inference.py --image assets/images/0_img.png --output ./output.glb --low_vram --resolution 1536

# Force 1024 in standard mode
python inference.py --image assets/images/0_img.png --output ./output.glb --resolution 1024

Tip: If you don't have flash_attn installed, you can use PyTorch's built-in SDPA backend instead:

ATTN_BACKEND=sdpa python inference.py --image assets/images/0_img.png --output ./output.glb --low_vram
Web Demo#

We provide a Gradio web demo for Pixal3D, which allows you to generate 3D meshes from images interactively.

python app.py 

Low-VRAM mode is also available for the web demo. The frontend default resolution will automatically switch to 1024 in low-VRAM mode (1536 otherwise), but can be changed manually in the UI.

python app.py --low_vram
# or via environment variable:
LOW_VRAM=1 python app.py

🔧 Training#

We provide the full training codebase for reproducing Pixal3D from scratch.

Data Preparation#

Prepare view-aligned O-Voxel data and rendered condition images by following the data toolkit instructions:

📂 data_toolkit/README.md

Overview#

Pixal3D is trained as a three-stage cascade, each progressively increasing resolution:

StageModelResolutionsConfig Prefix
1Sparse Structure32 → 64ss_flow_img_dit_*_proj_finetune
2Shape256 → 512 → 1024slat_flow_img2shape_*_proj_finetune
3Texture256 → 512 → 1024slat_flow_imgshape2tex_*_proj_finetune

All stages use pixel-aligned projection conditioning and view-aligned latents (2 views by default). Within each stage, start from the lowest resolution and progressively fine-tune to higher resolutions by setting finetune_ckpt in the config.

Quick Start#
python train.py \
  --config <CONFIG_JSON> \
  --output_dir <OUTPUT_DIR> \
  --data_dir '<DATA_DIR_JSON>'

--data_dir is a JSON string describing the dataset layout. Different stages require different keys:

StageRequired keys
Sparse Structurebase, ss_latent, render_cond
Shapebase, shape_latent, render_cond
Texturebase, shape_latent, pbr_latent, render_cond
Example: Training All Three Stages#

Below we show the full training sequence using ObjaverseXL as an example. Each higher-resolution step requires updating finetune_ckpt in its config JSON to point to the previous checkpoint.

Stage 1: Sparse Structure (32 → 64)

# Resolution 32
python train.py \
  --config configs/gen/ss_flow_img_dit_1_3B_32_bf16_proj_finetune.json \
  --output_dir results/ss_32 \
  --data_dir '{"ObjaverseXL_sketchfab": {"base": "datasets/ObjaverseXL_sketchfab", "ss_latent": "datasets/ObjaverseXL_sketchfab/ss_latents/ss_enc_conv3d_16l8_fp16_64_view", "render_cond": "datasets/ObjaverseXL_sketchfab/renders_cond"}}'

# Resolution 64 (set finetune_ckpt → results/ss_32 checkpoint)
python train.py \
  --config configs/gen/ss_flow_img_dit_1_3B_32_bf16_proj_finetune_ft64.json \
  --output_dir results/ss_ft64 \
  --data_dir '{"ObjaverseXL_sketchfab": {"base": "datasets/ObjaverseXL_sketchfab", "ss_latent": "datasets/ObjaverseXL_sketchfab/ss_latents/ss_enc_conv3d_16l8_fp16_64_view", "render_cond": "datasets/ObjaverseXL_sketchfab/renders_cond"}}'

Stage 2: Shape (256 → 512 → 1024)

# Resolution 256
python train.py \
  --config configs/gen/slat_flow_img2shape_dit_1_3B_256_bf16_proj_finetune.json \
  --output_dir results/shape_256 \
  --data_dir '{"ObjaverseXL_sketchfab": {"base": "datasets/ObjaverseXL_sketchfab", "shape_latent": "datasets/ObjaverseXL_sketchfab/shape_latents/shape_enc_next_dc_f16c32_fp16_256_view", "render_cond": "datasets/ObjaverseXL_sketchfab/renders_cond"}}'

# Resolution 512
python train.py \
  --config configs/gen/slat_flow_img2shape_dit_1_3B_256_bf16_proj_finetune_ft512.json \
  --output_dir results/shape_ft512 \
  --data_dir '{"ObjaverseXL_sketchfab": {"base": "datasets/ObjaverseXL_sketchfab", "shape_latent": "datasets/ObjaverseXL_sketchfab/shape_latents/shape_enc_next_dc_f16c32_fp16_512_view", "render_cond": "datasets/ObjaverseXL_sketchfab/renders_cond"}}'

# Resolution 1024
python train.py \
  --config configs/gen/slat_flow_img2shape_dit_1_3B_512_bf16_proj_finetune_ft1024.json \
  --output_dir results/shape_ft1024 \
  --data_dir '{"ObjaverseXL_sketchfab": {"base": "datasets/ObjaverseXL_sketchfab", "shape_latent": "datasets/ObjaverseXL_sketchfab/shape_latents/shape_enc_next_dc_f16c32_fp16_1024_view", "render_cond": "datasets/ObjaverseXL_sketchfab/renders_cond"}}'

Stage 3: Texture (256 → 512 → 1024)

# Resolution 256
python train.py \
  --config configs/gen/slat_flow_imgshape2tex_dit_1_3B_256_bf16_proj_finetune.json \
  --output_dir results/tex_256 \
  --data_dir '{"ObjaverseXL_sketchfab": {"base": "datasets/ObjaverseXL_sketchfab", "shape_latent": "datasets/ObjaverseXL_sketchfab/shape_latents/shape_enc_next_dc_f16c32_fp16_256_view", "pbr_latent": "datasets/ObjaverseXL_sketchfab/pbr_latents/tex_enc_next_dc_f16c32_fp16_256_view", "render_cond": "datasets/ObjaverseXL_sketchfab/renders_cond"}}'

# Resolution 512
python train.py \
  --config configs/gen/slat_flow_imgshape2tex_dit_1_3B_512_bf16_proj_finetune.json \
  --output_dir results/tex_512 \
  --data_dir '{"ObjaverseXL_sketchfab": {"base": "datasets/ObjaverseXL_sketchfab", "shape_latent": "datasets/ObjaverseXL_sketchfab/shape_latents/shape_enc_next_dc_f16c32_fp16_512_view", "pbr_latent": "datasets/ObjaverseXL_sketchfab/pbr_latents/tex_enc_next_dc_f16c32_fp16_512_view", "render_cond": "datasets/ObjaverseXL_sketchfab/renders_cond"}}'

# Resolution 1024
python train.py \
  --config configs/gen/slat_flow_imgshape2tex_dit_1_3B_512_bf16_proj_finetune_ft1024.json \
  --output_dir results/tex_ft1024 \
  --data_dir '{"ObjaverseXL_sketchfab": {"base": "datasets/ObjaverseXL_sketchfab", "shape_latent": "datasets/ObjaverseXL_sketchfab/shape_latents/shape_enc_next_dc_f16c32_fp16_1024_view", "pbr_latent": "datasets/ObjaverseXL_sketchfab/pbr_latents/tex_enc_next_dc_f16c32_fp16_1024_view", "render_cond": "datasets/ObjaverseXL_sketchfab/renders_cond"}}'
Additional Options#

All command-line arguments

ArgumentDescriptionDefault
--configConfig JSON pathrequired
--output_dirOutput directoryrequired
--data_dirDataset JSON string./data/
--load_dirCheckpoint load directoryoutput_dir
--ckptResume from steplatest
--auto_retryRetries on failure3
--tryrunDry runfalse
--profileProfilingfalse
--num_nodesNumber of nodes1
--node_rankCurrent node rank0
--num_gpusGPUs per nodeall
--master_addrMaster addresslocalhost
--master_portMaster port12666
--use_wandbEnable W&B loggingfalse
--wandb_projectW&B projecttrellis2-training
--wandb_nameW&B run namebasename of output_dir
--wandb_idW&B run ID (resume)—

🌐 Community Projects#

We thank the community for building extensions and deployment guides for Pixal3D!

  • Pixal3D-ComfyUI — ComfyUI integration with deployment guides for Windows, WSL, and more.

🤗 Acknowledgements#

This project is heavily built upon Trellis.2 and Direct3D-S2. We sincerely thank the authors for their outstanding work on scalable 3D generation , which serves as the foundation of our codebase and model architecture.

We also thank the following repos for their great contributions:

📄 Citation#

If you find this work useful, please consider citing:

@article{li2026pixal3d,
    title={Pixal3D: Pixel-Aligned 3D Generation from Images},
    author={Li, Dong-Yang and Zhao, Wang and Chen, Yuxin and Hu, Wenbo and Guo, Meng-Hao and Zhang, Fang-Lue and Shan, Ying and Hu, Shi-Min},
    journal={arXiv preprint arXiv:2605.10922},
    year={2026}
}

📜 License#

This project is released under the MIT License. The third-party components included in this project remain licensed under their respective original terms; see NOTICE for the full list of dependencies and their licenses.

Files

28 files · 46.0 GBWeights 46.0 GB (safetensors). Sizes and sha256 from the signed manifest.
Show all 28 files with their sha256
FileSizesha256
.gitattributes1.52 KB11ad7efa24975ee4b0c3c3a38ed18737f0658a5f75a0a96787b576a78a023361
LICENSE1.06 KB31d37e9c4fee1e0cd2196bccd592e8a2c30bfa17ea177d70ad25f977ba6bd9c0
NOTICE12.5 KB2d9c4437b2c3264dcea406c6af5066c0b21c7a7b34384c567dc6551b9129f815
README.md13.3 KBe7928862cfeedf78ab6d4f8684ca489638be05ac6ad2bfb7ad89ee1bfc6806d6
ckpts/shape_dec_next_dc_f16c32_fp16.json678 B5f1b856dffce79466fb18f5f0eefc08f08c673b24b3c05b20359c0b6d318a209
ckpts/shape_dec_next_dc_f16c32_fp16.safetensors948 MBe3b718d3e43e4f8780e9a24ac6fff231811a67e3b058e336e10fe654c911d581
ckpts/slat_flow_img2shape_dit_1_3B_1024_bf16.json535 Bf47fca56311959a643e8cfd2750229a2c53cbab0027406d8426cd564ce4fb5bc
ckpts/slat_flow_img2shape_dit_1_3B_1024_bf16.safetensors5.55 GB3e6d1df0e62bc5bc863320d1d63d6b996235eef4abb8b851e878c88f316369f1
ckpts/slat_flow_img2shape_dit_1_3B_1024_bf16_mv.json535 Bf47fca56311959a643e8cfd2750229a2c53cbab0027406d8426cd564ce4fb5bc
ckpts/slat_flow_img2shape_dit_1_3B_1024_bf16_mv.safetensors5.55 GB37b75c8f0f089a7e3e825dec035ac83b9c989efd14d0c8ada6a620d2be561c71
ckpts/slat_flow_img2shape_dit_1_3B_512_bf16.json535 B2f7b736e8535aae96e7c41e8d123c24a14ee809fc25bea76eeac72643d21b997
ckpts/slat_flow_img2shape_dit_1_3B_512_bf16.safetensors5.55 GB63569838c1da93f010e2fa805b202ecf802cc758830230abac202a81b70e5b45
ckpts/slat_flow_img2shape_dit_1_3B_512_bf16_mv.json535 B2f7b736e8535aae96e7c41e8d123c24a14ee809fc25bea76eeac72643d21b997
ckpts/slat_flow_img2shape_dit_1_3B_512_bf16_mv.safetensors5.55 GB043a0d7fc7ee81792fcb22f836c91f5aaf69f4fda15e25c38488db13dd7b77ec
ckpts/slat_flow_imgshape2tex_dit_1_3B_1024_bf16.json535 Bf18455729d08d2ce7ef809f947ffa47f6f468b3bcf8a86473e8c326e80128ac2
ckpts/slat_flow_imgshape2tex_dit_1_3B_1024_bf16.safetensors5.55 GB65df179ad02f9e92bc18335d7861fadd95f268e6249217352468dd83cb79d1d0
ckpts/slat_flow_imgshape2tex_dit_1_3B_1024_bf16_mv.json535 Bf18455729d08d2ce7ef809f947ffa47f6f468b3bcf8a86473e8c326e80128ac2
ckpts/slat_flow_imgshape2tex_dit_1_3B_1024_bf16_mv.safetensors5.55 GB887fed6155fea44afbdab7130858984765d04a5b809b0993db0d3f0195060d86
ckpts/ss_dec_conv3d_16l8_fp16.json245 B646781293f1cda74720de85d1cef50a957fb4aebd9a4bd014e454e32f2330ac5
ckpts/ss_dec_conv3d_16l8_fp16.safetensors148 MB1c76d4a40519aa2d711cc263a8404105231ac26db31d946bed48b84fee79009a
ckpts/ss_flow_img_dit_1_3B_64_bf16.json503 B2b3ef4c63b72a3de8adf745bd9d9d36b7960bdd7ba3740a6fa4d18fea6c475dd
ckpts/ss_flow_img_dit_1_3B_64_bf16.safetensors5.36 GB6d0147bb347eb61fa81c304cc68c7fd69d447e91870357a549b47e1d0fd77242
ckpts/ss_flow_img_dit_1_3B_64_bf16_mv.json503 B2b3ef4c63b72a3de8adf745bd9d9d36b7960bdd7ba3740a6fa4d18fea6c475dd
ckpts/ss_flow_img_dit_1_3B_64_bf16_mv.safetensors5.36 GBe7ce63050e317cff70ed2c6dfcc549e668cd948c47347f31985fd4996b4ce5a6
ckpts/tex_dec_next_dc_f16c32_fp16.json705 B22074e4ab5b28e2b72d33a3fe61bf416134b89e12d0fc5c729f37da75da0c4d1
ckpts/tex_dec_next_dc_f16c32_fp16.safetensors948 MB97ea69addea2ecd9312910f5f548234665eef51c088386180b7cd5b258645e3c
pipeline.json4.07 KB1647217de06e32477702d14895e826fea73497d94537b809a53637f13482a237
pipeline_mv.json6.04 KB3bd8f005301423604aafbfab126639c675d7dc6968b8113271433f6593901715
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
b0cb2e1b79 pinned now2026-11-15 04:31 UTC28 files · 46.0 GB

Use it

$ fw get TencentARC/Pixal3D
# manifest sha256 cc046d3d3882… · 46.0 GB · 28 files
$ fw verify ./Pixal3D TencentARC/Pixal3D
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/TencentARC/Pixal3D.json --dir ./Pixal3D $ python3 fw.py verify ./Pixal3D ./TencentARC__Pixal3D.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download TencentARC/Pixal3D --revision b0cb2e1b794cab9aa0ac38a95d794a4d9337437f --local-dir ./Pixal3D

License

Name
MIT License
Id
MIT
Class
Permissive
Redistribution
yes
Listing
Hosted (signed)
Decided
License as declared by the publisher. No person read it. 2026-11-15
Text in
LICENSE
Text sha256
31d37e9c4fee1e0cd2196bccd592e8a2c30bfa17ea177d70ad25f977ba6bd9c0
Terms gate
No extra terms beyond the license.

Read the license text

Licenses are checked against the license table. A custom license passes only after a person reads it.

Provenance

From: TencentARC <huggingface.co/TencentARC>Newsgroups: alt.freeweights.textSubject: Pixal3DDate: 2026-11-15Commit: b0cb2e1Signed: 2DC28CC7B26A283B ✓
Upstream
TencentARC/Pixal3D
Pinned commit
b0cb2e1b794cab9aa0ac38a95d794a4d9337437f
Manifest
Pixal3D.json · .minisig
Manifest sha256
cc046d3d3882c642de316395cabcb08454be4c9b5084569271b441df4a519620
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 04:31 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/TencentARC/Pixal3D.json $ curl -O https://freeweights.allternit.com/manifests/TencentARC/Pixal3D.json.minisig $ minisign -Vm Pixal3D.json -P RWQ7KGqyx4zCLXtUFOqvfv8L3g+8fpKJ1FsuxPyOYMF+4KufbUxKq1Oq $ shasum -a 256 <file> # compare with the Files tab

A manifest whose signature fails must be rejected. A file whose size or sha256 does not match must be discarded. Verify a download

Model tree

1 model in the catalog name this one as their parent.

Fine-tunes
1
Fine-tunes 1
Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download TencentARC/Pixal3D
Open in Freeweights Studio

Pull, verify and run it in the Allternit app on Desktop, web or phone.

Signed manifest
minisign, key 2DC28CC7B26A283B. Pixal3D.json. Provenance. Takedown history: none.
From: laion <huggingface.co/laion>Subject: a2-rl-e2egit_large-50-32B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_e2egit-large-15-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_e2egit-v2-10-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_pymethods2test-large-80-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_unitsyn-python-large-10-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_mix_h2_language_proportional-65-8B