PyTorch Implementation of Controllable 3D Controllable 3D object Generation with Single Image Prompt. Code is built upon Magic123.
teaser.1.mp4
conda create -n ControlIP python=3.10 -y
conda activate ControlIP
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118
pip install -r requirements.txt
# if you encounter error(libio_e57.so), please install
conda install -y libffi==3.3-
Zero-1-to-3 for 3D diffusion prior. We use
105000.ckptby default, reimplementation borrowed from Stable Diffusion repo, and is available inguidance/zero123_utils.py.cd pretrained/zero123 wget https://huggingface.co/cvlab/zero123-weights/resolve/main/105000.ckpt cd ../../
-
MiDaS for depth estimation. We use
dpt_beit_large_512.pt. Put it in folderpretrained/midas/mkdir -p pretrained/midas cd pretrained/midas wget https://github.com/isl-org/MiDaS/releases/download/v3_1/dpt_beit_large_512.pt cd ../../
-
IP-Adapter for encoding image prompt. We use
ip-adapter_sd15.binby default. You can also use plus model. Put it in folderguidance/adapter/modelscd guidance/adapter/models/ wget https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter_sd15.bin mkdir image_encoder cd image_encoder wget https://huggingface.co/h94/IP-Adapter/resolve/main/models/image_encoder/pytorch_model.bin cd ../../../../
python preprocess_image.py --path /path/to/image
```
export DATA_DIR='data/realfusion15'
export IMAGE_NAME='rgba.png'
export FILENAME=$(basename $DATA_DIR)
export dataset=$(basename $(dirname $DATA_DIR))
CUDA_VISIBLE_DEVICES=0 python main.py -O \
--text "" \
--sd_version 1.5 \
--image "${DATA_DIR}/${i}/${IMAGE_NAME}" \
--workspace "out/ours/${i}_coarse" \
--optim adam \
--iters 5000 \
--guidance SD zero123 \
--lambda_guidance 1.0 40\
--guidance_scale 100 5\
--latent_iter_ratio 0 \
--normal_iter_ratio 0.2 \
--t_range 0.2 0.6 \
--bg_radius -1 \
--iters_SD 15 \
--control \
--att_scale 1.0 \
--save_mesh
```
```
CUDA_VISIBLE_DEVICES=0 python main.py -O \
--text "" \
--sd_version 1.5 \
--image ${DATA_DIR}/${i}/${IMAGE_NAME} \
--workspace out/depth_anneal_ablation/${j}_${i}_fine \
--dmtet --init_ckpt out/depth_anneal_ablation/${j}_${i}_coarse/checkpoints/${j}_${i}_coarse.pth \
--optim adam \
--iters 5000 \
--known_view_interval 4 \
--latent_iter_ratio 0 \
--guidance SD zero123\
--lambda_guidance 1e-3 0.01\
--guidance_scale 100 5\
--control \
--rm_edge \
--iters_SD 0 \
--bg_radius -1 \
--att_scale 0.5 \
--save_mesh
```
```bash
bash ours.sh
```
```bash
bash GSO.sh
```
```bash
bash co3d.sh
```
```bash
bash anneal_ablation.sh
```