Views
No views yet
| Subfolder | Conditioning | Encoder | Training steps |
|---|---|---|---|
mv/ | Multi-view images (4 views) | DINOv2-base | 520K |
text/ | Text descriptions | CLIP ViT-B/32 | 210K |
Full inference pipeline (LDR tokenizer, multi-view rendering, LDR → GLB conversion) lives in the GitHub repository. The snippets below show only how to load the weights.
1git clone https://github.com/VAST-AI-Research/LegoACE.git
2cd LegoACE
3pip install -e .1from model.llama_image_condition import ImageConditionModel
2
3model = ImageConditionModel.from_pretrained("VAST-AI/LegoACE", subfolder="mv").to("cuda")dataset/MVNpzDataset.py loader and Blender-based
GLB export is documented in the GitHub README:1python inference/inference_multi_view.py \
2 --ckpt_dir VAST-AI/LegoACE \
3 --dataset_name <your_dataset> \
4 --dataset_class dataset.MVNpzDataset.MVNpzDataset \
5 --save_dir ./outputs/inference \
6 --save_name mv-demo \
7 --infer_number 100 --batch_size 4 --repeat 4 --dataset_split val1from model.llama_text_condition import TextConditionModel
2
3model = TextConditionModel.from_pretrained("VAST-AI/LegoACE", subfolder="text").to("cuda")1python inference/inference_text_condition.py \
2 --ckpt_dir VAST-AI/LegoACE \
3 --dataset_name <your_dataset> \
4 --save_dir ./outputs/inference --save_name text-demo \
5 --prompts "A red sports car" "A modern brick bed" "A bridge over a river"(x, y, z, rotation_id, brick_type_id).
The full pipeline converts those token sequences into:utils/brick_ids.py.*_dat_dict.json,
*_rot_dict.json) that ship with the dataset, not with these weights.1@inproceedings{xu2025legoace,
2 author = {Hao Xu and Yuqing Zhang and Yiqian Wu and Xinyang Zheng and
3 Yutao Liu and Xiangjun Tang and Yunhan Yang and Ding Liang and
4 Yingtian Liu and Yuanchen Guo and Yanpei Cao and Xiaogang Jin},
5 title = {LegoACE: Autoregressive Construction Engine for Expressive LEGO{\textregistered}
6 Assemblies},
7 booktitle = {Proceedings of the {SIGGRAPH} Asia 2025 Conference Papers},
8 publisher = {{ACM}},
9 year = {2025},
10 pages = {40:1--40:11},
11 doi = {10.1145/3757377.3763881},
12 url = {https://doi.org/10.1145/3757377.3763881}
13}