Scripts to perform distributed rendering of Objaverse objects in Blender across many GPUs and processes.
We have only tested the rendering scripts on Ubuntu machines that have NVIDIA GPUs.
If you run into any issues, please open an issue! :)
- Install Blender
wget https://download.blender.org/release/Blender3.2/blender-3.2.2-linux-x64.tar.xz
tar -xf blender-3.2.2-linux-x64.tar.xz
rm blender-3.2.2-linux-x64.tar.xz
- Update certificates for Blender to download URLs
# this is needed to download urls in blender
# https://github.com/python-poetry/poetry/issues/5117#issuecomment-1058747106
sudo update-ca-certificates --fresh
export SSL_CERT_DIR=/etc/ssl/certs
- Install Python dependencies
pip install -r requirements.txt
- (Optional) If you are running rendering on a headless machine, you will need to start an xserver. To do this, run:
sudo apt-get install xserver-xorg
sudo python3 scripts/start_xserver.py start
- Download the objects:
python3 scripts/download_objaverse.py --start_i 0 --end_i 100
- Start the distributed rendering script:
python3 scripts/distributed.py \
--num_gpus <NUM_GPUs> \
--workers_per_gpu <WORKERS_PER_GPU> \
--input_models_path <INPUT_MODELS_PATH>
This will then render the images into the views
directory.
In the scripts/distributed.py
script, we use Wandb to log the rendering results. You can create a free account and then set the WANDB_API_KEY
environment variable to your API key.
We also use AWS S3 to upload the rendered images. You can create a free account and then set the AWS_ACCESS_KEY_ID
and AWS_SECRET_ACCESS_KEY
environment variables to your credentials.
Objaverse is an open-source project built by the PRIOR team at the Allen Institute for AI (AI2). AI2 is a non-profit institute with the mission to contribute to humanity through high-impact AI research and engineering.