SPAR3Dをローカルで動かす
基本情報
画像1枚から3Dモデルを生成する技術です。
Stable Pointなんとかかんとか……とりあえずStability-AIの3Dのやつで、プロジェクトページはここ。
生成を試してみるだけなら、ここから「Demo」のページに飛べばOKです。
で、Stable Fast 3Dがベースになってるらしく生成がめっちゃ速いです。
「VRAM 8GBではちょっと厳しいけど最悪CPUだけでも十分速いよ」という事前情報を得ていたので「まぁ無駄にはならんやろ」という軽い気持ちでやってみたら、色々ミスって一晩かかっちゃいました。
せっかくなので失敗談も交えて記事にしておきます。
セットアップ
Linux環境が良いらしいんだけど今回はWindows環境です。
グラボはRTX-3060の12GBモデル、要は普通のゲーミングPCですね。
事前に必要なもの
gitとCUDAと新しすぎないPythonです。
特にPython、はじめ3.13で試したんだけど駄目っぽくて3.12.8にしました。
あとはC++のビルド環境をここから。
(うちは元々Visual Studio入れてたから不要だったけど)
CUDAかVisual Studioか、どっちかが古いと(想定してるバージョンがサポート外だと)ビルドこけます。まず、ここで何度か手戻りしました(涙)
仮想環境をつくる
適当な場所に環境を作ります。
python -m venv .venv
あ、でもPythonを複数入れてるひとはバージョン指定しといた方が良いですね。ここでも何度か手戻り(涙)
py -3.12 -m venv .venv
で、その環境に入ってpipをアップデートしておく、と。
.venv\Scripts\activate.bat
python -m pip install --upgrade pip
PyTorchを入れる
ここから自分の環境に合うやつを選んで入れます。
CPUで回す人は、ここでCPUを選んでね。
pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu126
ビルドの準備
ここからソースコードをクローンしてくる。
git clone https://github.com/Stability-AI/stable-point-aware-3d
で、そこに書いてある通りにビルドの準備。
pip install -U setuptools==69.5.1
pip install wheel
setuptoolsは、新しすぎると確かにコケました。(ここでも失敗済み)
ライブラリのビルド
あとは、依存してるライブラリをインストール!
cd stable-point-aware-3d
pip install -r requirements.txt
pip install -r requirements-remesh.txt
なのだけど、ここで各種ライブラリのC++ビルドが走るので事前のセットアップをミスってるとコケるコケる……だいたい原因はCUDAのバージョンと文字コード系かな。(Windowsでは特に)
うちがやった対応
set PYTHONUTF8=
これは、普通は必要ない対応。Pythonを強制的にUTF-8で動かすオプションなんだけど、うちではそれを環境変数で有効にしちゃってるから、オフにしないとビルドがコケる。(おそらくファイルパス周りの処理)
set CUDA_HOME=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.6
CUDA_HOMEを明示的に設定。
CUDAを最新にしてる筈なのにビルド時に参照されるパスが古くてね……
(あとで環境変数をチェックせねば)
pip install gpytoolbox pynanoinstantmeshes==0.0.3
gpytoolboxをバージョン指定なしで入れます。
どうやらrequirements-remesh.txtで指定されてるバージョンが古いらしく……
requirements-remesh.txtを弄っちゃうのもアリかと。
モデルの取得と生成の実行
ここは手抜きです(笑)
ソースコードの説明ではHugging Faceへのアクセスを準備しとけって言われるんだけど(要はgitとかcliの紐づけ)面倒なのでここから直接モデルをダウンロードして直置きします。
(ちゃんとやればモデルは自動でダウンロードされるんだけど……)
あとは、このコマンドで3Dモデルが生成される筈です。
python run.py demo_files/examples/fish.png --output-dir output/
デモを動かす
必要なライブラリ(gradioとか)をインストールして……
pip install -r requirements-demo.txt
実行します。
python gradio_app.py
画面に表示されたアドレスをブラウザで開くと色々遊べます。
はい、楽しい。