DockerでStable Diffusion Web UIを動かそうと試みた(失敗)

## はじめに

だだっこぱんだ氏のtweetを拝見。

今の自分に丁度良いトピックだったので、取り組んでみた

https://twitter.com/ddPn08/status/1622202846920998912?s=20&t=sZUs6ABiCgw607etFmS5OA


## 結論

動かなかったです。



## 目的

- Dockerに慣れる
- githubに慣れる
- 画像生成AIに慣れる


## 手順

1. だだっこぱんだ氏のgithubの通りに進める
1. 詰まった箇所をdocker,githubメモの記事に追記

https://github.com/ddPn08/Lsmith


githubのメモ

https://qiita.com/kajiyai/items/9d3da1bc13ee244d536b

dockerのメモ

https://qiita.com/kajiyai/items/3e55844b9b39cb177128



## いざ

### tensroRT

とその前にtensorRTとは何ぞや

NVIDIAが提供しているdeeplearningを高速化するソフトウェア。。

https://www.macnica.co.jp/business/semiconductor/articles/nvidia/136485/

### 手順通りにやってみる

#### 1. git cloneをする

https://tech-blog.rakus.co.jp/entry/20220624/git

#### 2. docker compose up

##### コマンドを打つがエラー

>Error invoking remote method 'docker-start-container': Error: (HTTP code 500) server error - failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running hook #0: error running hook: exit status 1, stdout: , stderr: Auto-detected mode as 'legacy' nvidia-container-cli: initialization error: WSL environment detected but no adapters were found: unknown


長いので細分化して、上から順にみていく


>Error invoking remote method 'docker-start-container'

>(リモートメソッド 'docker-start-container' の呼び出しにエラーが発生しました。)


https://bobcares.com/blog/docker-error-invoking-remote-method/


↑の記事の通りに。

1. 再起動する

>Error response from daemon: Cannot restart container a0198de007b5: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running hook #0: error running hook: exit status 1, stdout: , stderr: Auto-detected mode as 'legacy'
nvidia-container-cli: initialization error: WSL environment detected but no adapters were found: unknown

元のエラーとほとんど同じ。そもそも再起動が成功してない


>Error: (HTTP code 500) server error - failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process:

>エラー: (HTTP コード 500) サーバー エラー - shim タスクの作成に失敗しました: OCI ランタイムの作成に失敗しました: runc の作成に失敗しました: コンテナー プロセスを開始できません:

エラーコードが500という事は分かった。dockerの構造順にエラーをはいてることも分かった。

https://www.publickey1.jp/blog/22/docker_desktopwebassemblywebassembly.html


>error during container init: error running hook #0: error running hook: exit status 1, stdout: , stderr: Auto-detected mode as 'legacy'

>コンテナの初期化中のエラー: フック #0 の実行エラー: フックの実行エラー: 終了ステータス 1、stdout: 、stderr: 「レガシー」として自動検出されたモード


＊＊＊調査中＊＊＊


>nvidia-container-cli: initialization error: WSL environment detected but no adapters were found: unknown

>nvidia-container-cli: 初期化エラー。WSL 環境は検出されましたが、アダプタが見つかりませんでした: 不明

##### これが肝ぽい

https://mevius.5ch.net/test/read.cgi/cg/1661762186/161

docker.launchar.shで止まってたので改行コード確認したが、LFになってた。

他にも、cuda tool-kitが必要らしい...(Stable diffusionの想定はNVIDIA製のGeforce)

が、、私の環境はAMD製Radeon。。


これで行ける...?

https://dolls.tokyo/howto-stablediffusion-on-amdradeon/



が、この方の環境はradeonだがGPU整っておられる。。。


ローカルで使うのは一旦諦めます。


同日追記

調べていくと、openvinoというintelが開発しているツールキットで可能かも.....!
私のCPUはAMDですが、どうやら動くのだとか

参考

https://zenn.dev/karaage0703/articles/4901bf68536907

https://uura.site/stablediffusion-install-2/

↓の記事の手順でやってみる(webuiではない)

https://windvoice.hatenablog.jp/entry/2022/08/31/211310


dockerの環境構築は終わっているので、

1. powershellでgit clone, dockerでビルド


        git clone https://github.com/atinfinity/stable_diffusion.openvino-docker
        cd stable_diffusion.openvino-docker
        docker build --build-arg UID=1000 --build-arg GID=1000 -t stable_diffusion:openvino .
    


https://github.com/atinfinity/stable_diffusion.openvino-docker


dockerのbuild終わった!!!

いざ実行！

docker desktopでrunボタンを押すが1秒で元に戻ってしまう。。。

・・・

docker desktopではなく、ターミナルからコマンドを打ったら起動できた。

windowsなので`$HOME:$HOME`を`$(pwd)`に変更して実行

    docker run -it --rm --device /dev/dri:/dev/dri -v $(pwd) stable_diffusion:openvino bash

https://github.com/atinfinity/stable_diffusion.openvino-docker

    python demo.py --prompt "Street-art painting of Emilia Clarke in style of Banksy, photorealism"

ダウンロードしてたら途中でkilledされた。

再起動してもう一度試してみる。

メモリが足りなそうだったので不要なアプリを削除して再度試した。←✖

再度、demo.pyを動かしてる際の挙動を再度確認してみると、ディスクが圧迫されていた....!

https://qiita.com/sarisia/items/5c53c078ab30eb26bc3b

この通りに進めたが、`Optimize-VHD`がプログラムの名前として認識しない。。。

https://www.codelab.jp/blog/?p=3723

この通りに進めてみた。(ちなみにdiskpartは相対パスは認識しない)

再度挑戦←←✖


一旦諦めます。