Stable Diffusion web UIをMacbookproで使う

# 概要

AIイラストを作成することができるStable diffusion。コマンド打ったり環境構築が前回の記事では必要だったが、
今回紹介するのはそういった手順が少なく、ブラウザのGUIでわかりやすく実行できるので試していこう。


# 環境

実行マシン：MacBookPro
CPU：AppleM1Pro
メモリ：16G

# インストール

基本的な手順は、以下のGitにのっている方法をなぞるだけ。

https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Installation-on-Apple-Silicon

Homebrew をインストールしてない場合は以下リンクよりインストールする。

https://brew.sh/

Homebrewを使って、必要なプログラムをインストールする。以下のコマンドをターミナルで実行する。
```
brew install cmake protobuf rust python@3.10 git wget
```

その後、以下のコマンドを実行する。
```
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
```
すると、web-uiのフォルダがインストールされる。
```
ls | grep web 

stable-diffusion-webui
```

まだモデルを持っていない場合は、モデルをダウンロードする。
モデルの比較には、以下のサイトを確認した。

https://kurokumasoft.com/2023/01/25/stable-diffusion-anime-style-models/

今回は`Counterfeit`をインストールしようと思ったため、以下のリンク先より
- Counterfeit-V2.5.safetensors
- Counterfeit-V2.5.vae.pt
をダウンロードした。
![スクリーンショット 2023-02-26 16.33.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1288524/d5ce0b98-30a8-e0db-7b44-2c614a71716d.png)

https://huggingface.co/gsdf/Counterfeit-V2.5/tree/main


その後、
- `/stable-diffusion-webui/models/Stable-diffusion`の中に、`Counterfeit-V2.5.safetensors`を移動させる
- `/stable-diffusion-webui/models/VAE`の中に、`Counterfeit-V2.5.vae.pt`を移動させる。

# 実行させる
stable-diffusion-webuiの配下に移動する
```
コマンド例
cd stable-diffusion-webui
```

その後、以下のコマンドを実行する
```
./webui.sh
```
すると、以下のようにインストールが始まる。
5分くらいはかかるものと思われる。気長にまちましょう。
![スクリーンショット 2023-02-26 16.45.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1288524/af8c6b02-d955-28e9-160e-0f3e2fb8d02f.png)
すると、以下のようにループバックのアドレスとポート番号が表示される。
![スクリーンショット 2023-02-26 16.51.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1288524/d77ea4e3-fcc5-835a-b591-5dd11b045e2e.png)

Chromeなどのブラウザで入力してみると、立ち上がりを確認できる。
![スクリーンショット 2023-02-26 16.52.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1288524/f41a844e-4ff2-e434-f281-c8f628b8478f.png)

また、日本語化することも一応可能らしいが、自分の環境ではうまくできなかった。絵を作るのに支障はないので、今回は諦める。



# 試しに画像生成
img2imgを適当に実行する。
1分くらいして、13%と表示が出てきた。ETAの横に出ているのは残り時間らしい。

![スクリーンショット 2023-02-26 17.01.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1288524/4b260154-10c3-d99e-c1f1-b8bcd1c32666.png)

6分かかって、こんなのがでてきた。意外にありかも？
![00000-3677816622.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1288524/ada1214f-149d-716d-423e-9ec00dca6ee5.png)


txt2imgを、以下リンク先で拾ってきたプロンプトから実行する。

https://kurokumasoft.com/2023/01/04/stable-diffusion-prompt-tips/

```
【プロンプト】
super fine illustration, an extremely cute and beautiful girl, highly detailed beautiful face and eyes, look at viewer, cowboy shot, beautiful long hair, solo, dynamic angle, beautiful detailed ice dress with frill, ice castle in background, blue tone

【ネガティブプロンプト】
flat color, flat shading, nsfw, retro style, poor quality, bad face, bad fingers, bad anatomy, missing fingers, low res, cropped, signature, watermark, username, artist name, text
```

![00000-2012463192.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1288524/dadd9673-abdd-d5c3-954a-17e6396795e5.png)
めっちゃ可愛い！！

参考に自分で組んだプロンプト。砂の惑星をイメージして作る。初音ミクとダイレクトに打つと、あの服を元に生成されて、砂漠の世界観と合わなくなるので、緑髪のツインテール`green pigtails hair`の女子を指定することで
生成している。というか、緑髪ツインでミクが連想できるのが強い。
```
【プロンプト】
super fine illustration,an extremely cute and beautiful girl,highly detailed beautiful face and eyes,beautiful green pigtails hair,beautiful detailed jeans,solo, 1 girl,dynamic angle,cowboy shot,desolate deserts,shiney sun lighting,yellow tone
【ネガティブプロンプト】
EasyNegative
```
![00001-1778271603.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1288524/bfe4060e-1b50-750e-6f5b-4373523013c3.png)
なんかよくわからん機器を持ってるのもいいよね



また、WebUIを立ち上げるには、もう一度以下コマンドを実行する。
```
./webui.sh
```
公式のページ曰く、自動更新しないようにとある。更新するには`git pull`を実行する。


# 参考サイト

https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Installation-on-Apple-Silicon

https://mac-ra.com/mac-automatic1111-stable-diffusion-webui/

https://kurokumasoft.com/2023/02/06/stable-diffusion-web-ui/