初心者向け:3Dデザインの新たな可能性、OpenAIのShap-Eを試す

AIトレンド

今回は OpenAI の sample_image_to_3d を試します。

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.


Open In Colab

からノートブックを開いてセルを順に実行するだけです。
途中のセルで画像のパスを指定する箇所があるので、そこは適宜ご調整ください。


以下は使用するコードについての簡単な説明です。

  1. モジュールのインポート:
    • torch: PyTorchというディープラーニングフレームワーク。
    • sample_latents: shap-eパッケージの関数で、モデルから潜在ベクトルをサンプリング。
    • diffusion_from_config: 設定から拡散プロセスを生成する関数。
    • load_model, load_config: モデルと設定をロードする関数。
    • create_pan_cameras, decode_latent_images, gif_widget: カメラの作成、潜在画像をデコード、GIF表示などの関数。
    • load_image: 画像を読み込む関数。
  2. デバイスの設定:
    • torch.device('cuda' if torch.cuda.is_available() else 'cpu'):
      利用可能な場合はGPUを使い、そうでなければCPUを使います。
      これは制御フロー文といって、ここではif文による条件分岐が行われています。
  3. モデルと拡散プロセスのロード:
    • モデルと拡散プロセスの設定をロードし、モデルと拡散プロセスを作成します。
  4. 潜在ベクトルのサンプリング:
    • 指定された画像を使い、モデルから潜在ベクトルをサンプリングします。
  5. 潜在ベクトルのデコードと表示:
    • 作成したカメラを使用して、各潜在ベクトルをデコードし、それらを画像として表示します。デコードとは潜在ベクトルから3Dオブジェクトを生成するプロセスを指します。


導入に関しては以上です。
出力されたファイルをBlenderで開けば、下図のようにその3Dオブジェクトを編集できます。


Blenderの操作方法などは以前解説した通りです。

Blender導入
今回は話題のControlNetを Blender 内で実行できるように、ソフトの起動方法を簡単に解説します。Blenderは3DCGの統合型ソフトで、無料で使用できます。Blender の基本ライセンスは GNU GPL Ver...


このように Python を使うことで、
オープンソースとして提供されているコードの概要を読み解くことができるようになります。

こちらでは Python の基本をゼロから解説していますので、もしよろしければ覗いてみて下さい。

※ブラウザ上でPythonプログラミングを実践しながら学べます。

SNSのフォローお願いします!
ユーザーアバター

沖縄県在住

プログラミング初学者をメインにサポート中

Python C# Javascriptが得意
Blender Unityは日々勉強

AIトレンドを追っていきたい

JUVETをフォローする
フォローしてね

コメント

タイトルとURLをコピーしました