最新の写真から3DのStable Fast 3Dを試してみた

話題のSF3Dを試してみた
https://huggingface.co/spaces/stabilityai/stable-fast-3d

## 正面でなく斜めからの画像を用意しよう!

![angle.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/54688/75bba23a-555e-8319-fafa-3a0955db9c07.jpeg)



正面画像から作ったため、平らです。次回は斜めからの画像で作りたい。
胸像ならテクスチャーを4kにしたら、十分な品質になりそうです。悩んでたリアル系 トークヘッドの問題が一気に解決しそうですね。


全身3Dの方も、ゲームなら使えそうです。
![angle_body.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/54688/e1cfdc1b-b220-9b0e-c45a-183cccf6027d.jpeg)
## ライセンス
公式からのコピー

オープンソースじゃないけど、儲かってない個人開発者ならOKという感じ

License
Community License: Free for research, non-commercial, and commercial use by organizations and individuals generating annual revenue of US $1,000,000 (or local currency equivalent) or less, regardless of the source of that revenue. If your annual revenue exceeds US $1M, any commercial use of this model or derivative works thereof requires obtaining an Enterprise License directly from Stability AI. You may submit a request for an Enterprise License at https://stability.ai/enterprise. Please refer to Stability AI's Community License, available at https://stability.ai/license, for more information.

## ZeroGPU
挑戦しましたが、CUDA_HOME environment の設定で挫折。まあここ超えても、つぎは、瞬間だけGPU対応という難題がまってるけど
```
  File "/usr/local/lib/python3.10/site-packages/torch/utils/cpp_extension.py", line 2416, in _join_cuda_home
    raise OSError('CUDA_HOME environment variable is not set. '
OSError: CUDA_HOME environment variable is not set. Please set it to your CUDA install root.
```
## おまけ・AIによる前のバージョンとの比較
品質がよくなりました。

古い版-TripoSR:https://github.com/VAST-AI-Research/TripoSR
新しい論文:https://arxiv.org/pdf/2408.00653

ソースは、単一画像からの3Dオブジェクト再構成のための2つの最先端の高速フィードフォワード法であるTripoSRとSF3Dについて説明しています。どちらのモデルも、単一画像入力から3D表現を生成するTransformerアーキテクチャを活用していますが、SF3DはTripoSRの機能を拡張し、より高品質で実用的な3Dアセットを生成することを目的としたいくつかの重要な改善を導入しています。主な違いは以下のとおりです。

* **トライプレーン解像度**: SF3Dは、TripoSRで使用される低解像度（64×64）トライプレーンによって導入されるエイリアシングアーティファクトに対処するために、高解像度（384×384）トライプレーンを採用しています。この解像度の向上により、特に高周波で高コントラストなテクスチャパターンを持つシナリオにおいて、より詳細でアーティファクトのない3D再構成が可能になります。
* **マテリアル推定**: SF3Dは、オブジェクトの反射特性を処理するために、メタリックおよび粗さパラメータの単一値を推定する「Material Net」を導入しています。これらの非空間的に変化するマテリアル特性を組み込むことで、特に異なる照明条件下でレンダリングする場合に、より視覚的に説得力のあるメッシュ予測が可能になります。
* **照明モデリング**: SF3Dは、入力画像の照明を明示的に推定することにより、照明のエンタングルメントに対処します。球面ガウス（SG）照明マップを予測する「Light Net」を組み込むことで、SF3Dは影などの変化するシェーディングを考慮し、均質なオブジェクト出力を生成します。この機能により、TripoSRなどの以前のモデルで一般的だった、RGBカラーに焼き付けられた照明効果の問題が軽減されます。
* **メッシュ抽出と精密化**: SF3Dは、微分可能なマーチング四面体（DMTet）技術を使用して、推定されたトライプレーンをメッシュに変換します。さらに、メッシュをさらに精密化するために、頂点オフセットとワールド空間頂点法線を予測する2つの新しいMLPヘッドが導入されています。頂点オフセットは、四面体グリッドからのアーティファクトを軽減するのに役立ち、ワールド空間法線は、フラットなメッシュ三角形に詳細を追加します。これらの追加により、マーチングキューブ（MC）でよく見られる階段状のアーティファクトのない、より滑らかで視覚的に魅力的なメッシュサーフェスが生成されます。
* **高速UVアンラップとエクスポート**: SF3Dは、低ポリゴンメッシュと高解像度テクスチャの生成を容易にする、高速なキューブ投影ベースのアンラップ方法を採用しています。この並列化可能な手法により、UVアンラップに関連する計算コストが大幅に削減され、全体的な生成速度が向上します。エクスポートパイプラインには、ワールド位置と占有率データをUVアトラスにベイク処理するなど、効率的で効果的な3Dモデル処理を保証するための追加のステップも含まれています。

これらの改善により、SF3Dは、形状（低ポリゴンでありながら滑らか）とテクスチャ（マテリアル特性を持つ照明がエンタングルされたUVマップ）の両方において、ダウンストリームアプリケーションにとって望ましい特性を持つ、単一画像から高品質の3Dメッシュを生成できます。

要約すると、SF3DはTripoSRの成功に基づいて構築され、3D再構成の品質と実用性を向上させることを目的とした、照明モデリング、マテリアル推定、メッシュ精密化、高速UVアンラップなどの重要な改善を導入しています。その結果、SF3Dは、高速な生成速度を維持しながら、より正確で視覚的に魅力的で用途の広い3Dアセットを生成できます。