今回はテキストから画像を自動生成する
stable-diffusionをGoogle Colabで試してみました

解説動画はこちら






さて、こちら
最近公開されたようなのですが
テキストから画像を生成してくれるという
優れものです

使えるようにするには
少しコツがいるので手順を紹介します。

デモサイト



コードを動かすために必要な作業

1.Hugging Faceのアカウント作成(要メールアドレス)

最初はhuggingfaceというサイトのアカウントが必要です
SignUpからメアドとパスワードで登録しましょう。


2.来たメールで認証確認

登録したらメールが来ると思うので
リンクをクリックして認証確認をします。


3.stable-diffusionのModel cardの使用申請をする
申請先

次にこのライブラリを使うためには
Model cardというものの使用許可がいるため
申請をする必要があります。

リンクにアクセスして
チェックを入れて
Access repositoryをクリックします。


4.Access Tokenを取得

その後、Tokenの作成画面に遷移し
「New token」をクリックして
適当な名前で「token」を作成します。
スクリーンショット 2022-08-27 14.34.32

出来上がったら、コピーボタンがあるので
それをコピーします。



ここからはGoogle Colabの設定です。

5.Google Colabのランタイムの変更

CPUでは動かないので、ランタイムを設定変更します。

「ランタイム」から「ランタイムタイプの変更」
スクリーンショット 2022-08-27 15.45.44
ハードウェアアクセラレーターを
「None」から「GPU」へ変更します。



6.Access Tokenをコードに入力して実行する

最後に次のコードをコピペして
Tokenを打ち込んで実行します。

そうするとコード類のセットアップが走り
2-3分すると終わります。

#@title 事前セットアップ
 
# 必要なライブラリのインストール
!pip install diffusers==0.2.4 transformers scipy ftfy
 
# アクセス・トークンを設定
token = ""#@param {type:"string"}

# パイプラインを構築
from diffusers import StableDiffusionPipeline
pipe = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4", use_auth_token=token)
pipe.to("cuda")



あとは下記のコードをコピペして
英文のテキストを入力して画像を生成しましょう。
#@title 画像を生成する
 
# 画像生成
prompt = "A small cabin on top of a snowy mountain in the style of Disney, artstation" #@param {type:"string"}
img = pipe(prompt)["sample"][0]
 
# 画像の保存
img_name = prompt.replace(' ','_')
img_path = img_name + '.png'
img.save(img_path)

# 画像の表示
from IPython.display import Image,display
display(Image(img_path))

画像は画像保存で指定したパスに
保存されます。

画像作成時のポイントとして
・英文でないとダメです
・画風(スタイル)を指定できます


今回使用した英文の例です

A high tech solarpunk utopia in the Amazon rainforest

A pikachu fine dining with a view to the Eiffel Tower

A mecha robot in a favela in expressionist style

an insect robot preparing a delicious meal

A small cabin on top of a snowy mountain in the style of Disney, artstation

A_high_tech_solarpunk_utopia_in_the_Amazon_rainforest
A_pikachu_fine_dining_with_a_view_to_the_Eiffel_Tower
A_mecha_robot_in_a_favela_in_expressionist_style

結構それなりに、いい感じに出来ていると思います。

画像の生成には30秒ほどかかり
Google ColabのGPU使用は
無料版だと12時間ほどかと思うので
結構な枚数は作成できるんじゃないかと思います。

ちょっとしたイラストなんかは
自動で生成出来てしまいますね。

やりたい方は試してみてくださいね
それでは。