見出し画像

Winローカルで画像を3D化AI。DreamGaussian備忘録

とにかくビルドできなくてできること全部試したので不要なこと書いてるかも。

事前にやっておくこと

CUDA:12.1(※パスを通す)
cuDNN:8.6.0(※パスを通す)

https://developer.nvidia.com/rdp/cudnn-archive
python:
3.10.0(※パスを通す)
Build Tools for Visual Studio 2022

「デスクトップ開発用C++」ワークロードを選択

以下のコマンドを実行

cd c:\
git clone https://github.com/dreamgaussian/dreamgaussian.git
cd dreamgaussian
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
pip install torch==2.1.0 torchvision==0.16.0 torchaudio==2.1.0 --index-url https://download.pytorch.org/whl/cu121
git clone --recursive https://github.com/ashawkey/diff-gaussian-rasterization

dreamgaussian\diff-gaussian-rasterization\setup.pyを修正する

#
# Copyright (C) 2023, Inria
# GRAPHDECO research group, https://team.inria.fr/graphdeco
# All rights reserved.
#
# This software is free for non-commercial, research and evaluation use 
# under the terms of the LICENSE.md file.
#
# For inquiries contact george.drettakis@inria.fr
#

from setuptools import setup
from torch.utils.cpp_extension import CUDAExtension, BuildExtension
import os

setup(
    name="diff_gaussian_rasterization",
    packages=['diff_gaussian_rasterization'],
    ext_modules=[
        CUDAExtension(
            name="diff_gaussian_rasterization._C",
            sources=[
                "cuda_rasterizer/rasterizer_impl.cu",
                "cuda_rasterizer/forward.cu",
                "cuda_rasterizer/backward.cu",
                "rasterize_points.cu",
                "ext.cpp"
            ],
            extra_compile_args={
                "nvcc": [
                    "-allow-unsupported-compiler",
                    "-I" + os.path.join(os.path.dirname(os.path.abspath(__file__)), "third_party/glm/")
                ]
            }
        )
    ],
    cmdclass={
        'build_ext': BuildExtension
    }
)
pip install ./diff-gaussian-rasterization

dreamgaussian\simple-knn\setup.pyを修正する

#
# Copyright (C) 2023, Inria
# GRAPHDECO research group, https://team.inria.fr/graphdeco
# All rights reserved.
#
# This software is free for non-commercial, research and evaluation use 
# under the terms of the LICENSE.md file.
#
# For inquiries contact george.drettakis@inria.fr
#

from setuptools import setup
from torch.utils.cpp_extension import CUDAExtension, BuildExtension
import os

cxx_compiler_flags = []

if os.name == 'nt':
    cxx_compiler_flags.append("/wd4624")

setup(
    name="simple_knn",
    ext_modules=[
        CUDAExtension(
            name="simple_knn._C",
            sources=[
                "spatial.cu", 
                "simple_knn.cu",
                "ext.cpp"
            ],
            extra_compile_args={
                "nvcc": [
                    "-allow-unsupported-compiler"
                ], 
                "cxx": cxx_compiler_flags
            }
        )
    ],
    cmdclass={
        'build_ext': BuildExtension
    }
)
pip install ./simple-knn
pip install git+https://github.com/NVlabs/nvdiffrast/
pip install git+https://github.com/ashawkey/kiuikit
pip install git+https://github.com/bytedance/MVDream
pip install git+https://github.com/bytedance/ImageDream/#subdirectory=extern/ImageDream
pip uninstall rembg -y
pip uninstall onnxruntime -y
pip install rembg[gpu]
pip uninstall numpy -y
pip install "numpy<2"
pip install gradio==3.50.2 -U

プロジェクト内の「RasterizeGLContext」を「RasterizeCudaContext」に置き換える(これあとから考えてみたらいらんかも)

E:\dreamgaussian\venv\Lib\site-packages\torch\utils\cpp_extension.py
cuda_cflagsを直接指定する

    _write_ninja_file(
        path=path,
        cflags=cflags,
        post_cflags=None,
        cuda_cflags=['-allow-unsupported-compiler','-DNVDR_TORCH','-Xcompiler', '/MD'],
        cuda_post_cflags=None,
        cuda_dlink_post_cflags=None,
        sources=sources,
        objects=objects,
        ldflags=ldflags,
        library_target=library_target,
        with_cuda=with_cuda)

python310.libが見つかりません的なエラーがでたので、
"C:\Users\ユーザー名\AppData\Local\Programs\Python\Python310\libs\python310.lib"
をコピーして
E:\dreamgaussian\venv\Scripts\libs
を作ってそこにコピーを配置。
"E:\dreamgaussian\venv\Scripts\libs\python310.lib"

以下のコードを実行

python gradio_app.py

なんか画像ぶっこんだら動きました。

・・・お、おう!!!!!!!!!!!!!!!!!!!!!!!

この記事が気に入ったらサポートをしてみませんか?