9
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Docker for Windowsで話題のDreamfusion(Text to 3D model)を動かしてみた

Last updated at Posted at 2022-10-17

Docker for Windowsで話題のStable-Dreamfusionを動かしてみた

こんにちは!!Asterです!!!
今回は話題のStable-DreamfusionをDocker環境で動かすことができたので、その流れを記事として書こうと思います。
Docker自体まだまだ初心者ですので、書き方が悪い場所もあるかもしれません。
そのため、あくまで一つのやり方として見て頂ければと思います!!

実行環境

Windows10
NVIDIA GeForce RTX 3090
memory 64GB
Docker for Windows

Stable-Dreamfusionとは

Stable-Dreamfusionとは、テキストから3Dモデルを生成する方法となります。
特徴として、2D画像の生成モデルを3Dに転用しているため、3Dのデータセットが完全に不要であることです。
そのため、多様な3D生成が可能となっています。

image.png

詳細は論文をご覧ください。

Docker for Windowsを動かすまで

WSL2の導入

管理者権限で開いたPowerShellで以下を実行します。

wsl --install

次に、WSL2が有効になっているかを確認します。

wsl --status

ここで既定のバージョンが2でなければ、以下を実行します。

wsl --set-default-version 2

NVIDIA drivers for WSLのインストール

ホスト環境にNVIDIA Driverを入れましょう。

以下のページのGet CUDA Driverボタンを押して、GeForce Driver(実行環境によってはQuadro Driver)を
ダウンロードしてください。
https://developer.nvidia.com/cuda/wsl

install はすべてデフォルトで大丈夫です。

Docker Desktop for Windowsのインストール

次にDocker Desktopを入れます。
https://www.docker.com/products/docker-desktop/

インストールの際に注意したいのが、Configurationで
Install required Windows components for WSL 2にチェックを入れてインストールしてください。

インストールできているか確認しておきましょう。

 wsl -l -v
  NAME                   STATE           VERSION
* Ubuntu-20.04           Running         2
  docker-desktop         Running         2
  docker-desktop-data    Running         2

Docker for Windows上でGPUを使えるようになりました。

Stable-Dreamfusionを動かすまで

Stable-Dreamfusionのコードを任意のフォルダにクローンしてください。

git clone https://github.com/ashawkey/stable-dreamfusion.git

次にDocker buildを行いたいところですが、そのままのDockerfileでは、エラーが出てしまいました。
そのため、Dockerfileの書き換えを行います。このとき、共有フォルダ用のフォルダも追加しましょう。

dockerfile
FROM nvidia/cuda:11.6.2-cudnn8-devel-ubuntu20.04

# Remove any third-party apt sources to avoid issues with expiring keys.
RUN rm -f /etc/apt/sources.list.d/*.list

RUN apt-get update

RUN DEBIAN_FRONTEND=noninteractive TZ=Europe/MADRID apt-get install -y tzdata

# Install some basic utilities
RUN apt-get install -y \
    curl \
    ca-certificates \
    sudo \
    git \
    bzip2 \
    libx11-6 \
    python3 \
    python3-pip \
    libglfw3-dev \
    libgles2-mesa-dev \
    libglib2.0-0 \
 && rm -rf /var/lib/apt/lists/*

RUN pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu116

RUN pip3 install git+https://github.com/NVlabs/nvdiffrast/

RUN pip3 install git+https://github.com/openai/CLIP.git

RUN mkdir -p /home/folder

# Set the default command to python3
#CMD ["python3"]

Docker runの時にhome/folderが共有フォルダとして設定していくようにします。

次にDocker buildを行います。

cd stable-dreamfusion/docker
docker build -t stable-dreamfusion:latest .

次にDocker runを行います。

docker run --gpus all --name stable-dreamfusion --mount type=bind,src=C:\Users\19044\Desktop\esaki\stable-dreamfusion,dst=/home/folder -it stable-dreamfusion

src=C:\Users\19044\Desktop\esaki\stable-dreamfusionの部分は先ほどクローンした場所にしましょう。
これで、stable-dreamfusionのフォルダとDocker内部のhome/folderを共有することができました。

次にセットアップをしましょう。

cd home/folder/stable-dreamfusion
pip3 install -r requirements.txt
bash scripts/install_ext.sh

これでGithub的に準備完了と思いきや、大きな落とし穴がありました。
それがhnggingfaceからアクセストークンを取得することと、「Stable Diffusion」の
モデル説明のページに行って、利用規約に同意する必要がありました。

huggingfaceのsignupを行いましょう。
https://huggingface.co/settings/tokens

サインアップをし、メールの確認もしましょう。そうしないとアクセストークンが発行できません。

Hugging Face – The AI community building the future. — Mozilla Firefox 2022_10_17 23_50_26.png

メールの確認も済んだら以下のような画面になると思います。
そしたら、New Tokenを押し、適当な名前(今回はstable-dreamfusionとしました)を決め、トークンを生成しましょう。

Hugging Face – The AI community building the future. — Mozilla Firefox 2022_10_17 23_50_19.png

次にDocker上でhuggingrfaceにログインしましょう。

python -m pip install huggingface_hub
huggingface-cli login

生成したアクセストークンを

huggingface-cli login

        _|    _|  _|    _|    _|_|_|    _|_|_|  _|_|_|  _|      _|    _|_|_|      _|_|_|_|    _|_|      _|_|_|  _|_|_|_|
        _|    _|  _|    _|  _|        _|          _|    _|_|    _|  _|            _|        _|    _|  _|        _|
        _|_|_|_|  _|    _|  _|  _|_|  _|  _|_|    _|    _|  _|  _|  _|  _|_|      _|_|_|    _|_|_|_|  _|        _|_|_|
        _|    _|  _|    _|  _|    _|  _|    _|    _|    _|    _|_|  _|    _|      _|        _|    _|  _|        _|
        _|    _|    _|_|      _|_|_|    _|_|_|  _|_|_|  _|      _|    _|_|_|      _|        _|    _|    _|_|_|  _|_|_|_|

        To login, `huggingface_hub` now requires a token generated from https://huggingface.co/settings/tokens .

Token:

と出てくるので、Tokenにアクセストークンを入れましょう。

次に利用規約に同意しましょう。
https://huggingface.co/CompVis/stable-diffusion-v1-4

これでほとんどの設定が完了しました。

gui表示をする場合は、別途設定が必要となります。
X Window Serverを用いてGUI操作を行います。
こちらの記事で設定方法が書いてあるので、こちらをご覧ください
firefoxを起動前までの設定が終わったら完了です。
https://wisteriahill.sakura.ne.jp/CMS/WordPress/2020/09/02/docker-desktop-for-windows-x-window-gui/

すべての設定が終了しました。
そしたら、実行してみましょう!!
GUIなし

python3 main.py -O --text "a DSLR photo of adelicious hamburger" --workspace trial2 --iters 15000 --lr 1e-3 --w 64 --seed 0 --lambda_entropy 1e-4 --ckpt scratch --save_mesh

Blender 2022_10_18 0_45_21.png

ちなみに失敗作
パンをこねるパンダ
0001.png

神秘的なラーメン

映画 & テレビ 2022_10_18 0_46_27 (2).png

まとめ

今回 Dreamfusionを用いてTextから3Dモデルを生成してみました!!
今後も他のモデルもDocker環境で動かせるようにしていきます。

9
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?