Instructions to use AuroraRyan/PartTrellis with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Trellis
How to use AuroraRyan/PartTrellis with Trellis:
# No code snippets available yet for this library. # To use this model, check the repository files and the library's documentation. # Want to help? PRs adding snippets are welcome at: # https://github.com/huggingface/huggingface.js
- Notebooks
- Google Colab
- Kaggle
PartTrellis β part-aware image-to-3D on TRELLIS.2 O-Voxel
PartTrellis packs the parts of an object into two interleaved volumes (contact graph contracted until bipartite), runs a two-stream rectified flow over TRELLIS.2's O-Voxel representation, and decodes each volume with the stock TRELLIS.2 decoder. Every part stays a clean, closed sub-mesh; no segmenter runs after generation.
This repository carries the released checkpoints, the ablation checkpoints from the paper, and the project code (data processing, training, inference, evaluation, figure rendering). Datasets are distributed separately.
Released pipeline (the checkpoints every number in the paper uses)
| file | role | steps |
|---|---|---|
ckpts/stage1_layout_sepocc_100k.pt |
Stage-1 layout flow β separate weights per stream, per-stream I/O, disjointness loss L_ov (w=5) | 100k |
ckpts/stage2_slat_orig_100k.pt |
Stage-2 SLat flow in the original TRELLIS.2 VAE latent space | 100k |
ckpts/shape_dec_next_dc_f16c32_fp16.pt |
SLat decoder β stock microsoft/TRELLIS.2-4B file converted to .pt; identical weights to ckpts/shape_dec_next_dc_f16c32_fp16.safetensors there |
β |
Stage-1 sparse-structure decoding uses the stock
microsoft/TRELLIS-image-large ss_dec_conv3d_16l8_fp16 (downloaded
automatically by from_pretrained). Image conditioning uses gated
facebook/dinov3-vitl16-pretrain-lvd1689m
β accept the license once, then run with HF_HUB_OFFLINE=1 on cluster nodes.
Ablation checkpoints (self-trained)
| file | paper table | note |
|---|---|---|
ablations/stage1_no_Lov_100k.pt |
disjointness ablation, w/o L_ov row | separate weights, otherwise identical to release |
ablations/stage1_shared_emb_100k.pt |
weight-sharing ablation, shared row | one backbone + volume embedding into AdaLN |
ablations/volumes_dual_shared_100k.pt |
#volumes ablation, dual arm | shared backbone, 2 volumes |
ablations/volumes_tri_shared_100k.pt |
#volumes ablation, tri arm | shared backbone, 3 volumes (greedy 3-coloring) |
ablations/omnipart_port_tr2_44k.pt |
OmniPart-representation port onto TRELLIS.2 | token cost Γ3.05, wall-clock Γ3.78 vs ours at equal budget |
External components β links only
| component | where |
|---|---|
| TRELLIS.2 (code) | https://github.com/microsoft/TRELLIS.2 |
| TRELLIS.2 weights (incl. shape enc/dec) | https://huggingface.co/microsoft/TRELLIS.2-4B |
| TRELLIS v1 weights (ss decoder) | https://huggingface.co/microsoft/TRELLIS-image-large |
| DINOv3 conditioning | https://huggingface.co/facebook/dinov3-vitl16-pretrain-lvd1689m (gated) |
| X-Part / P3-SAM (baseline) | https://github.com/Tencent-Hunyuan/Hunyuan3D-Part |
| Hunyuan3D-2.1 (baseline generator) | https://github.com/Tencent-Hunyuan/Hunyuan3D-2.1 |
| OmniPart (baseline) | https://github.com/HKU-MMLab/OmniPart |
| PartPacker (baseline) | https://github.com/NVlabs/PartPacker |
| AutoPartGen (baseline) | no public code at time of writing; evaluated on author-released outputs |
Code
| file | contents |
|---|---|
code/trellis2_part_code.tar.gz |
full project tree: data processing (attraction/data/ β O-Voxel prep, bipartite contraction, latent prep), training configs & trainers, scripts/infer_e2e_dual.py, evaluation (scripts/eval_parts_full.py, scripts/eval_parts_hungarian.py), plus all project docs (OVOXEL_TRUTH.md, DATA_PIPELINE.md, status notes) |
code/eval1000_helpers.tar.gz |
test-split lists, alignment helpers (48 signed-axis-perm oracle), aggregation and figure-assembly scripts |
code/blender_kit.tar.gz |
Blender 4.2 Cycles rendering kit used for every figure (warm studio backdrop, part palettes, registered multi-panel framing); also on GitHub: https://github.com/AuroraRyan0301/Blender-Visualization-Skill β the tarball carries the studio-backdrop commit in case it is not pushed there yet |
Environment notes
- Python 3.10, PyTorch matching your CUDA driver (cu126 wheels for driver 570).
pip install 'mpmath<1.4'(sympy/torch import breaks on 1.4).- O-Voxel is field-free: meshes are voxelized as-is after rigid normalization only β never remesh or watertight-repair inputs.
Inference
python trellis2_part/scripts/infer_e2e_dual.py \
--obj_list LIST.txt --out_dir OUT \
--p1_ckpt ckpts/stage1_layout_sepocc_100k.pt --p1_variant separate --p1_per_stream_io \
--p2_ckpt ckpts/stage2_slat_orig_100k.pt \
--shape_dec_ckpt ckpts/shape_dec_next_dc_f16c32_fp16.pt \
--renders_root RENDERS --cond_subdir renders_cond_pbr
Evaluation
scripts/eval_parts_full.py computes CD/F1 at whole-object and part level with
the 48 signed-axis-permutation alignment oracle; scripts/eval_parts_hungarian.py
adds the one-to-one Hungarian detection metric (cost = βΞcentroidββ + CD in the
normalized unit cube; a match counts at part CD < Ο).
- Downloads last month
- -