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
File size: 4,300 Bytes
34c4075 4638fcc 3b9c0ef 4638fcc 3b9c0ef 4638fcc 3b9c0ef 4638fcc 3b9c0ef 4638fcc 3b9c0ef 4638fcc 3b9c0ef 4638fcc | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | ---
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},
}
``` |