dvd / README.md
Zhengrui's picture
Add model card
bfc4d68 verified
|
Raw
History Blame Contribute Delete
3.11 kB
---
license: mit
library_name: pytorch
tags:
- 3d-generation
- voxel-generation
- 3d-editing
- diffusion
- image-to-3d
- text-to-3d
- trellis
pipeline_tag: image-to-3d
---
# DVD: Discrete Voxel Diffusion for 3D Generation and Editing
This repository hosts the pretrained DVD checkpoints for **Discrete Voxel Diffusion for 3D Generation and Editing**.
DVD is a discrete diffusion pipeline that generates or edits a pure `64^3` voxel grid. The voxel output can be used directly, exported as a cubified voxel mesh, or passed as the sparse-structure anchor for [TRELLIS](https://github.com/microsoft/TRELLIS) stage 2 to produce final mesh and 3D Gaussian assets.
- Paper: [arXiv:2605.07971](https://arxiv.org/abs/2605.07971)
- Spaces: [DVD Image](https://huggingface.co/spaces/Zhengrui/dvd-image), [DVD Text](https://huggingface.co/spaces/Zhengrui/dvd-text)
## Checkpoints
| Variant | Files | Use case |
| --- | --- | --- |
| Image generation | `dvd_img.json`, `dvd_img.safetensors` | image-conditioned voxel generation |
| Image editing | `dvd_img_BSP_ft.json`, `dvd_img_BSP_ft.safetensors` | image-conditioned voxel editing |
| Text generation | `dvd_text.json`, `dvd_text.safetensors` | text-conditioned voxel generation |
| Text editing | `dvd_text_BSP_ft.json`, `dvd_text_BSP_ft.safetensors` | text-conditioned voxel editing |
## Minimal Usage
```python
from dvd import DVDImageToVoxelPipeline, DVDTextToVoxelPipeline
repo_id = "Zhengrui/dvd"
image_dvd = DVDImageToVoxelPipeline.from_pretrained(repo_id, variant="base", device="cuda")
image_edit_dvd = DVDImageToVoxelPipeline.from_pretrained(repo_id, variant="bsp", device="cuda")
text_dvd = DVDTextToVoxelPipeline.from_pretrained(repo_id, variant="base", device="cuda")
text_edit_dvd = DVDTextToVoxelPipeline.from_pretrained(repo_id, variant="bsp", device="cuda")
```
Example image-conditioned generation:
```python
from PIL import Image
from dvd import DVDImageToVoxelPipeline, export_cubified_voxels
image = Image.open("assets/example_image/T.png")
dvd = DVDImageToVoxelPipeline.from_pretrained("Zhengrui/dvd", variant="base", device="cuda")
voxels = dvd.sample_voxels(image, seed=42, steps=256)
export_cubified_voxels(voxels, "dvd_voxels.glb")
```
## Voxel Convention
DVD stores voxel outputs as:
```text
samples: [B, D, H, W]
coords: [N, 4] as [batch, x, y, z]
```
Saved `.npy` coordinate files usually omit the batch dimension and can be loaded back with `as_voxel_output(coords, resolution=64)`.
## Notes
These files are the DVD voxel-stage checkpoints. TRELLIS stage-2 checkpoints are loaded separately from the official TRELLIS model repositories, such as `microsoft/TRELLIS-image-large` and `microsoft/TRELLIS-text-large`.
## Citation
```bibtex
@misc{xiang2026dvddiscretevoxeldiffusion,
title={DVD: Discrete Voxel Diffusion for 3D Generation and Editing},
author={Zhengrui Xiang and Jiaqi Wu and Fupeng Sun and Heliang Zheng and Yingzhen Li},
year={2026},
eprint={2605.07971},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2605.07971},
}
```