無料の画像生成AI「Stable Diffusion」をGoogle Colaboratoryで動かす方法〈前編〉

ロボット プログラミング

Stability AI社から、規約がユルめの画像生成AI「Stable Diffusion」が公開されました。

↓こういう画像が作れます

踊る猫
ダンスをする猫
自由の女神
自由の女神
ロボット
戦うロボット
森の中の家
森にたたずむ家

デモサイトや自分のPCで動かすこともできますが、今回はGoogle Coloaboratoryを使って、低スペックなパソコンでも簡単にStable Diffusionを試す方法について解説します。

使用コード

Google Colaboratoryは使ったことがあるものとして解説します。

Stable Diffusionのインストール

diffusers==0.2.4 などをインストールします。動画ではpipと入力していますが、!pipのように「!」をつけてください。

# stable diffusion のインストール
!pip install diffusers==0.2.4 transformers scipy ftfy

トークンを設定

トークン変数を準備します。「トークン番号」というところには、ご自身で取得したトークンの番号を入力します(後述)。

# トークンの設定
YOUR_TOKEN="トークン番号"

パイプラインの準備

ひとつ前で入力したトークンを使って、パイプラインの準備をします。

import torch
from diffusers import StableDiffusionPipeline

# パイプラインの準備(float16バージョン)
pipe = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4", revision="fp16", torch_dtype=torch.float16, use_auth_token=YOUR_TOKEN)
pipe.to("cuda")

GPUが10GB以上の場合

使用できるGPU RAMが10GB以上の時は、「パイプラインの準備」のfrom diffusersから始まるほうのコードを、下のように書き換えてもいいです。

Google Colaboratoryでは書き換える必要はありません。

from diffusers import StableDiffusionPipeline

# パイプラインの準備
pipe = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4", use_auth_token=YOUR_TOKEN)

画像の生成

画像を生成します。

promptに生成したい画像のキーワードを入力し、image.saveの中に、画像のファイル名を入力しておきます。

# 画像生成
from torch import autocast

# キーワード
prompt = "dancing cat"

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

# 画像を保存(ファイル名はdancing_cat.png)
image.save(f"dancing_cat.png")

実行前に…

ハードウェアアクセラレータの設定

実行時にGPUを使うように設定します。

Google Colaboratoryを開き、メニューの
編集>ノートブックの設定

ノートブックの設定
編集>ノートブックの設定

と進み、ハードウェアアクセラレータをGPUに設定して保存します。

GPU
GPUを選択>右下の「保存」をクリック

トークンの取得

AIを使用するには、トークンを取得する必要があります。
アカウントの作成方法など、詳しい手順はYouTubeの動画で確認してください。

まず、こちらのリンクからモデルカードにアクセスしましょう。

Hugging Faceのアカウントを持っていない人はアカウントを作ります。
作り終わったら、ライセンスを確認し、Access Repository をクリック。

レポジトリにアクセス
チェックを押して、レポジトリにアクセス

レポジトリにアクセスできたら、右上のアイコン>Settingsを押し、Access Tokens>New Tokenを押します。

設定
アイコン>Settings
トークン画面
Access Tokens>New token

Nameにお好きな名前を入れて「Generate a Token」を押せば、トークンが取得できます。こちらがご自身のトークン番号ですので、そのトークン番号を上述のプログラムに記載しましょう。(" "の中に貼り付けてください)

トークン作成
Nameに入力して、Generate a Token
トークン取得完了
四角を押すと、トークンをコピーできます。

いざ実行!

ハードウェアアクセラレータを設定し、トークンを貼り付けできれば、あとはプログラムを上から順番に実行すれば、画像が生成されます。

画像をダウンロードする

生成された画像は、左のファイルのマークを選び、ダブルクリックすることで確認できます。

ファイル
ファイルを選択
ダブルクリック
画像をダブルクリック
画像表示
右側に画像があらわれる

画像をダウンロードするときは、画像ファイルの右にある「︙」をクリックし、ダウンロードを選べば、自分のPCに保存されます。

ダウンロード
ダウンロードを選ぶ

画像ファイルはGoogle Colaboratoryのプロジェクトを閉じると消えてしまいますので、画像を消したくないという場合はダウンロードをしておきましょう。

後編では

Google Colaboratoyを使ってStable Diffusionを動かす方法について紹介しました。

画像が1枚ずつしか表示されないのはダルい!と思う人のために、後編では複数枚の画像を同時に生成する方法を解説します。

また、画像をいちいちダウンロードしなきゃいけないのは面倒だと思うかもしれません。そこで、生成された画像をGoogleドライブに自動で保存してくれるプログラムも紹介します。
そのとき、ファイル名に日付や時間が記載されるようにもします。

また、AIのパラメータをいじって、画像のサイズやキレイさを変更する方法についても解説します。

ぜひ後編の記事もご覧ください。

参考サイト

公式サイト:https://huggingface.co/blog/stable_diffusion

公式のGoogle Colaboratoryプロジェクト:https://colab.research.google.com/github/huggingface/notebooks/blob/main/diffusers/stable_diffusion.ipynb#scrollTo=paJt_cx5QgVz

Google Colab で はじめる Stable Diffusion v1.4:https://note.com/npaka/n/ndd549d2ce556

Stable Diffusion を Google Colabで実行する際に便利なコード:https://zenn.dev/6uclz1/articles/d7736b06d24f1a

コメント

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