Stable Diffusion 2で高画質画像生成

スポンサーリンク
Stable Diffusion
スポンサーリンク

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

関連記事

WindowsネイティブへのCUDA, PyTorchの環境構築
WindowsネイティブへのCUDA、Pytorchの環境構築をまとめます。PyTorchは今機械学習の世界で最も使われているフレームワークの一つです。導入難易度も、TensorFlowよりも低めとのことです。今回はWindowsネイティブへの環境構築を行っていきます。
Stable Diffusion 2で高画質画像生成
Stable Diffusion2での画像生成に挑戦してみます。以前のv1に比べて、高解像度の768x768に対応した新しい安定拡散モデルを用いて、高画質の画像生成が可能になっているそうです。
Stable Diffusionのモデルをローカルに保存
Stable Diffusionのモデルは、デフォルトでは実行時にwebからダウンロードされ、キャッシュに保存されます。2度目以降は、キャッシュから使用されますが、ローカルで安定してStable Diffusionを使用するために、特定の場所に保存する方法をまとめました。
Stable Diffusion Pipelineまとめ(1)text2img
Stable Diffusion Pipelineを公式ページをChatGPTの解説にしてもらいながらかみくだきました。パラメータの意味などをしっかり理解すると生成する画像の意味もよく理解できます。
WindowsでGitとGitHubを使う
WindowsでGitとGit-Hubの基本的な使い方をまとめていきます。Gitは作成したプログラムのソースコードなどの変更履歴を管理するアプリです。Gitでは、それぞれの変更履歴ごとにリポジトリと呼ばれる場所にファイルの状態を保存することによって、バージョンを管理し、複数人での共同作業をやり易くします。一方で、GitHubはGitHub社が提供する世界有数のGitホスティングサービスで、有料の商用プランの他、無料でのリポジトリ環境が提供されている。今回は、GitやGitHubのサービスを利用する上での最低限の知識をまとめてみます。今回は個人でGitとGitHubを使う場合に役立つコマンドを中心にまとめました。
WebUIでStable Diffusion 1からの手順
WebUI(AUTOMATIC1111)でStable Diffusionを動かしてみます。比較的軽い環境で動くので、folk版のStable Difuusionしか動かなくても使える可能性はあります。今回は1から導入の手順をまとめました。

コメント