🦁
Stable Diffusionによる画像生成(Google Colab版)
概要
Stable Diffusion による画像生成が話題になっているので、Stable Diffusion - a Hugging Face Space by stabilityai を試してみたですが、もう少し理解すべく、次に Google Colab の環境で試してみました。
私が参考したページと、作業した際の履歴を記載します。
参考にしたページ
GIGAZINE
このページが丁寧に説明されているのでまずはこちらを見るとよいかと思います。
応用編
画像を出力する先をGoogle Driveにする方法や、一度の実行で画像を複数生成する方法が記載されています。
最初に見たページ
最初にこちらのページを見て試しましたが、GPUの設定等については言及されていないので私の環境ではエラーに遭遇しました。
内容としては GIGAZINE の内容と同等のものに見えます。
準備
アカウントの作成
上記ページより、「Sign UP」をクリックしてアカウントを作成します。
最低限 Username、Full name を入力し、"I have read and agree with the Terms of Service and the Code of Conduct" にチェックを入れて"Create Account"をクリックします。
メール認証
e-mail認証を行います。
モデルへのアクセス権の取得
上記リンクより、リポジトリへのアクセス権を取得します。アカウント作成時の Agreement とは別に必要であることに注意してください。
トークンの取得
右上のアイコンのところから Settings を選び、Access Tokens のところから トークンを取得します。
コードの実行
準備
# ライブラリのインストール
!pip install diffusers==0.2.4 transformers scipy ftfy
# アクセス・トークン設定
Access_Token="*************************"#@param {type:"string"}
# パイプライン構築
from diffusers import StableDiffusionPipeline
pipe = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4", use_auth_token=Access_Token)
pipe.to("cuda")
画像生成
# 生成
prompt = "An astronaut riding a horse in a photorealistic style" #@param {type:"string"}
image = pipe(prompt)["sample"][0]
# 保存
sentence = prompt.replace(' ','_')
out_path = sentence+'.png'
image.save(out_path)
# 表示
from IPython.display import Image,display
display(Image(out_path))
画像のダウンロード
#@title 画像のダウンロード
from google.colab import files
files.download(out_path)
注意点
モデルへのアクセス権の取得
これを行っていないと、下記のようなエラーが発生します。
/usr/local/lib/python3.7/dist-packages/requests/models.py in raise_for_status(self)
939
940 if http_error_msg:
--> 941 raise HTTPError(http_error_msg, response=self)
942
943 def close(self):
HTTPError: 403 Client Error: Forbidden for url: https://huggingface.co/api/models/CompVis/stable-diffusion-v1-4/revision/main (Request ID: ************)
Access to model CompVis/stable-diffusion-v1-4 is restricted and you are not in the authorized list. Visit https://huggingface.co/CompVis/stable-diffusion-v1-4 to ask for access.
GPU設定
Google Colab上のGPU の設定が必要です。
これを行っていないと、RuntimeError が発生します。
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
<ipython-input-1-81cabaee10da> in <module>
8 from diffusers import StableDiffusionPipeline
9 pipe = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4", use_auth_token=Access_Token)
---> 10 pipe.to("cuda")
/usr/local/lib/python3.7/dist-packages/torch/cuda/__init__.py in _lazy_init()
215 # This function throws if there's a driver initialization error, no GPUs
216 # are found or any other error occurs
--> 217 torch._C._cuda_init()
218 # Some of the queued calls may reentrantly call _lazy_init();
219 # we need to just return without initializing in that case.
RuntimeError: No CUDA GPUs are available
参考
Discussion