Image-to-3D
PEFT
Safetensors
3D-reconstruction
test-time-adaptation
self-supervised-learning
depth-estimation
3d-vision
Instructions to use PeterDAI/Free-Geometry with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use PeterDAI/Free-Geometry with PEFT:
Task type is invalid.
- Notebooks
- Google Colab
- Kaggle
| datasets: | |
| - depth-anything/DA3-BENCH | |
| base_model: | |
| - zoooooooyuan/VGGT-1B | |
| - depth-anything/DA3-GIANT-1.1 | |
| pipeline_tag: image-to-3d | |
| library_name: peft | |
| tags: | |
| - 3D-reconstruction | |
| - test-time-adaptation | |
| - self-supervised-learning | |
| - depth-estimation | |
| - 3d-vision | |
| - peft | |
| <div align="center"> | |
| <h1 style="text-align:center;"> | |
| Free Geometry: Refining 3D Reconstruction from Longer Versions of Itself | |
| </h1> | |
| _Test-time self-evolution for feed-forward 3D reconstruction without 3D ground truth_ | |
| <p align="center"> | |
| <a href="https://arxiv.org/abs/2604.14048" target="_blank"> | |
| <img alt="Paper" src="https://img.shields.io/badge/arXiv-2604.14048-red?logo=arxiv" height="20" /> | |
| </a> | |
| <a href="https://github.com/hiteacherIamhumble/Free-Geometry" target="_blank"> | |
| <img alt="Code" src="https://img.shields.io/badge/GitHub-Free--Geometry-181717?logo=github" height="20" /> | |
| </a> | |
| <a href="https://huggingface.co/PeterDAI/Free-Geometry" target="_blank"> | |
| <img alt="Model Weights" src="https://img.shields.io/badge/HuggingFace-Model_Weights-yellow?logo=huggingface" height="20" /> | |
| </a> | |
| <a href="./LICENSE" target="_blank"> | |
| <img alt="License" src="https://img.shields.io/badge/License-CC_BY_4.0-lightgrey.svg" height="20" /> | |
| </a> | |
| </p> | |
| </div> | |
| # Model Description | |
| This repository provides a **LoRA / PEFT adapter** for **Free-Geometry** fine-tuning on top of a pretrained base model (VGGT and DepthAnything3). | |
| This is **not** a full standalone model checkpoint. The repository only contains the adapter weights and configuration needed to apply the fine-tuned update to the original base model. | |
| Use this adapter if you want the Free-Geo fine-tuned behavior while keeping the original base model separate. | |
| # What Is In This Repository? | |
| This repository is expected to contain: | |
| - `adapter_config.json` | |
| - `adapter_model.safetensors` | |
| - `README.md` | |
| These files define the PEFT adapter and tell PEFT how to attach the LoRA weights to the base model. | |
| # Base Model | |
| This adapter was trained on top of: | |
| - [zoooooooyuan/VGGT-1B](https://huggingface.co/zoooooooyuan/VGGT-1B) | |
| - [depth-anything/DA3-GIANT-1.1](https://huggingface.co/depth-anything/DA3-GIANT-1.1) | |
| # Training Setup | |
| This adapter corresponds to: | |
| - Backbone: `DA3` or `VGGT` | |
| - Method: `Free-Geo` | |
| - Dataset: `eth3d`, `7scenes`, `hiroom`, or `scannetpp` (all come from [depth-anything/DA3-BENCH](https://huggingface.co/depth-anything/DA3-BENCH) | |
| ## Inference With PEFT | |
| This repository contains PEFT/LoRA adapter weights. The adapters are not standalone models, so first load the DA3 base model, then attach one adapter from this repo. | |
| Example using the DA3 + Free-Geo HiRoom adapter: | |
| ```python | |
| import torch | |
| from peft import PeftModel | |
| from depth_anything_3.api import DepthAnything3 | |
| base_model_id = "depth-anything/DA3-GIANT-1.1" | |
| adapter_repo_id = "PeterDAI/Free-Geometry" | |
| adapter_subfolder = "DA3+Free-Geo/hiroom" | |
| device = torch.device("cuda" if torch.cuda.is_available() else "cpu") | |
| model = DepthAnything3.from_pretrained(base_model_id).to(device) | |
| model.model.backbone.pretrained = PeftModel.from_pretrained( | |
| model.model.backbone.pretrained, | |
| adapter_repo_id, | |
| subfolder=adapter_subfolder, | |
| is_trainable=False, | |
| ) | |
| model.eval() | |
| prediction = model.inference( | |
| ["image1.jpg", "image2.jpg"], | |
| export_dir="output/da3_free_geometry_hiroom", | |
| export_format="mini_npz", | |
| ) | |
| print(prediction.depth.shape) | |
| ``` | |
| To use another adapter from this repo, keep adapter_repo_id the same and change only adapter_subfolder, for example: | |
| ```adapter_subfolder = "DA3+Free-Geo/eth3d"``` | |
| # Repository Variants | |
| Free Geometry is designed for test-time adaptation, so you can find different model variants for each datasets. | |
| - `DA3-Free-Geo-eth3d` | |
| - `DA3-Free-Geo-7scenes` | |
| - `DA3-Free-Geo-hiroom` | |
| - `DA3-Free-Geo-scannetpp` | |
| - `VGGT-Free-Geo-eth3d` | |
| - `VGGT-Free-Geo-7scenes` | |
| - `VGGT-Free-Geo-hiroom` | |
| - `VGGT-Free-Geo-scannetpp` | |
| # Citation | |
| If you use this model, please cite the corresponding project or paper: | |
| ```bibtex | |
| @misc{dai2026freegeometryrefining3d, | |
| title={Free Geometry: Refining 3D Reconstruction from Longer Versions of Itself}, | |
| author={Yuhang Dai and Xingyi Yang}, | |
| year={2026}, | |
| eprint={2604.14048}, | |
| archivePrefix={arXiv}, | |
| primaryClass={cs.CV}, | |
| url={https://arxiv.org/abs/2604.14048}, | |
| } | |
| ``` |