見出し画像

ControlNet v1.1 を Docker (CPU) で動かす方法

早速ですが次の 12のステップを実行してください。(自分は docker で jupyter Notebook と VSCode を使いました)。 

0.あらかじめリポジトリをクローンし、ControlNet-v1-1-nightly フォルダ         に移動しておいてください。

1.次のコマンドを実行し CPU 用の torch をインストールしてください。

!pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu

2.ControlNet-v1-1-nightly/ldm/models/diffusuion/ddpm.py の 20 行目の
       from pytorch_lightning.utilities.distributed import rank_zero_only を
       from pytorch_lightning.utilities import rank_zero_only に修正。

3.ControlNet-v1-1-nightly 以下のすべてのファイルに対し、
       'cuda' を 'cpu' に置換する。(エディタを使ってください)。

4.同様に ControlNet-v1-1-nightly 以下のすべてのファイルに対し、
       "cuda" を 'cpu' に置換する。(エディタを使ってください)。

5.同様にControlNet-v1-1-nightly 以下のすべてのファイルに対し、
       .cuda() を .cpu() に置換する。(エディタを使ってください)。

6.~/.local/lib/python3.9/site-packages/torch/serialization.py の 144行目、
       return 'cuda:' + str(obj.device.index) とあるところを
       return 'cpu'  #'cuda:' + str(obj.device.index) と修正する。

      

7.同様に~/.local/lib/python3.9/site-packages/torch/serialization.py の 181         行目、def _cuda_deserialize(obj, location): とある行の下に以下の行を追                       加してください。
       return obj.cpu()

8.次の内容をエディタで ControlNet-v1-1-nightly のフォルダに保存して          ください。ファイル名は controlnet-v11-requirements.txt としてくださ          い。

ーーーここからーーーーーーーーーーーーーーーーーーー
numpy
gradio
albumentations
opencv-contrib-python
imageio
imageio-ffmpeg
pytorch-lightning
omegaconf
test-tube
streamlit
einops
transformers
webdataset
kornia
open_clip_torch
invisible-watermark
streamlit-drawable-canvas
timm
addict
yapf
prettytable
safetensors
basicsr
fvcore
pycocotools
wandb
ーーーここまでーーーーーーーーーーーーーーーーー

9.次のコマンドを実行し必要なファイルをインストールしてください。

!pip install -r control-v11-requirements.txt

10.モデルを配置してください。

!wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11f1p_sd15_depth.pth -O models/control_v11f1p_sd15_depth.pth
!wget https://huggingface.co/lllyasviel/ControlNet-v1-1/raw/main/control_v11f1p_sd15_depth.yaml -O models/control_v11f1p_sd15_depth.yaml
!wget https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned.ckpt -O models/v1-5-pruned.ckpt

11.次のコマンドを実行し、ブラウザで http://127.0.0.1:7860 にアクセス            してください。ControlNet v1.1 の画面が表示されればOKです。

!python gradio_depth.py

以上になります。
jupyter notebook と controlnet-v11-requirements.txt を公開しています。

https://drive.google.com/drive/folders/1XZkaRNH0h025FHuCDenAuuWaxvC5bP9w?usp=share_link

python のライブラリを書き換えるので、慎重に作業してください。ほかに作業をする PC や大切なデータが保管されている PC では実行しないでください。Docker の使用をお勧めします。損害が生じても責任はとれません。。

これが正しい方法なのかわからないのですが、自分の環境ではこれでうまく動いています。1枚描くのに 10~20分ぐらいかかりますけど。

それでは良き AI ライフを! 

いいなと思ったら応援しよう!