Blender ウォッチング

ローカルで動作させた「Hunyuan3D」でテクスチャ付きの3Dモデルを生成する方法

 本連載では、無料の高機能3Dモデリングツール「Blender」の使い方や関連情報を幅広くお伝えします。

今回はテクスチャ付き! テキストプロンプトもあるよ!

 前回に引き続き、今回は「Hunyuan3D」でのテクスチャ付きモデルの生成やテキストからの生成、パラメーターについて解説したいと思います。

「Hunyuan3D」とは

 「Hunyuan3D」は、オープンソースの高品質の3Dモデルとテクスチャを生成可能なAIモデルです。詳しくは前回の記事をお読みください。

テクスチャ付きの形状を生成するモデルの導入

 形状のみの場合と違い、要求される実行環境の性能がもう少し高くなります。

  • VRAMが8GB以上のNVIDIA GPU(6GBでも動作する可能性はあるが遅くなります)
  • GPUドライババージョンが550以降
  • システムメモリが24GB以上

準備

 また、テクスチャ生成用のコンパイルが発生するため、下記のライブラリやアプリのインストールが必要になります。

 インストール方法は以前のTripoSRローカル版構築記事を参考にしてください。途中の「Windows10 SDK」の導入などは不要かもしれませんが、もし後述のコンパイルに失敗したら試してみてください。

導入

 前回の記事で、ローカルに「Hunyuan3D Windowsポータブル版」がインストールされていることが前提です。

 インストールしたフォルダー(標準では「Hunyuan3D2_WinPortable」)内の「update.bat」を実行後、「1-compile-install-texture-gen.bat」を実行します。上記の準備が出来ていれば、しばらく待っていればコンパイル・ビルドが完了します。

インストールフォルダー内の「update.bat」と「1-compile-install-texture-gen.bat」を①→②の順序で実行

 終わったら「3-run.bat」または、VRAMが8GB未満の場合は「run-very_low_vram.bat」を実行します。

 実行時に「Hunyuan3D」のモデルデータに更新があった場合、先にローカルに反映(ダウンロード)させるため、回線によってはかなり時間がかかります。時間に余裕がある時に実行してください。

前回の記事ではディスクスペースが最低34GB以上と書きましたが、後述のテキストで生成するモデルも含めると、筆者の環境ではピークで83GB弱まで大きくなりました。もう少し余裕のある場所(HDDなど)にインストールすることをお勧めします。

 前回同様、サーバーが開始(『INFO: Uvicorn running on ~』と表示)したら、「http://localhost:8080/」でWebブラウザーからインターフェイス(Gradio)にアクセスします。[Generate Shape and Texture]ボタンが表示されれば成功です。

 表示されない場合は「update.bat」と「1-compile-install-texture-gen.bat」を再実行してみてください。

Webブラウザーにて「http://localhost:8080/」でWebインターフェイスにアクセスし、[Generate Shape and Texture]ボタンが表示されれば成功

 なお、生成したモデルデータは、画像といっしょにキャッシュフォルダー(「Hunyuan3D-2gradio_cache」)下に自動的に貯まっていきます。インターフェイスからダウンロードしなくても直接ここからコピーできます。さらに「Blender」のファイルブラウザーでブックマークしておけば、[ファイル]メニューの[インポート]-[glTF 2.0~]から簡単にインポートできます。

各種パラメータについて

 [Advanced Options]をクリックすると、調整用のパラメーターがいくつか表示されます。いつものドラゴンの画像で比較してみました。

[Advanced Options]のクリックで調整用パラメーターが表示

Inference Steps

 「Stable Diffusion」では元画像のデノイズと作成される画像の傾向のコントロールだそうですが、このモデルでも形状に違いが生じます。デフォルトは「30」で、大きくすると遅くなりますが、品質は上がるように思えます。

[Inference Steps]が「30」(デフォルト)と「50」の違い。背びれに注目

Octree Resolution

 3Dグリッドの分解能。デフォルトは「256」で、上げると細かい部分の形状が改善しますが、非常に遅くなります。筆者の環境でのドラゴンのモデルの比較では「256」では3分強だったのが、「512」で8分弱までかかっていました。

[Octree Resolution]が「256」(デフォルト)と「512」の違い。512の方が翼の縁が綺麗になっている

Guidance Scale

 プロンプトにどのぐらい従うか。デフォルトは「5.5」ですが、なぜかツールチップで正しい値を入れろと怒られます。整数値が好ましいのでしょうか。

 小さいと入力画像から外れた、ランダム性の大きいモデルになり、大きいと忠実になるようです。ただし「100」などに極端に大きい値にすると、よくわからない物になってしまいます。

[Guidance Scale]が「1」と「5.5」(デフォルト)の違い。「100」はグロ画像だったため割愛

他のバッチファイルによる起動

 他にもオプションとして、バッチファイルがいくつか用意されています。

テキストプロンプトによる生成

 「run-with-text_to_3d.bat」を実行することで、テキストプロンプトによる生成が可能になります。上のタブを「Text Prompt」に切り替えると入力欄が現れます。

テキストプロンプト「long hair anime girl overall」で生成した例。頭身が高いと顔のテクスチャがこのように潰れてしまう

 通常の画像プロンプト生成に追加の形(テキストから画像を生成し、画像からモデル生成)になりますので、起動時間とメモリ消費量が増えます。さらにテキストから画像を生成するモデルを追加でダウンロードするため、ディスクスペースが追加で必要になります。これらの理由でデフォルトでは無効になっています。

 ちなみにテキストプロンプトから生成された画像は、作成したモデルといっしょに上述のキャッシュに入っていますので、後でパラメーターを変えて再生成する場合は普通にテキストプロンプトなしで起動して画像から生成する方が速いです。

VRAM容量に合わせた起動

 前述のように、VRAMがより小さい環境のために「run-very_low_vram.bat」が用意されています。メモリ消費量が小さい代わりに遅くなります。

 「run-very_low_vram.bat」をテキストエディターなどで開き、中の「--profile 5」の数字を小さくして保存・実行すると、逆にメモリ消費量が増える代わりに速くなります。各プロファイルの値についてはこちらをご覧ください。

生成されたデータについて

 生成された形状データはどれも面数が4万固定で、アセットとして使うには少々大き目です。前回にも書きましたが、構造もあまり綺麗とはいえません。

 ただ、公式ドキュメントの概要の図中の「Hunuan3D-Studio」(公式サイト)の説明に「Low Poly」の文字があり、Tripo AIのように公式サイトのサービスを利用してもらう意図がある物と思われます。

 また、これは「Tripo AI」でもそうだったのですが、形状データが複数の面ごとにグループに分かれており、各グループがUVでもアイランド(の集合)になっています。これらのグループは他の部分から構造的に独立しており、滑らかにつながっていません。

 これらの継ぎ目を消すには「Blender」にインポート後、[編集モード]にて[メッシュ]-[マージ]-[距離で]で統合してやる必要があります。

 テクスチャはベースカラーのみで、サイズは1,024×1,024固定です。

生成された形状データのUVマップとメッシュ。面はUVアイランドごとにグループになっており、他の面とは構造的につながっていない

Blenderアドオンについて

 前回予告していたとおり、「Hunyuan3D」には公式のBlenderアドオンが公開されており、その導入を解説する予定でした。しかし執筆時点で不具合があり、利用できるようにする手間の割には恩恵も少ないことから、今回は見送ることにしました。

 また今後機会がありましたら、取り上げてみようかと思います。

終わりに

 画像による生成は非常に優秀ですが、実際に利用しようとすればデータ構造とテクスチャの解像度が壁になりそうですが、オープンソースとして公開されていることから、公式で改善されなくてもフォークで改善される可能性はあります。今後に期待ですね。

 ではまた。