文字から画像生成するStable Diffusionの遊び方

stable diffusion draemon 未分類

AIで画像生成する、文字から画像を作るということができる「Stable Diffusion」を触ってみました。PCスペックが必要なく、無料で試せる方法を3つ紹介します。

今回試したのは、「Stable Diffusion」。2022年8月22日にオープンソース化され、界隈でも話題になっているようです。

ちなみにこちらの画像は「draemon」。
Stable Diffusionさんドラえもん知らんのか…。

3手法の比較

後述する3つの方法を簡単に比較します。手軽さ順で試すのがおすすめです。

公式のデモサイトDreamStudio BetaGoogle Colab
開始のお手軽さ★★★★★
画像生成の早さ★★★★★★★★
カスタマイズ性★★★★★★★
Stable Diffusionを簡単に触る手法比較

公式のデモサイト

Stable Diffusion 2-1 - a Hugging Face Space by stabilityai
Discover amazing ML apps made by the community

開始のお手軽さ:★★★
画像生成の早さ:★
カスタマイズ性:★★

ユーザー登録不要、サイトに飛んですぐに試せる優れもの。執筆時点(2022年9月10日)の1枚生成時間は5分52秒。

使い方

Stable Diffusionデモページ
デモサイトの使い方
  1. 「Enter your prompt」に生成したい画像についての文章を入力。
    いわゆる「呪文」というやつ。
  2. 「Generate image」をクリック

以上。簡単!

「Advanced options」に設定できる項目が隠れてます。
Images:生成する画像の枚数。
Steps:試行回数のようなもの。大きくすると時間がかかるが完成度(?)があがる。
Guidance Scale:入力した文字の寄与度のようなもの。7~8.5くらいがいいらしい。
Seed:ランダム要素の元みたいなもの。この値とprompt(と他の設定値)があれば同じ画像が再度作れる。

DreamStudio Beta

DreamStudio

開始のお手軽さ:★★
画像生成の早さ:★★★★★
カスタマイズ性:★★

無料登録することで使用可能。初回登録時に200枚程画像生成できるクレジットが付与されるので割と楽しめる。執筆時点(2022年9月10日)の1枚生成時間は6秒。爆速。

初回登録方法

DreamStudio 初回登録画面

「Sign up」「Continue with Google」「Continue with Discord」のどれかで登録する。

クレジットの確認方法

DreamStudioクレジット確認方法

画面右上のアイコンをクリックすると出てくるメニュー内の「Membership」をクリック。

DreamStudioクレジット

200 generationsあることがわかる。これを消費して画像生成していく。

使い方

DreamStudio 操作画面
  1. 画像1枚生成するために必要なコスト。設定によって変動するので注意!(画像サイズを大きくしたり、Stepsを増やすとコストも増える)
  2. 画像生成のための設定項目。画像サイズの他、Stepsが50以上(150まで)設定できる。アルゴリズムやバージョンも変更できるが、遊ぶだけならデフォルトでOK。
  3. prompt(呪文)を入れる場所。
  4. 「Dream」を押すと画像が作られる。素敵。

Google ColabでStable Diffusion v1.4(diffusers v0.3.0) を動かす

Google Colaboratory

開始のお手軽さ:★
画像生成の早さ:★★★
カスタマイズ性:★★★

Google が提供している、無料で利用できるPython実行環境で動かす。「Google アカウント」「Hugging Face アカウント」の2つがあれば、プログラミングをやったことがなくても(おそらく)遊べる。執筆時点(2022年9月10日)の1枚生成時間は13秒。

準備

Hugging Faceのトークン発行

CompVis/stable-diffusion-v1-4 · Hugging Face
We’re on a journey to advance and democratize artificial intelligence through open source and open science.
ライセンスの確認

ライセンスを確認し、「Access repository」をクリック。

Huggin Faceログイン画面

「Sign UP」から新規登録(無料)。アカウントがあればログイン。

トークン画面までの行き方

右上のアイコン→「Settings」

Access Tokensの場所

「Access Tokens」→「New token」でトークン発行。
名前はなんでもOK。Roleは「Read」。

Google Colabを自分の環境に移動

Google Colabを使う準備
  1. Googleアカウントでログイン
  2. 「ドライブにコピー」をクリックし、自分の環境にもってくる

自動でGoogle Drive内に「Colab Notebooks」というフォルダが作られ、その中にPythonのコードがコピーされる。

Colab ノートブックの設定

画面左上の「編集」→「ノートブックの設定」で「ハードウェアアクセラレータ」を「GPU」に変更して「保存」。

Colabの設定画面

コードの実行

ノートブックのコード部分を上から順に実行する。

コードの実行

説明文と、実行できるコードが入り乱れてるが、三角ボタンのでるところを上から押していく。
ハイメモリが必要と言われるが、しばらくは遊べる。

実行するコードは以下の通り。

!nvidia-smi
!pip install diffusers==0.3.0
!pip install transformers scipy ftfy
!pip install "ipywidgets>=7,<8"
from google.colab import output

output.enable_custom_widget_manager()
from huggingface_hub import notebook_login

notebook_login()

Tokenの隣に、先ほど発行したトークンを貼り付けて「Login」

import torch
from diffusers import StableDiffusionPipeline
# make sure you're logged in with `huggingface-cli login`
pipe = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4", revision="fp16", torch_dtype=torch.float16, use_auth_token=True)

しばらくかかるが気長に待つ。

pipe = pipe.to("cuda")
from torch import autocast

prompt = "a photograph of an astronaut riding a horse"
with autocast("cuda"):
image = pipe(prompt).images[0] # image here is in [PIL format](https://pillow.readthedocs.io/en/stable/)

# Now to display an image you can do either save it such as:
image.save(f"astronaut_rides_horse.png")

# or if you're in a google colab you can directly display it with
image

ここまででOK。

このブロック内の、「prompt = ” “」のダブルクオーテーションの間に作りたい画像の説明を書き、三角ボタンで実行すると画像が生成される。

まとめ

文字から画像生成できるStable Diffusionを簡単に触る方法3つでした。本格的に触っていくことを考えると、Pythonを勉強しつつGoogle Colabで進めていくのが良さそうです。

コメント

タイトルとURLをコピーしました