ComfyUI上でMary goldとLotusを使い1枚のテクスチャをPBR化させた。
ここではその手順をメモ書きとしてまとめる。
ComfyUI(ポータブル版)のセットアップ方法はこちら
https://qiita.com/HOS_Giken/items/d2fe062cfb5e779f2e95
Blender上でStableGenを使い、テクスチャをAI生成させる方法はこちら
https://qiita.com/HOS_Giken/items/f144bef587e087b904b8
ComfyUI-TextureAlchemy をインストール
ComfyUI-TextureAlchemyを主に使って、1枚のテクスチャのPBR化を試みる。
https://github.com/amtarr/ComfyUI-TextureAlchemy
ComfyUI Managerから「TextureAlchemy」を検索し、インストールする。

依存関係の拡張機能をインストール
TextureAlchemyでは
- Marigold
- Lotus
…を使っているため、同様に以下をインストールしておく。
https://github.com/kijai/ComfyUI-Marigold
https://github.com/kijai/ComfyUI-Lotus
ComfyUI Managerから「ComfyUI-Marigold」および「ComfyUI-Lotus」を検索してインストールする。

Marigoldモデルのダウンロードと配置
Marigoldモデルはなかった場合、自動でダウンロードが走るが、以下手順で手動で行うことも可能。
https://github.com/kijai/ComfyUI-Marigold#installing
Lotusモデルのダウンロードと配置
Lotusで使用するAIモデルを以下よりダウンロード
https://huggingface.co/Kijai/lotus-comfyui/tree/main
.\ComfyUI\models\diffusion_models\lotus内に配置する。
vaeモデルのダウンロードと配置
Lotusのワークフロー部分で以下のvaeをロードしているため、これもhuggingfaceからダウンロードして所定のフォルダに格納する。
- ダウンロード元
- vae
- lotus\vae-ft-mse-840000-ema-pruned.safetensors
- 格納場所
.\ComfyUI\ComfyUI_windows_portable\ComfyUI\models\vae\lotus
ワークフローの読み込みと実行
ComfyUIを再起動して拡張機能を有効にしたのち、ComfyUI-TextureAlchemyに同梱されているexample workflowをComfyUIにドラッグ&ドロップして読み込み、実行する。
読み込むワークフローは
.\custom_nodes\TextureAlchemy\examples\02_quick_start_pbr_Build.json
…を使用する。

試しにBlenderに読み込んでみる
Blenderのマテリアルにそれぞれ設定して表示させてみる。

ノーマルの生成結果が想定と違う様だ
UV展開されたモデルのテクスチャではnormalが想定通りにならない

これはテクスチャの上方向がworldUpとして評価されるため、今回のブーツのような
UV展開された結果のテクスチャでは、想定通りいかない。
背景アセットなどのタイリングテクスチャなどでは上手くいくと思われる。
実際にはUV展開の状態によって結果は異なるはずだ。
normalはハイモデルからローモデルへ転写し、別で生成したものを使う
normalマップに関しては元テクスチャから生成するのではなく、従来通りにハイモデルからローモデルへ転写することで作成したほうがよさそうだ。
以下、Blender上で同様にPAWS:Bakeryを使いハイモデルからローモデルへノーマル転写を行った例


生成したnormalをTextureAlchemyのPBR化ワークフローに挿入し、他の要素(アルベド・メタリック・ラフネス)は、元テクスチャから生成させる。

テクスチャを生成し、Blenderでプレビューした結果はこちら。



細かい質感部分は加筆が必要そうだが、おおむね想定通りの結果を得ることができた。
※なお、テクスチャの生成時には各種要素の強さなどのパラメーターを多少調整し、何度が生成を行っている。
※一発出力でうまくいかなくても、各種要素の色が薄いな、程度であればパラメーターの調整で行けそうだ。
今後の予定
今回の検証・実証ではブーツのモデルを使って行った。
今後はキャラクターのほかの部分、服や顔、胴体などで行い、理想的な結果が得られるかどうかを検証したい。
なお、Blender上でComfyUIのワークフローを実行させられることはわかっている。
そのため、
- StableGen→PAWS:Bakerでテクスチャをローモデルにベイク
- ベイクされたテクスチャをComfyUIでPBR化
までを一括で行えるよう自動化してもよさそうだ。

