IT二刀流にはプロモーションが含まれています。

画像生成AI「Stable Diffusion」で遊んでみた – Google Colab

テキストから画像を生成してしまう画像生成AI「Stable Diffusion」

いろんな画像をテキスト入力するだけで作成してくるのでとても便利です。

動作環境

  • Google Colab
  • stable-diffusion-v1-4

ローカルにインストールは諦めた

最初はローカルにインストールして使用する予定だったのです。

しかし、「Stable Diffusion」はNVIDIAのGPUが必要です。

IntelのオンボードGPUしかない私にはローカルの構築では無理でした。

余談ですが、VirtualBoxでは無理そうですね、NVIDIAのGPUがあってもゲストOSから使用できないみたい。

設定とかあるんだろうか、バーチャルGPUしか設定できないしな。

というわけで、NVIDIAのGPUが無い私の救世主になってくれたのは「Google Colab」

無料だし、GPU使用できるし、ブラウザで操作できるし、お手軽です。

前準備

「Stable Diffusion」をGoogle Colabで利用する前の準備です。

アクセスキーが必要になるので、下記の「Hugging Face」でアカウントを作成します。

https://huggingface.co/login

アカウント作成後にログインしてアクセストークンを作成します。

Settingから「Access Tokens」に進んで、「New token」を押下します。

トークン

Nameはなんでもいいです、わかりやすい名前を付けます。

Roleは「read」で「Generate a token」を押下します。

これでtokenの作成が完了です、showを押せばトークンを見ることができます。

Google Colab

Google Colabの利用はGoogleアカウントが必要です。

無ければ取得しましょう。

https://colab.research.google.com/?hl=ja

GPUの設定

画像生成にはGPUが必要なので上部の「ランタイム」から「ランタイムのタイプを変更」を選びます。

そこで、ハードウェア アクセレータをGPUに変更します。

GPU設定

コードにコマンドを入力してGPUが設定されていることを確認します。

!nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.32.03    Driver Version: 460.32.03    CUDA Version: 11.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Tesla T4            Off  | 00000000:00:04.0 Off |                    0 |
| N/A   49C    P8     9W /  70W |      0MiB / 15109MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

ライブラリのインストール

必要なライブラリをインストールします。

!pip install diffusers==0.2.4 transformers scipy ftfy

最後の行にSuccessfullyが出れば成功です。

~
Successfully installed diffusers-0.2.4 ftfy-6.1.1 huggingface-hub-0.9.0 tokenizers-0.12.1 transformers-4.21.1

コーディング

pythonの処理を書いていきます。

今回はGPUの消費を抑えるためにstable-diffusion-v1-4のfp16を使用します。

Google ColabはGPUの利用に上限があるようなので、使用を抑えます。

{アクセストークン}には先ほど入手したトークンの文字列を入れてください。

import torch
from torch import autocast
from diffusers import StableDiffusionPipeline

YOUR_TOKEN="{アクセストークン}"

pipe = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4", revision="fp16", torch_dtype=torch.float16, use_auth_token=YOUR_TOKEN)
pipe = pipe.to("cuda")

画像の生成

画像を生成します。

prompt = “”が生成したい画像を指定する文字列です。

今回は「かわいい子猫のパンチ」を英語にして入れています。

prompt = "cute a kitten punch"

with autocast("cuda"):
  image = pipe(prompt)["sample"][0]

image.save(f"sample.png")

作成成功すると、左のフォルダ内にsample.pngの画像が作成されます。

画像作成

ダウンロードして確認しましょう。

子猫パンチ

かわいい子猫の猫パンチです。メロメロです。

画像生成の処理を再度実行すれば違う画像が生成されます。

納得がいくまで作成しましょう。

まとめ

文字を打ち込むだけで画像が作成できるすごいツールです。

なかなか意図した画像を作成するのは難しいですが、いろいろ試してみようと思います。

ちなみにエロはダメです、フィルターがあって真っ黒な画像になります。

ITエンジニアの転職

いまITエンジニアの需要は急拡大しています。
ITエンジニアの経験があれば好条件で転職することも難しくありません。

ネットビジョンアカデミー

☆ 支援ご協力のお願い ☆

この記事が「役に立った」と感じたら

投げ銭の「OFUSEで応援」で支援して頂けたら励みになります!

OFUSEのやり方(説明)

関連記事
記事特集