Stable Diffusionのモデルをローカルに保存

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

Stable Diffusionのモデルは、デフォルトでは実行時にwebからダウンロードされ、キャッシュに保存されます。2度目以降は、キャッシュから使用されますが、ローカルで安定してStable Diffusionを使用するために、特定の場所に保存する方法をまとめました。

Stable Diffusionのインストール

過去記事をご参照ください。

モデルのダウンロード

Git Large File Storageをインストールすることで、大きなファイルをダウンロードできます。Gitをすでにインストールしている場合でも、このツールを別途ダウンロードする必要があります。Gitをダウンロードしていない場合は、Gitをインストールします。(参考記事:『WindowsでGitとGitHubを使う』

> git lfs install
Git LFS initialized.

次に、ダウンロードしたいディレクトリに入り、ライセンスに同意した後、「git clone」コマンドを使用して指定のモデルをダウンロードします。

Stable Diffusion v2-1 Model Cardの場合

最新の高クオリティモデル

> git clone https://huggingface.co/stabilityai/stable-diffusion-2-1

Stable Diffusion v1-5 Model Cardの場合

以前のStable Diffusion v1のモデル

> git clone https://huggingface.co/runwayml/stable-diffusion-v1-5

Waifu Diffusionの場合

2次元イラストに特化したモデル

> git clone https://huggingface.co/hakurei/waifu-diffusion

ローカルからの実施例

ダウンロードしたディレクトリのPATHをモデルに指定することで、ローカルで実行することができます。下記の例では、カレントディレクトリの下にmodelsというフォルダーを作成し、その中にダウンロードしたモデルがあります。(ローカルでモデルを使ったとき、メモリ使用量が高くなりOutOfMemoryErrorが発生したので、チャンク化しています。)

import torch
from diffusers import StableDiffusionPipeline

# モデルを保存したディレクトリを指定
model_PATH = "../models/stable-diffusion-2-1"

pipe = StableDiffusionPipeline.from_pretrained(model_PATH, torch_dtype=torch.float16, revision="fp16")
pipe = pipe.to("cuda")

prompt = "cute cats"

# torch.cuda.OutOfMemoryErrorが出る場合、チャンク化(分割)して処理する
pipe.enable_attention_slicing()

image = pipe(prompt).images[0]
image.save("output.png")

関連記事

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から導入の手順をまとめました。

コメント