LoginSignup
3
2

More than 1 year has passed since last update.

流行りの画像生成やってみた!

Posted at

はじめに

最近画像生成AIが話題になっています。画像生成AIのツールはたくさんありますが、今回はその中でも無料で使用できるStable Diffusionの使い方を説明します。

huggin faceの使い方

hugging faceというサイトには、事前にトレーニングされたディープラーニングモデルが提供されており、こちらのページから画像分類、翻訳、画像生成など様々なタスク向けのモデルを利用することができます。ここでは、テキストから画像を生成したいので、Tasksはtext-to-imageを選びます。すると、右側に画像生成用のモデルがたくさん出てきます。今回はダウンロード数の最も多いCompVis/stable-diffusion-v1-4を使用します。
1.png
モデル名「CompVis/stable-diffusion-v1-4」をクリックすると、こちらのページにきます。

hugging faceに登録する

stable diffusionを使用するには、hugging faceに登録する必要があります。こちらのページの右上にあるSign Upからhugging faceに登録して下さい。ログインできたら、こちらのページにアクセスします。New tokenをクリックすると、以下のような画面が出てくるのでName、Roleを指定した後、Generate a tokenをクリックします。すると、トークンを作成することができます。
2.png

google colaboratory上で画像生成を実装する

最後に、google colaboratoryを用いて画像生成を実装します。(google colaboratoryの使用方法は他の記事を参考にして下さい。)こちらのページにpytorchを用いた実装例が載っており、それをそのまま実装してみたいと思います。
まずは、GPUを使用する必要があるので、ランタイム->ランタイムのタイプを変更 からGPUに変更します。
3.png
次に、以下のコードでインストールします。

!pip install --upgrade diffusers transformers scipy

次に、以下のコードで認証を行います。Tokenを求められたら、先ほど生成したTokenをコピー&ペーストします。また、Add token as git credential?と聞かれたら、nと答えます。

!huggingface-cli login

認証に成功すると以下のように表示されると思います。
4.png
次に、以下のコードで画像生成を行います。prompt = "a photo of an astronaut riding a horse on mars"となっているので、「火星で馬に乗った宇宙飛行士の写真」を生成してくれるようです。

import torch
from diffusers import StableDiffusionPipeline

model_id = "CompVis/stable-diffusion-v1-4"
device = "cuda"


pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16, revision="fp16")
pipe = pipe.to(device)

prompt = "a photo of an astronaut riding a horse on mars"
image = pipe(prompt).images[0]  
    
image.save("astronaut_rides_horse.png")

最後に、生成した画像を確認してみます!

import cv2
from google.colab.patches import cv2_imshow
img  = cv2.imread("/content/astronaut_rides_horse.png")
cv2_imshow(img)

5.png
きちんと画像生成されました!たしかに火星で馬に乗った宇宙飛行士の写真ですね:grin:

おわりに

今回は画像生成を試してみました。意外と簡単にできて驚きました:sweat_smile:
promptの内容を変えてみると面白そうですね!

参考:https://signyamo.blog/stable-diffusion/

3
2
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
3
2