画像生成AI「Stable Diffusion」でテキストから画像を生成に挑戦

# はじめに
2022/8に画像生成AI「Stable Diffusion」が登場した。
こちら、英Stability AIが発表した画像生成AI。すごい！

紹介されているサイトでも画像は生成できるので十分楽しめるそうなんだけれども
APIも公開されてるようで、Google Colaboratoryを使って実行することで
安ＰＣでもこのAIの恩恵をあずかれるってことでやってみようと思う。

# まずはアカウント登録
https://awajifishing.com/cryptocurrency/nft/stable-diffusion-20220904/

を参考にやってみる。まずは、Hugging Faceのサイトに行ってアカウントを作成。

https://huggingface.co/

画面右上の「Sign UP」クリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/65c58275-05e1-9251-cd0f-593ac0b9570c.png)

メアドとログインに使用するパスワードを入力して　Next
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/d5cff876-fbec-6ef8-20e3-47ed0ce25567.png)

プロファイル情報を入力
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/a261b078-1664-776f-1408-dd501e9bf069.png)

登録完了。
https://huggingface.co/welcome

こんな感じでどうやって使うのか紹介してくれた
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/9b84f02d-ad83-4d1b-1ec3-a5e2f8004d5d.png)

gmailにメアド確認メールが届いていたのでリンクをクリック。
リンク先で↓↓の画面がでて、無事に承認されたことが確認できた。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/4db07542-6294-7c88-ebb3-bcfce60351e2.png)

# アクセストークンを入手する
画面右上のアイコン画像をクリック＞Settingクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/d31e3f74-2125-6ed3-48c4-20a9df007031.png)

画面左側より　Access Tokens クリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/490c33a6-64a0-654f-8938-3a90266dd937.png)

New Token クリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/354810a0-5eb6-0606-9f0e-fa36f0a1ef86.png)

Nameは適当な名前を入れて、、、
Roleはread
で、 Gnenerate a token 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/439603f5-7819-6dc5-d756-6f5131950744.png)

無事アクセストークンの生成に成功　Show をクリックしたら内容が読める
この内容は後で使うのでコピーしておく
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/c2f8ca7b-dc9a-6bec-d640-98e0062dd280.png)

# ColaboratoryでStable Diffusionをセットアップする
Google ドライブより、Google Colaboratoryを起動する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/2602e1ae-7efb-aaed-0298-aab0f0a5eea6.png)

ノートブックの設定　クリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/6fc87b23-08b1-3efe-5e10-9f094b7c69df.png)

GPUを選択して　保存
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/d850fade-e268-a003-f48f-dc51782c33f3.png)

## pipで必要なライブラリをインストール
ここからはColaboratoryにプログラムを入力していく。

```
pip install diffusers==0.2.4 transformers scipy ftfy
```

しばし待つ…
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/d2c78dda-c16d-b920-ceb8-658c4f01b7cf.png)

１分くらいで完了。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/0ab3978c-8fac-eece-8e3a-529220bfcb8f.png)

## Stable Diffusionを呼び出す
さっき拾ってきたトークンを変数に代入

```
YOUR_TOKEN=”Hugging Faceで発行したトークン”
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/479e749d-c247-9b06-9824-acbb8dcf9c3a.png)

以下のコードを実行する

```
from diffusers import StableDiffusionPipeline

pipe = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4", use_auth_token=YOUR_TOKEN)
```

２分くらいかかったけど成功した
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/20392f22-b56b-117d-ae30-8733bc19d991.png)

最後に↓↓のコードを実行してセットアップ完了

```
pipe.to("cuda")
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/f59d3e93-8416-6aa5-f33f-ee1152e7f5cc.png)

# Stable Diffusionで画像を生成する
以下のコードを実行

```
prompt = "cute cat paly with ball"

image = pipe(prompt)["sample"][0]

image.save(f"cat.png")
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/28e696db-6fdb-586c-9074-4b55cdb05a82.png)

ファイル一覧を見ると、cat.pngが生成されてることがわかる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/6ba86e69-c6d4-3ec7-e147-1a00679912a3.png)

cat.pngをダブルクリックすると、画面右側に画像が表示された。成功！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/4d571b44-97dd-2772-1338-83400e273f71.png)

# おわりに
オープンソースで画像AIが利用できるってすごい時代が始まったな。。。って素直に思いました。
しばらくはStableDiffusionで遊んでみようと思う。