はじめに
今まで画像生成や動画生成は試してきましたが3Dオブジェクト生成は今回が初めてです。「Stable-Dreamfusion」というのを使わせて頂きました。環境
Ubuntu 22.04 on WSL2 CUDA 11.8 Python 3.10
導入
pip install torch==2.0.1+cu118 torchvision==0.15.2+cu118 --index-url https://download.pytorch.org/whl/cu118 git clone https://github.com/ashawkey/stable-dreamfusion cd stable-dreamfusion pip install -r requirements.txt
実行
さっそく実行してみましょう。実行は2段階になっているようです。- 低解像度の3Dオブジェクトを作成する
- 「DMTet」というのを使って高解像度化する
今回はBlenderに取り込める3Dオブジェクトファイル(拡張子obj)を作るところまでやります。
低解像度の3Dオブジェクトを作成する
python main.py --text "a hamburger" --workspace trial -O --vram_O --w 64 --h 64
オプション
この時点での3Dオブジェクトファイル(拡張子obj)を作りたければ以下を実行。必ずしも必要ありません。
python main.py --workspace trial -O --save_mesh
「DMTet」を使って高解像度化する
python main.py -O --text "a hamburger" --workspace trial_dmtet --dmtet --iters 5000 --init_with trial/checkpoints/df.pth python main.py -O --text "a hamburger" --workspace trial_dmtet --dmtet --iters 5000 --save_mesh
結果
「DMTet」を使った高解像度化前後の動画です。左は前、右が後です。
以下はBlenderで読み込んだところです。これ3Dなんです。
上のように表示させるには「3Dビューのシェーディング」を「マテリアルプレビュー」に設定する必要があります。