🔖

Blender で機械学習環境をセットアップするメモ

2024/05/05に公開

背景

機械学習関連の処理をして Blender とつなぎたい(処理結果を Blender で可視化とか)
Blender 単体では pytorch とか入ってない.
なるべくお手軽 + Linux と Windows で手順を統一したい.

方法

  1. conda とかで環境作って Blender の python 環境に上書き(bpy 削除)
  1. Blender 環境で pip でパッケージ入れる
  2. RPC とかで Blender の Python 環境と, 別途の Python 環境でうまく通信する.

とりあえずは Blender のローカルインストール(zip) + 2. で pip でパッケージ入れて環境構築が楽でしょう.
再現性高めるなら requirements.txt を用意して.

Windows の例

エクスプローラーで Blender の python.exe がある場所へ行き(e.g. D:\local\blender-4.1.1-windows-x64\blender-4.1.1-windows-x64\4.1\python\bin), cmd で pip 実行で OK

> python.exe -m pip install pytorch

さらなる高みへ

rpyc で Python でそこそこお手軽にリモートで Python 動かしたり分散処理するメモ
https://qiita.com/syoyo/items/4cd649fefaa8567bb4ae

https://ciesie.com/post/blender_python_rpc/

で, RPC で処理させるのがよいでしょうか...
(より汎用的にするには, 小規模シーンデータであれば bpy.data を毎回転送させてもいけるか?. もしくはソースコードを転送させて, Blender python 側で eval させるとか)

失敗: Streamlit 連携

Blender の Python console から

import streamlit.web.cli as stcli
import sys

sys.argv=["streamlit", "run", "main.py", "--global.developmentMode=false"]
sys.exit(stcli.main())

で streamlit は動きますが, しかし Blender 側に制御が戻らないので Blender がフリーズしてしまいます.

Discussion