[3DV 2026] SpatialGen: Layout-guided 3D Indoor Scene Generation
413
stars
31
commits
Python
primary language
Apr 18, 2026
updated
Chuan Fang, Heng Li, Yixun Liang, Jia Zheng, Yongsen Mao, Yuan Liu, Rui Tang, Zihan Zhou, Ping Tan
HKUST Spatial Artificial Intelligence Lab; Manycore Tech Inc
| Image-to-Scene Results | Text-to-Scene Results |
|---|---|
![]() | ![]() |
TL;DR: Given a 3D semantic layout, SpatialGen can generate a 3D indoor scene conditioned on either a reference image (left) or a textual description (right) using a multi-view, multi-modal diffusion model.
| Model | Download |
|---|---|
| SpatialGen-1.0 | π€ HuggingFace |
| FLUX.1-Wireframe-dev-lora | π€ HuggingFace |
Tested with the following environment:
# clone the repository
git clone --recursive https://github.com/manycore-research/SpatialGen.git
cd SpatialGen
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pip install src/recons/Sparse-RaDeGS/submodules/diff-gaussian-rasterization
# Optional: fix the [flux inference bug](https://github.com/vllm-project/vllm/issues/4392)
pip install nvidia-cublas-cu12==12.4.5.8
We provide SpatialGen-Testset with 48 rooms, which labeled with 3D layout and 4.8K rendered images (48 x 100 views, including RGB, normal, depth maps and semantic maps) for MVD inference.
# download the pretrain weights
huggingface-cli download --resume-download manycore-research/SpatialGen-1.0 --local-dir spatialgen_ckpts
# Single image-to-3D Scene
bash scripts/infer_spatialgen_i2s.sh
# Text-to-image-to-3D Scene
# step 1. prepare controlnet conditional images, save to /path/to/your/spatialgen-testset/scene_xxxx/condition
python3 preprocess/prepare_flux_ctrlnet_conditions.py --dataset_dir /path/to/your/spatialgen-testset
# step 2. run spatialgen text2scene
# in captions/spatialgen_testset_captions.jsonl, we provide text prompts of different styles for each room,
# choose a pair of scene_id and prompt to run the text2scene experiment
bash scripts/infer_spatialgen_t2s.sh
# TODO: preprocess the dataset
# run SCM_VAE training
bash scripts/train_scm_vae.sh
# run multi-view diffusion training
bash scripts/train_spatialgen_mvd.sh
SpatialGen-1.0 is derived from Stable-Diffusion-v2.1, which is licensed under the CreativeML Open RAIL++-M License. FLUX.1-Wireframe-dev-lora is licensed under the FLUX.1-dev Non-Commercial License.
@inproceedings{SpatialGen,
title = {SpatialGen: Layout-guided 3D Indoor Scene Generation},
author = {Fang, Chuan and Li, Heng and Liang, Yixu and Zheng, Jia and Mao, Yongsen and Liu, Yuan and Tang, Rui and Zhou, Zihan and Tan, Ping},
booktitle = {International Conference on 3D Vision},
year = {2026}
}
We would like to thank the following projects that made this work possible:
27 commits
4 commits
Python
99.3%
[3DV 2026] SpatialGen: Layout-guided 3D Indoor Scene Generation
413
stars
31
commits
Python
primary language
Apr 18, 2026
updated
Chuan Fang, Heng Li, Yixun Liang, Jia Zheng, Yongsen Mao, Yuan Liu, Rui Tang, Zihan Zhou, Ping Tan
HKUST Spatial Artificial Intelligence Lab; Manycore Tech Inc
| Image-to-Scene Results | Text-to-Scene Results |
|---|---|
![]() | ![]() |
TL;DR: Given a 3D semantic layout, SpatialGen can generate a 3D indoor scene conditioned on either a reference image (left) or a textual description (right) using a multi-view, multi-modal diffusion model.
| Model | Download |
|---|---|
| SpatialGen-1.0 | π€ HuggingFace |
| FLUX.1-Wireframe-dev-lora | π€ HuggingFace |
Tested with the following environment:
# clone the repository
git clone --recursive https://github.com/manycore-research/SpatialGen.git
cd SpatialGen
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pip install src/recons/Sparse-RaDeGS/submodules/diff-gaussian-rasterization
# Optional: fix the [flux inference bug](https://github.com/vllm-project/vllm/issues/4392)
pip install nvidia-cublas-cu12==12.4.5.8
We provide SpatialGen-Testset with 48 rooms, which labeled with 3D layout and 4.8K rendered images (48 x 100 views, including RGB, normal, depth maps and semantic maps) for MVD inference.
# download the pretrain weights
huggingface-cli download --resume-download manycore-research/SpatialGen-1.0 --local-dir spatialgen_ckpts
# Single image-to-3D Scene
bash scripts/infer_spatialgen_i2s.sh
# Text-to-image-to-3D Scene
# step 1. prepare controlnet conditional images, save to /path/to/your/spatialgen-testset/scene_xxxx/condition
python3 preprocess/prepare_flux_ctrlnet_conditions.py --dataset_dir /path/to/your/spatialgen-testset
# step 2. run spatialgen text2scene
# in captions/spatialgen_testset_captions.jsonl, we provide text prompts of different styles for each room,
# choose a pair of scene_id and prompt to run the text2scene experiment
bash scripts/infer_spatialgen_t2s.sh
# TODO: preprocess the dataset
# run SCM_VAE training
bash scripts/train_scm_vae.sh
# run multi-view diffusion training
bash scripts/train_spatialgen_mvd.sh
SpatialGen-1.0 is derived from Stable-Diffusion-v2.1, which is licensed under the CreativeML Open RAIL++-M License. FLUX.1-Wireframe-dev-lora is licensed under the FLUX.1-dev Non-Commercial License.
@inproceedings{SpatialGen,
title = {SpatialGen: Layout-guided 3D Indoor Scene Generation},
author = {Fang, Chuan and Li, Heng and Liang, Yixu and Zheng, Jia and Mao, Yongsen and Liu, Yuan and Tang, Rui and Zhou, Zihan and Tan, Ping},
booktitle = {International Conference on 3D Vision},
year = {2026}
}
We would like to thank the following projects that made this work possible:
27 commits
4 commits
Python
99.3%