今回は OpenAI の sample_image_to_3d を試します。
![](https://juvet-ai.com/wp-content/uploads/2023/05/shape-e4.gif)
![](https://juvet-ai.com/wp-content/uploads/2023/05/shape-e3.gif)
3Dデザインやコンピューターグラフィックスというと、難しそうに聞こえるかもしれません。
しかし、その世界は OpenAIの新たなツール「Shap-E」によって、驚くべき進化を遂げています。
Shap-Eは、3Dの物体や風景をデジタルで作り出す新たな方法を提供します。
何がすごいのかというと、ある物体の「形」を多くの異なる視点から表示できる点です。
既存のツールで作成された3Dモデルは、限られた視点の提供しかできなかったのに対し、
Shap-E は、まるで本物のように見える3Dモデルを作ることが可能になります。
もちろんまだまだ実運用には耐えられないにしても、
導入は非常に簡単なので簡単なデモを作成したり、初期形状としての使用用途が考えられます。
必要な入力情報は画像のみです。
この記事では、Shap-Eの導入を解説します。
Colabですぐに実行できるノートブックはこちら。
GitHub - 0223juvet/shap-e_image_to_3d: Demo of Shap-E image_to_3d
Demo of Shap-E image_to_3d. Contribute to 0223juvet/shap-e_image_to_3d development by creating an account on GitHub.
からノートブックを開いてセルを順に実行するだけです。
途中のセルで画像のパスを指定する箇所があるので、そこは適宜ご調整ください。
以下は使用するコードについての簡単な説明です。
- モジュールのインポート:
torch
: PyTorchというディープラーニングフレームワーク。sample_latents
: shap-eパッケージの関数で、モデルから潜在ベクトルをサンプリング。diffusion_from_config
: 設定から拡散プロセスを生成する関数。load_model
,load_config
: モデルと設定をロードする関数。create_pan_cameras
,decode_latent_images
,gif_widget
: カメラの作成、潜在画像をデコード、GIF表示などの関数。load_image
: 画像を読み込む関数。
- デバイスの設定:
torch.device('cuda' if torch.cuda.is_available() else 'cpu')
:
利用可能な場合はGPUを使い、そうでなければCPUを使います。
これは制御フロー文といって、ここではif文による条件分岐が行われています。
- モデルと拡散プロセスのロード:
- モデルと拡散プロセスの設定をロードし、モデルと拡散プロセスを作成します。
- 潜在ベクトルのサンプリング:
- 指定された画像を使い、モデルから潜在ベクトルをサンプリングします。
- 潜在ベクトルのデコードと表示:
- 作成したカメラを使用して、各潜在ベクトルをデコードし、それらを画像として表示します。デコードとは潜在ベクトルから3Dオブジェクトを生成するプロセスを指します。
導入に関しては以上です。
出力されたファイルをBlenderで開けば、下図のようにその3Dオブジェクトを編集できます。
![](https://juvet-ai.com/wp-content/uploads/2023/05/juvet_sample.png)
Blenderの操作方法などは以前解説した通りです。
![](https://juvet-ai.com/wp-content/uploads/2023/03/blender_14-160x90.png)
Blender導入
今回は話題のControlNetを Blender 内で実行できるように、ソフトの起動方法を簡単に解説します。Blenderは3DCGの統合型ソフトで、無料で使用できます。Blender の基本ライセンスは GNU GPL Ver...
このように Python を使うことで、
オープンソースとして提供されているコードの概要を読み解くことができるようになります。
こちらでは Python の基本をゼロから解説していますので、もしよろしければ覗いてみて下さい。
※ブラウザ上でPythonプログラミングを実践しながら学べます。
SNSのフォローお願いします!
フォローしてね
コメント