🚀 テンセント Hunyuan3D-1.0: テキストから3Dおよび画像から3D生成の統合フレームワーク
テンセントHunyuan3D-1.0は、テキストから3Dおよび画像から3Dの生成をサポートする統合フレームワークです。このフレームワークは、生成速度と品質のバランスを実現し、既存の3D生成モデルに比べて大幅な改善をもたらします。
🔥🔥🔥 ニュース!!
- 2024年11月5日: 💬 画像から3D生成のデモ実行をサポートしました。下記のスクリプトをご確認ください。
- 2024年11月5日: 💬 テキストから3D生成のデモ実行をサポートしました。下記のスクリプトをご確認ください。
📑 オープンソース計画
- [x] 推論
- [x] チェックポイント
- [ ] ベイキング関連
- [ ] トレーニング
- [ ] ComfyUI
- [ ] 蒸留バージョン
- [ ] TensorRTバージョン
📖 概要
3D生成モデルはアーティストのワークフローを大きく改善しましたが、既存の3D生成用拡散モデルは生成速度が遅く、汎化能力が低いという問題があります。この問題を解決するために、我々はHunyuan3D-1.0という2段階アプローチを提案します。これにはライトバージョンと標準バージョンがあり、どちらもテキストおよび画像条件付きの生成をサポートします。
第1段階では、多視点拡散モデルを採用し、約4秒で多視点RGB画像を効率的に生成します。これらの多視点画像は、3Dアセットの異なる視点からの豊富な詳細を捉え、単視点から多視点の再構成タスクを緩和します。第2段階では、フィードフォワード再構成モデルを導入し、生成された多視点画像を元に約7秒で3Dアセットを迅速かつ忠実に再構成します。再構成ネットワークは、多視点拡散によって導入されたノイズと不一致を処理し、条件画像から利用可能な情報を活用して3D構造を効率的に復元します。
我々のフレームワークには、テキストから画像のモデルであるHunyuan - DiTが含まれており、テキストおよび画像条件付きの3D生成をサポートする統一フレームワークとなっています。我々の標準バージョンは、ライトバージョンおよび他の既存モデルよりも3倍多くのパラメータを持っています。我々のHunyuan3D-1.0は、速度と品質の間で印象的なバランスを達成し、生成時間を大幅に短縮しながら、生成されたアセットの品質と多様性を維持します。
🎉 Hunyuan3D-1アーキテクチャ
📈 比較
我々はHunyuan3D-1.0を他のオープンソースの3D生成方法と比較評価しました。Hunyuan3D-1.0は、5つの指標で最も高いユーザーの好評を得ました。詳細は左下の画像を参照してください。
ライトモデルは、NVIDIA A100 GPU上で単一画像から3Dメッシュを生成するのに約10秒かかり、標準モデルは約25秒かかります。右下のグラフは、Hunyuan3D-1.0が品質と効率の最適なバランスを達成していることを示しています。
🚀 クイックスタート
まずはリポジトリをクローンします。
git clone https://github.com/tencent/Hunyuan3D-1
cd Hunyuan3D-1
Linux用のインストールガイド
環境設定用のenv_install.shスクリプトファイルを提供しています。
# ステップ1: conda環境を作成する
conda create -n hunyuan3d-1 python=3.9 or 3.10 or 3.11 or 3.12
conda activate hunyuan3d-1
# ステップ2: torch関連のパッケージをインストールする
which pip # pipがpythonに対応していることを確認する
# マシンに合わせてcudaバージョンを変更する(推奨)
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121
# ステップ3: 他のパッケージをインストールする
bash env_install.sh
💡 環境インストールのその他のヒント
必要に応じて、xformersまたはflash_attnをインストールして計算を高速化することができます。
pip install xformers --index-url https://download.pytorch.org/whl/cu121
pip install flash_attn
ほとんどの環境エラーは、マシンとパッケージの不一致によって引き起こされます。以下の成功例のように、手動でバージョンを指定することができます。
# python3.9
pip install torch==2.0.1 torchvision==0.15.2 --index-url https://download.pytorch.org/whl/cu118
pytorch3dをインストールする際には、gccバージョンは9以上が望ましく、GPUドライバーは古すぎないようにしてください。
事前学習済みモデルのダウンロード
モデルはhttps://huggingface.co/tencent/Hunyuan3D-1で入手できます。
Hunyuan3D-1/lite
:多視点生成用のライトモデル。
Hunyuan3D-1/std
:多視点生成用の標準モデル。
Hunyuan3D-1/svrm
:疎視点再構成モデル。
モデルをダウンロードするには、まずhuggingface-cliをインストールしてください。(詳細な手順はこちらにあります。)
python3 -m pip install "huggingface_hub[cli]"
次に、以下のコマンドを使用してモデルをダウンロードします。
mkdir weights
huggingface-cli download tencent/Hunyuan3D-1 --local-dir ./weights
mkdir weights/hunyuanDiT
huggingface-cli download Tencent-Hunyuan/HunyuanDiT-v1.1-Diffusers-Distilled --local-dir ./weights/hunyuanDiT
推論
テキストから3Dの生成には、中国語と英語の両言語をサポートしています。以下のコマンドを使用して推論を行うことができます。
python3 main.py \
--text_prompt "a lovely rabbit" \
--save_folder ./outputs/test/ \
--max_faces_num 90000 \
--do_texture_mapping \
--do_render
画像から3Dの生成には、以下のコマンドを使用して推論を行うことができます。
python3 main.py \
--image_prompt "/path/to/your/image" \
--save_folder ./outputs/test/ \
--max_faces_num 90000 \
--do_texture_mapping \
--do_render
使いやすさのために、いくつかの有用な設定をリストします。
引数 |
デフォルト |
説明 |
--text_prompt |
None |
3D生成のテキストプロンプト |
--image_prompt |
None |
3D生成の画像プロンプト |
--t2i_seed |
0 |
画像生成のランダムシード |
--t2i_steps |
25 |
テキストから画像のサンプリングステップ数 |
--gen_seed |
0 |
3D生成のランダムシード |
--gen_steps |
50 |
3D生成のサンプリングステップ数 |
--max_faces_numm |
90000 |
3Dメッシュの面の最大数 |
--save_memory |
False |
モジュールを自動的にCPUに移動する |
--do_texture_mapping |
False |
頂点シェーディングをテクスチャシェーディングに変更する |
--do_render |
False |
GIFをレンダリングする |
異なる設定のスクリプトも用意していますので、参考にしてください。
- 推論Stdパイプラインには30GBのVRAMが必要です(
--save_memory
を使用すると24GB)。
- 推論Liteパイプラインには22GBのVRAMが必要です(
--save_memory
を使用すると18GB)。
- 注意:
--save_memory
を使用すると推論時間が増加します。
bash scripts/text_to_3d_std.sh
bash scripts/text_to_3d_lite.sh
bash scripts/image_to_3d_std.sh
bash scripts/image_to_3d_lite.sh
GPUメモリが16GBの場合、パイプライン内のモジュールを個別に実行することができます。
bash scripts/text_to_3d_std_separately.sh 'a lovely rabbit' ./outputs/test
bash scripts/text_to_3d_lite_separately.sh 'a lovely rabbit' ./outputs/test
bash scripts/image_to_3d_std_separately.sh ./demos/example_000.png ./outputs/test
bash scripts/image_to_3d_lite_separately.sh ./demos/example_000.png ./outputs/test
Gradioの使用
多視点生成のstdとliteの2つのバージョンを用意しています。
# std
python3 app.py
python3 app.py --save_memory
# lite
python3 app.py --use_lite
python3 app.py --use_lite --save_memory
その後、デモはhttp://0.0.0.0:8080 を通じてアクセスできます。ここでの0.0.0.0は、サーバーのIPアドレスであるX.X.X.Xに置き換える必要があります。
カメラパラメータ
出力ビューは、固定されたカメラポーズのセットです。
- 方位角(入力ビューに対する相対値):
+0, +60, +120, +180, +240, +300
。
引用
このリポジトリが役に立った場合は、以下のレポートを引用してください。
@misc{yang2024tencent,
title={Tencent Hunyuan3D-1.0: A Unified Framework for Text-to-3D and Image-to-3D Generation},
author={Xianghui Yang and Huiwen Shi and Bowen Zhang and Fan Yang and Jiacheng Wang and Hongxu Zhao and Xinhai Liu and Xinzhou Wang and Qingxiang Lin and Jiaao Yu and Lifu Wang and Zhuo Chen and Sicong Liu and Yuhong Liu and Yong Yang and Di Wang and Jie Jiang and Chunchao Guo},
year={2024},
eprint={2411.02293},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
📄 ライセンス
このプロジェクトは、Tencent Hunyuan Community Licenseの下で公開されています。