Skip to content

[CVPR 2024] GaussianEditor: Swift and Controllable 3D Editing with Gaussian Splatting

License

Notifications You must be signed in to change notification settings

buaacyw/GaussianEditor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

[CVPR 2024] GaussianEditor: Swift and Controllable 3D Editing with Gaussian Splatting

Yiwen Chen*1,2, Zilong Chen*3, Chi Zhang2, Feng Wang3, Xiaofeng Yang2,
Yikai Wang3, Zhongang Cai4 Lei Yang4 Huaping Liu3 Guosheng Lin**1,2
*Equal contribution. **Corresponding author.
1S-Lab, Nanyang Technological University,
2School of Computer Science and Engineering, Nanyang Technological University,
3Department of Computer Science and Technology, Tsinghua University, 4SenseTime Research,

                       

Demo Videos

Swift and controllable 3D editing with only 2-7 minutes.
Add.a.teddy.bear.on.bench.mp4
Turn.him.into.a.clown.mp4
Delete.mp4

Release

  • [12/5] Docker support. Great thanks to jhuangBU. For windows, you can try this guide and this guide.
  • [11/29] Release segmentation confidence score scaler. You can now scale the threshold of semantic tracing masks.
  • [11/27] 🔥 We released GaussianEditor: Swift and Controllable 3D Editing with Gaussian Splatting and beta version of GaussianEditing WebUI.

Contents

Installation

Our environment has been tested on Ubuntu 22, CUDA 11.8 with 3090, A5000 and A6000.

  1. Clone our repo and create conda environment
git clone https://github.com/buaacyw/GaussianEditor.git && cd GaussianEditor

# (Option one) Install by conda
conda env create -f environment.yaml

# (Option two) You can also install by pip
# CUDA version 11.7
pip install torch==2.0.1+cu117 torchvision==0.15.2+cu117 --extra-index-url https://download.pytorch.org/whl/cu117
# CUDA version 11.8
pip install torch==2.0.1+cu118 torchvision==0.15.2+cu118 --extra-index-url https://download.pytorch.org/whl/cu118
pip install -r requirements.txt

# (Option three) If the below two options fail, please try this:
# For CUDA 11.8
bash install.sh
  1. (Optional) Install our forked viser [Required by WebUI)
mkdir extern && cd extern
git clone https://github.com/heheyas/viser 
pip install -e viser
cd ..
  1. (Optional) Download Wonder3D checkpoints [Required by Add]
sh download_wonder3d.sh

WebUI Guide

Please be aware that our WebUI is currently in a beta version. Powered by Viser, you can use our WebUI even if you are limited to remote server. For details, please follow WebUI Guide.

How to achieve better result

The demand for 3D editing is very diverse. For instance, if you only want to change textures and materials or significantly modify geometry, it's clear that a one-size-fits-all hyperparameter won't work. Therefore, we cannot provide a default hyperparameter setting that works effectively in all scenarios. Therefore, if your results do not meet expectations, please refer to our hyperparameter tuning document. In it, we detail the function of each hyperparameter and advise on which parameters to adjust when you encounter specific issues.

Command Line

We also provide a command line version of GaussianEditor. Like WebUI, you need to specify your path to the pretrained Gaussians and COLMAP outputs as mentioned in here. Please check scripts in sciprt folder. Simply change data.source to your COLMAP output directory and system.gs_source to your pretrained Gaussians and run our demo scripts.

TODO

The repo is still being under construction, thanks for your patience.

  • Tutorial for hyperparameter tuning.
  • Step-by-step tutorial for WebUI .
  • Realised WebUI beta version and GaussianEditor.

FAQ

  • Bad result for Edit. We are using InstructPix2Pix to generate edited 2D images as editing guidance. Unfortunately, InstructPix2Pix only works on limited prompts, please first try here if you are not sure whether your text prompts work.
  • Bad result for Add. We use ControlNet-Inpainting to first generate 2D inpainting and then transfer it into 3D. Also it doesn't work for bad prompts. Please try to enlarge your inpainting mask and try more seeds.
  • Bad result for Segmentation. Try scale the segmentation threshold, which changes the confidence score for segmentation.
  • Missing weights for DPT. Please read this issue

Acknowledgement

Our code is based on these wonderful repos: