Stable Diffusion2での画像生成に挑戦してみます。以前のv1に比べて、高解像度の768×768に対応した新しい安定拡散モデルを用いて、高画質の画像生成が可能になっているそうです。
Stable Diffusion2について
Stable Diffusionについてはテキストから簡単に高画質の画像を生成できるAIで、それがオープンソースとなって誰でも使えるようになったことでとても話題になりました。Stable Diffusion2はv1をベースに改良が加えられ、さらに使いやすくなっています。
主な改良点
・LAION-5Bというサブセットで学習した新しいモデルで学習しなおし、少ないステップ数でより高画質な画像(512pxから768pxに進化)を提供できる。
・フィルタによって危険性の低い画像を生成するようになった。(賛否はありますが。。。)
・プロンプトの改善により、有名人や固有のアーティストのインパクトが小さくなった。
・テキストベースで画像を修復するinpaintingが進化した。
全体的に従来モデルで問題となっていた部分を緩和させ、より健全な形に進化したといえます。
前準備
前準備として、GPU搭載のPCを用いて、GPUのPyTorch環境を構築します。GPUのメモリではうまく実行できない可能性があります。もし、そうしたPCがない場合は、Google Colabを使えば、実行できると思います。今回は、ローカル環境で実行してみます。GPUを使ったPyTorchの環境構築については、下のまとめ記事をご参照ください。
PCの構成(参考)
OS:Windows11HOME(22H2)
CPU:12thGen Intel Core i5-12400F (2.5GHz)
GPU: NVIDIA GeForce RTX 3080(10GB)
RAM: 32GB
diffusers2のインストール
開発者のGithubサイトの説明を参考にインストールしていきます。
PyTorchを導入している環境で、下記のように入力してStable Difuusion2の対応したdiffusersをインストールします。
pip install diffusers[torch]==0.9 transformers
pip install --upgrade scipy
Stable Diffusion2で画像を生成
それでは、上記ページのサンプルコードを参考に画像生成してみます。初回のみモデルの読み込みで時間がかかりますが、数秒で1枚の画像が生成します。
import torch
from diffusers import DiffusionPipeline, DPMSolverMultistepScheduler
repo_id = "stabilityai/stable-diffusion-2"
pipe = DiffusionPipeline.from_pretrained(repo_id, torch_dtype=torch.float16, revision="fp16")
pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config)
pipe = pipe.to("cuda")
prompt = "CG artwork of Fantastic Northern Lights and polar bears, very high quality, high detail"
image = pipe(prompt, guidance_scale=7.5, num_inference_steps=50).images[0]
file_name = "polar_bears.png"
image.save(file_name)
> python demo.py

関連記事






コメント