38
31

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

画像生成AI「Stable Diffusion」がデモ用サイト、LINE、Google Colaboratoryで使えて、しかも無料なので感動したお話

Last updated at Posted at 2022-09-04

1.はじめに

どうも、ARIの名古屋支社に勤務している愛知県民です♪
(/・ω・)/

2022/8/22に、与えられた英文から画像を生成する「Stable Diffusion」なるものが
オープンソースとして公開されました。

Stable Diffuisionをローカルに入れようとすると、
そこそこPCのスペックが必要なためどうしようか悩んだのですが、
LINEやクラウドを利用して、簡単に使うことができる様でした!

そこで今回は様々な方法でStable Diffusionを動かす方法についてまとめたいと思います♪
Stable Diffusionについて勉強中の方や画像生成AIに興味のある方の参考になれば幸いです。
(*^^)v

例として、「カレーライス」をStable Diffusionに描いてもらうと以下の様になります。
毎回出力される結果が異なるので、世界に1枚だけの画像です。
(・・・AIが描いたのが分からないくらいリアルで、とてもとても感動しました♪)

000_カレーライス.png

2.用語の説明

2.1.Stable Diffusionとは

Stable Diffusionは、2022年8月22日(現地時間)に英Stability AI社によって
全世界に公開された高性能画像生成AIであり、
任意のテキストを入力するだけで、その内容に沿ったオリジナル画像を
自動で生成することができるという特徴を有しています。

2.2.Google Colaboratoryとは

Google Colaboratory(グーグル・コラボレイトリーもしくはコラボラトリー)とは、
Googleが機械学習の教育及び研究用に提供しているインストール不要かつ、
すぐにPythonや機械学習・深層学習の環境を整えることが出来る無料のサービスです。

3.デモ用サイトを使う

まずは、デモ用サイトを使う方法です。

3.1.以下のサイトにアクセスします。

3.2.描いて欲しい絵の内容を英語で入力し、「Generate image」を選択します。

以下では例として、「ハンバーガー」の画像を出力しようとしています。

110_デモサイト_1.png

3.3.約5分ほど待つと、Stable Diffusionが生成した4枚の画像が出力されるので、必要に応じて保存します。

120_デモサイト_2.png

4.LINEを使う

続きまして、LINEを使う方法です。
お絵描きばりぐっどくん」というアカウントが裏でStable Diffusionを使用して画像生成してくれます。

前提条件は以下となります。

  • LINEをインストールしていること。

4.1.LINEのホームタブを選択し、友達追加のアイコンを選択します。

210_友達追加を選択.jpg

4.2.「QRコード」を選択します。

220_QRコードを選択.jpg

4.3.以下のQRコードを読み込みます。

230_QRコード.png

4.4.「お絵描きばりぐっどくん」を友達追加します。

240_お絵描きばりぐっどくん.jpg

4.5.トークにて、描いて欲しい絵の内容を入力すると、約1分後にStable Diffusionが生成した1枚の画像が出力されるので、必要に応じて保存します。

以下の画像では例として「ピザ」の画像を出力しようとしています。
また、「お絵描きばりぐっどくん」は日本語でも返信してくれます。

「お絵描きばりぐっどくん」の仕様上、1日2画像くらいしか出力できないようです。

250_動作確認.jpg

5.Google Colaboratoryを使う

最後にGoogle Colaboratoryを使う方法を記載します。

前提条件は以下となります。

  • Googleのアカウントを作成していること
  • Hugging Faceのアカウントを作成していること

5.1.Hugging Faceでの作業

5.1.1.以下のサイトにアクセスし、Hugging Faceアカウントでサインインします。

5.1.2.画面右上のアイコンを選択し、「Settings」を選択します。

310_画面右上のアイコンを選択.png

5.1.3.「Access Tokens」を選択し、「New token」を選択します。

320_New_tokenを選択.png

5.1.4.Nameにアクセストークン名を入力し、Roleは「read」とし、「Generate a token」を選択します。

330_アクセストークンを作成.png

5.1.5.認証情報が表示されるので、コピーマークを選択し、メモ帳などにコピーします。

340_認証情報をコピー.png

5.1.6.以下のサイトにアクセスします。

5.1.7.チェックボックスにチェックをし、「Access repository」を選択します。

350_規約に同意.png

5.2.Google Colaboratoryでの作業

5.2.1.以下のサイトにアクセスし、Googleアカウントでサインインします。

5.2.2.「ノートブックを新規作成」を選択します。

350_ノートブックを新規作成を選択.png

5.2.3.「編集」を選択し、「ノートブックの設定」を選択します。

420_ノートブックの設定を選択.png

5.2.4.ハードウェアアクセラレータは「GPU」を選択し、「保存」を選択します。

430_GPUを選択.png

5.2.5.以下のコマンドを入力し、再生ボタンを選択します。

pip install diffusers==0.8.0 transformers scipy ftfy

2023/1/12時点では「0.8.0」で動作しましたが、別のモデルを使用したい場合は変更してください。

440_コマンド入力_1.png

5.2.6.再生ボタンの左にチェックマークが表示されることを確認します。

450_チェックマークを確認.png

5.2.7.画面左上の「コード」を選択します。

460_コードを選択.png

以下の手順では省略していますが、
コマンド実行後は都度都度チェックマークを確認した後で、
「コード」を選択して次のコマンド欄を追加してください。

5.2.8.以下のコマンドを入力し、再生ボタンを選択します。

TOKEN="★手順5.1.5でコピーしたTokenの情報★"

5.2.9.以下のコマンドを入力し、再生ボタンを選択します。

from diffusers import StableDiffusionPipeline
pipe = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4", use_auth_token=TOKEN)

5.2.10.以下のコマンドを入力し、再生ボタンを選択します。

pipe.to("cuda")

5.2.11.以下のコマンドを入力し、再生ボタンを選択します。

keyword = "★描いて欲しい絵の内容★"
image = pipe(keyword)["images"][0]
image.save(f"★ファイル名★.png")

例:目玉焼きの絵を1枚出力するコマンド

keyword = "fried egg"
image = pipe(keyword)["images"][0]
image.save(f"目玉焼き.png")

5.2.12.約1分後にStable Diffusionが画像を生成するので、画面左のファイルマークを選択し、必要に応じて画像を保存します。

Google Colaboratoryの仕様で90分経過すると初期化され、
手順5.2.5のコマンドを打つところからやり直しになります。

コマンドは履歴が残っているため再度実行できますが、
Stable Diffusionが生成する画像は毎回異なるため、
保存を忘れると復元できなくなります。

470_ファイルを確認.png
480_目玉焼き.png
(参考:生成された「目玉焼き.png」の内容)

5.2.13.複数の絵を出力したいときは以下のコマンドを使用します。

keyword = "★描いて欲しい絵の内容★"
num = ★出力したい枚数★
for i in range(num):
  image = pipe(keyword)["sample"][0]
  image.save("{}_{}.png".format(keyword,i+1))

例:美しい湖の画像を3枚出力するコマンド

keyword = "beautiful lake"
num = 3
for i in range(num):
  image = pipe(keyword)["images"][0]
  image.save("{}_{}.png".format(keyword,i+1))
481_beautiful lake_1.png
482_beautiful lake_2.png
483_beautiful lake_3.png
(参考:実際に生成された3枚の画像)

6.おわりに

ここまで読んで下さり、ありがとうございます!!!
(^^)

今回はStable Diffusionを使う方法を複数まとめてみました。

描いて欲しい絵の内容を伝えるだけで、AIが無料で絵を描いてくれるとは、
すごい時代になったなぁ・・・としみじみ感じたのと同時に、感動もしました!

また何か気になることがあれば記事にします♪
(:3_ヽ)_

38
31
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
38
31

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?