MCPcopy Index your code
hub / github.com/Yukun-Huang/DreamCube

github.com/Yukun-Huang/DreamCube @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
352 symbols 1,130 edges 74 files 111 documented · 32%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

DreamCube: 3D Panorama Generation via Multi-plane Synchronization

Project Page Paper Model Video

We propose Multi-plane Synchronization to adapt 2D diffusion models for multi-plane panoramic representations (i.e., cubemaps), which facilitates different tasks including RGB-D panorama generation, panorama depth estimation, and 3D scene generation.

Based on this design, we further introduce DreamCube, a diffusion-based framework for RGB-D cubemap generation from single-view inputs.

📢 News

⚙️ Setup

Please follow the instructions below to get the code and install dependencies.

Clone the repo:

git clone https://github.com/Yukun-Huang/DreamCube.git
cd DreamCube

Create a conda environment:

conda create -n dreamcube python=3.11
conda activate dreamcube

Install dependencies:

pip install -r requirements.txt

Please feel free to open an issue if you encounter installation problems.

💃🏻 Multi-plane Synchronization

If you are only interested in Multi-plane Synchronization, we provide a Jupyter notebook multi_plane_sync.ipynb for quickly trying Multi-plane Synchronization on pre-trained diffusion models like SD2, SDXL, and Marigold.

The code implementation is very simple. The key lines are as follows:

pipe = StableDiffusionPipeline.from_pretrained(...)
apply_custom_processors_for_unet(pipe.unet, enable_sync_self_attn=True, enable_sync_cross_attn=False, enable_sync_conv2d=True, enable_sync_gn=True)
apply_custom_processors_for_vae(pipe.vae, enable_sync_attn=True, enable_sync_gn=True, enable_sync_conv2d=True)

More implementations (SANA, Lotus, and VideoCrafter 2) can be found in notebooks/.

🕺 DreamCube - Inference

We provide inference scripts for generating RGB-D cubemaps and 3D scenes (both mesh and 3dgs) from single-view inputs. The trained model weights are automatically downloaded from HuggingFace.

- Using the Gradio Interface

bash app.py --use-gradio

It takes about 20 seconds to produce RGB-D cubemap, RGB-D equirectangular panorama, and corresponding 3D scenes (both mesh and 3dgs) on a Nvidia L40S GPU.

- Using the Command Line

bash app.py

The results will be saved to ./outputs.

👏 Acknowledgement

This repository is based on many amazing research works and open-source projects: CubeDiff, CubeGAN, PanFusion, MVDiffusion, PanoDiffusion, WorldGen, etc. Thanks all the authors for their selfless contributions to the community!

😉 Citation

If you find this repository helpful for your work, please consider citing it as follows:

@inproceedings{dreamcube,
    title     = {{DreamCube: RGB-D Panorama Generation via Multi-plane Synchronization}},
    author    = {Huang, Yukun and Zhou, Yanning and Wang, Jianan and Huang, Kaiyi and Liu, Xihui},
    booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
    month     = {October},
    year      = {2025},
    pages     = {24922-24932}
}

@article{dreamcube_arxiv,
  title={{DreamCube: 3D Panorama Generation via Multi-plane Synchronization}},
  author={Huang, Yukun and Zhou, Yanning and Wang, Jianan and Huang, Kaiyi and Liu, Xihui},
  year={2025},
  eprint={arXiv preprint arXiv:2506.17206},
  archivePrefix={arXiv},
  primaryClass={cs.CV},
}

Core symbols most depended-on inside this repo

safe_setattr
called by 36
models/multiplane_sync/utils.py
vid
called by 24
utils/pano_to_3d.py
flip
called by 19
utils/cube.py
adaptive_convolution
called by 12
models/multiplane_sync/sync_conv2d.py
save
called by 10
utils/cube.py
cube_all2all
called by 8
utils/cube.py
get_device
called by 8
external/equilib/torch_utils/func.py
normalize
called by 7
utils/depth.py

Shape

Function 244
Method 87
Class 21

Languages

Python99%
C++1%

Modules by API surface

utils/depth.py30 symbols
utils/cube.py24 symbols
utils/ops/misc.py17 symbols
external/py360convert/utils.py17 symbols
models/multiplane_sync_legacy.py16 symbols
utils/video.py14 symbols
utils/ops/grid_sample_gradfix.py14 symbols
utils/pano_to_3d.py13 symbols
utils/equi.py12 symbols
models/multiplane_sync/sync_conv2d.py11 symbols
models/dreamcube.py11 symbols
utils/camera.py9 symbols

For agents

$ claude mcp add DreamCube \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact