そもそもHugging Face って何?
HuggingFace は、AIや機械学習の技術を簡単に使えるプラットフォームです。特に、自然言語処理(NLP)分野で有名で、テキストの翻訳、要約、質問応答などのタスクに役立つモデルを提供しています。初心者でも扱いやすく、プログラミングの知識がなくても利用できるインターフェースやツールが揃っています。多くの事前学習済みモデルが公開されており、自分のデータに合わせてモデルをカスタマイズしたり、再利用したりすることも可能なサイトです。
シンプルに言うとたくさんのAIモデルが公開されていて、それを個人でも簡単に使用できるサイトってことですね。
さぁ、使ってみよう
今回はこちらの画像生成モデルrunwayml/stable-diffusion-v1-5を実装してみたいと思います。
各モデルの実装方法は基本的に ModelCard タブに記載されています。今回のモデルのサンプルコードは以下になるようですね。
from diffusers import StableDiffusionPipeline
import torch
model_id = "runwayml/stable-diffusion-v1-5"
pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
pipe = pipe.to("cuda")
prompt = "a photo of an astronaut riding a horse on mars"
image = pipe(prompt).images[0]
image.save("astronaut_rides_horse.png")
実装方法がわかったので、あとはコードを環境に入れて実行するだけですね。
今回の実行環境としてGoogle colaboratoryを使います。
操作方法などネットでたくさん公開しているので、初めてお使いになる方はぜひ参照してみてください。
さて、GoogleColabでNoteBookを開けたら、まずランタイムのタイプがT4 GPUになっていることを確認します。
ランタイムタブ → ランタイムタイプ → T4 GPU
続いて、さきほどのサンプルコードをコピペして少しアレンジしていきます。変更箇所に注釈を追記しています。
#必要なライブラリをインストール
!pip install diffusers==0.24.0 accelerate==0.25.0
from diffusers import StableDiffusionPipeline
import torch
model_id = "runwayml/stable-diffusion-v1-5"
pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
pipe = pipe.to("cuda")
#生成したい画像のプロンプトに書き換える
prompt = "a bird flying in the sky"
image = pipe(prompt).images[0]
#GoogleColabでは変数名を書くだけで中身(画像)を表示してくれる
image
こちらの↓リンクから実際実行したNoteBookにアクセスできます。
実行結果
確かに鳥が空に飛んでいる画像を生成してくれましたね。ほんとに鳥なのか、微妙なところではありますが、精度は今回のPointではないので、大目に見てあげましょう (笑)
生成された画像たち
prompt = "a bird flying in the sky"
prompt = "A black cat with blue eyes"
prompt = "A white cat with blue eyes"