プロジェクトページ•arxiv•デモ•FAQ•引用
Paint3Dは、テキストまたは画像入力に条件付けられた非テクステッド3Dメッシュ用の高解像度、照明のない、多様な2K UVテクスチャマップを生成できる新しい粗からファインの生成フレームワークです。
テキストまたは画像入力に条件付けられた未テクステッド3Dメッシュ用の高解像度、照明なし、および多様な2K UVテクスチャマップを生成できる新しい粗からファインの生成フレームワークであるPaint3Dを紹介します。対処する重要な課題は、埋め込まれた照明情報なしで高品質のテクスチャを生成することです。これにより、テクスチャを最新のグラフィックパイプライン内で再照明または再編集できます。これを実現するために、私たちの方法は最初に、事前に訓練された深度認識2D拡散モデルを活用して、視界条件の画像を生成し、マルチビューテクスチャフュージョンを実行し、初期の粗いテクスチャマップを生成します。ただし、2Dモデルは3D形状を完全に表すことができず、照明効果を無効にすることができないため、粗いテクスチャマップは不完全な領域と照明アーティファクトを示します。これを解決するために、不完全な領域の形状を順応させるために特化した、個別のUVインピンティングおよびUVHD拡散モデルをトレーニングします。この粗からファインのプロセスを通じて、Paint3Dは、照明なしにセマンティックな一貫性を維持する高品質の2K UVテクスチャを生成し、3Dオブジェクトのテクスチャリングの最先端を大幅に進めます。

コードは、Pytorch 1.12.1 Cuda 11.6をインストールしてCentos 7でテストされています。環境をセットアップするには、次の手順に従ってください。
# install python environment
conda env create -f environment.yaml
# install kaolin
pip install kaolin==0.13.0 -f https://nvidia-kaolin.s3.us-east-2.amazonaws.com/{TORCH_VER}_{CUDA_VER}.html
UV Position ControlNetの場合、ここで見つけることができます。
他のControlNetモデルを使用するには、抱き合っているフェイスページからダウンロードし、構成ファイルのControlNetパスを変更してください。
次に、以下を介して粗いテクスチャを生成できます。
python pipeline_paint3d_stage1.py
--sd_config controlnet/config/depth_based_inpaint_template.yaml
--render_config paint3d/config/train_config_paint3d.py
--mesh_path demo/objs/Suzanne_monkey/Suzanne_monkey.obj
--outdir outputs/stage1
そして、洗練されたテクスチャー経由:
python pipeline_paint3d_stage2.py
--sd_config controlnet/config/UV_based_inpaint_template.yaml
--render_config paint3d/config/train_config_paint3d.py
--mesh_path demo/objs/Suzanne_monkey/Suzanne_monkey.obj
--texture_path outputs/stage1/res-0/albedo.png
--outdir outputs/stage2
オプションでは、UV位置ControlNetのみでテクスチャ結果を生成することもできます。たとえば、:
python pipeline_UV_only.py
--sd_config controlnet/config/UV_gen_template.yaml
--render_config paint3d/config/train_config_paint3d.py
--mesh_path demo/objs/teapot/scene.obj
--outdir outputs/test_teapot
画像条件を使用すると、以下を介して粗いテクスチャを生成できます。
python pipeline_paint3d_stage1.py
--sd_config controlnet/config/depth_based_inpaint_template.yaml
--render_config paint3d/config/train_config_paint3d.py
--mesh_path demo/objs/Suzanne_monkey/Suzanne_monkey.obj
--prompt " "
--ip_adapter_image_path demo/objs/Suzanne_monkey/img_prompt.png
--outdir outputs/img_stage1
そして、洗練されたテクスチャー経由:
python pipeline_paint3d_stage2.py
--sd_config controlnet/config/UV_based_inpaint_template.yaml
--render_config paint3d/config/train_config_paint3d.py
--mesh_path demo/objs/Suzanne_monkey/Suzanne_monkey.obj
--texture_path outputs/img_stage1/res-0/albedo.png
--prompt " "
--ip_adapter_image_path demo/objs/Suzanne_monkey/img_prompt.png
--outdir outputs/img_stage2
.safeTensorファイルのみを使用してCivitaiのチェックポイントの場合、次のスクリプトを使用してそれらを変換して使用できます。
python tools/convert_original_stable_diffusion_to_diffusers.py
--checkpoint_path YOUR_LOCAL.safetensors
--dump_path model_cvt/
--from_safetensors
@inproceedings { zeng2024paint3d ,
title = { Paint3d: Paint anything 3d with lighting-less texture diffusion models } ,
author = { Zeng, Xianfang and Chen, Xin and Qi, Zhongqi and Liu, Wen and Zhao, Zibo and Wang, Zhibin and Fu, Bin and Liu, Yong and Yu, Gang } ,
booktitle = { Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition } ,
pages = { 4252--4262 } ,
year = { 2024 }
}Texture、Text2Tex、安定した拡散、ControlNetのおかげで、コードはそれらから部分的に借用しています。私たちのアプローチは、MotionGpt、Michelangelo、DreamFusionに触発されています。
このコードは、Apache 2.0ライセンスの下で配布されます。
私たちのコードは、pytorch3dやpytorch lightningを含む他のライブラリに依存し、それぞれに従わなければならない独自のライセンスを持っているデータセットを使用していることに注意してください。