Stable Diffusion 2.0がリリース!Pythonでの使い方を解説

  • URLをコピーしました!

今回は画像描画AI、Stable Diffusionの新しいバージョンである2.0がリリースされましたので、使い方を解説します。
ローカルのPCやGoogle Colabで実行するためのPythonコードも併せて掲載していますので、ぜひトライしてみてください。

また、Stable Diffusionに関するトピックを以下の記事でまとめていますので、あわせてご覧ください。

以下のページで自然言語処理モデルGPT-3を使ったライティングツールCatchyで、Stable DiffusionのPromptを自動生成する方法について解説していますので、あわせてご覧ください。

目次

Stable Diffusionとは

Stable Diffusion(ステーブル・ディフュージョン)は2022年8月に無償公開された描画AIです。ユーザーがテキストでキーワードを指定することで、それに応じた画像が自動生成される仕組みとなっています。
NVIDIAのGPUを搭載していれば、ユーザ自身でStable Diffusionをインストールし、ローカル環境で実行することも可能です。
(出典:wikipedia)

Version 2.0

先日、新しいバージョンのStable Diffusion 2.0が公開されました。
公式サイトは以下となります。

バージョン2.0になり、高解像度化や機能の追加が行われた他、使用時にFugging FaceのID作成、ログイン処理が不要となりましたので、より簡単に使用できるようになりました。

StableDiffusion 2.xのセットアップ

以下のコマンドを実行してパッケージをインストールします。

pip install diffusers[torch]==0.9 transformers
pip install --upgrade --pre triton

StableDiffusionのリポジトリを取得してインストールします。

pip install --upgrade git+https://github.com/huggingface/diffusers.git transformers accelerate scipy

以上でStableDiffusion 2.0のセットアップは完了です。

作成したソースコード

Stable Diffusion 2.0を実行するためのコードは以下となります。

「prompt」に画像を指示するテキストを、「num_images」に生成する回数を指定してください。
Google Colaboratoryでもこちらのコードをそのまま使用できます。

from datetime import datetime
from diffusers import StableDiffusionPipeline, EulerDiscreteScheduler
import torch

#使用するモデルを設定
model_id = "stabilityai/stable-diffusion-2"

#StableDiffusionパイプライン設定
scheduler = EulerDiscreteScheduler.from_pretrained(model_id, subfolder="scheduler")
pipe = StableDiffusionPipeline.from_pretrained(model_id, scheduler=scheduler, revision="fp16", torch_dtype=torch.float16)

#使用する計算機を設定(GPUがない場合は"cpu"に変更)
pipe = pipe.to("cuda")

#画像生成の指示(呪文)
prompt = "a photo of an astronaut riding a horse on mars"

#描画する回数を設定
num_images = 2

#イラスト生成
for i in range(num_images):
  #推論実行
  image = pipe(prompt, height=768, width=768).images[0]

  #生成日時をファイル名にして保存
  date = datetime.now().strftime("%Y%m%d_%H%M%S")
  path = date + ".png"
  image.save(path)
Pythonの基礎を体系的に学びたい方におすすめ
オンラインスクール:DMM WEBCAMP 学習コース(Pythonコース)

実行結果

公式サイトにあるサンプルのPromptをそのまま使って、火星を探索する馬に乗った宇宙飛行士を描かせてみました。
指示通り画像を生成できていることが確認できました。

以下のページで自然言語処理モデルGPT-3を使ったライティングツールCatchyで、Stable DiffusionのPromptを自動生成する方法について解説していますので、あわせてご覧ください。

安定した環境を手に入れるためにはローカルでの構築がおすすめ

Stable Diffusionを使用する際にGoogle ColaboratoryやWebサービスを利用されている方も多いかと思います。しかし、最近Google Colabの無料での使用範囲が大きく制限されたり、Webサービスでは月額費用がかかったりします。

欲しいイラストを生成するにはかなりの回数をトライする必要があるため、これらの制約に縛られることなく使用できるローカル環境を構築するのがおすすめです。

ローカルのPCに搭載するグラフィックボード

ローカルマシンで実行する上で重要になってくるのがグラフィックボードです。
Stable Diffusionでイラストを生成するために実行される推論処理を、グラフィックボード上のGPUを使って大幅に高速化することができます。
トライする回数が増えれば品質の高いイラストが生成される可能性が上がりますので、グラフィックボードは重要です。

Stable Diffusionで使用するためのGPUは2022年に新たにNVIDIAから発売されたRTX4000シリーズのGPUとVRAM12GB以上のものがおすすめです。最近は半導体不足も一服したこともあり、新しい製品ながら価格が下がりつつあります。

また、PCのパーツ交換等ができない方には、RTXを搭載したゲーミングPCがおすすめです。

HP ゲーミングデスクトップPC OMEN by HP 40L RTX 3070 Ti Core i7 16GB 1TB Win11 Pro

Pythonによる自動化、UIの作成

当ブログでもソースコードを公開していますが、Stable Diffusionを使用するためのコードはPythonで簡単に実装することができます。Pythonの初歩的なプログラミングを習得することで、Promptを自動で生成、組み合わせ変更してトライするプログラムを作成したり、他の方が配布されているオープンソースのUIを自分好みにカスタマイズすることも可能です。

Pythonのプログラミングを学びたい方には、初心者からでも挫折することなく習得できるオンラインスクールがおすすめです。

最近ではほとんどのスクールがオンラインに対応しており、好きな時に自宅で自分のペースで学ぶことができます。

まとめ

今回はStable Diffusion 2.0がリリースされたため、Pythonでイラスト生成を行うためのコードについて解説してみました。追加された機能についても、検証が終わり次第解説していく予定です。

以下のページで自然言語処理モデルGPT-3を使ったライティングツールCatchyで、Stable DiffusionのPromptを自動生成する方法について解説していますので、あわせてご覧ください。

機械学習を効率よく学びたい方には、自分のペースで動画で学べるUdemyの以下の講座がおすすめです。数学的な理論からPythonでの実装までを習得できます。(私自身もこの講座を受講しています)

icon icon 【徹底的に解説!】人工知能・機械学習エンジニア養成講座(初級編~統計学から数字認識まで~) icon



それでは、また次の記事でお会いしましょう。

\ Pythonのプログラミングを学びたい人には自宅で学べるUdemyがおすすめ!  /

講座単位で購入できます!

よかったらシェアしてね!
  • URLをコピーしました!
目次