CPUでStable Diffusion WebUI、Automatic1111を使う

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

Stable Diffusionを使うにはNVIDIA製GPUがほぼ必須ですが、そういったPCが用意できない場合、CPUでもローカルの環境構築は可能です。ここではCPUでのインストールを行ってみます。

前準備

Windowsローカルに環境構築をするための、前準備(前提)をまとめます。

・Python3.10.6のインストール(ここから適合する環境のものをダウンロード。PATHを通すのを忘れないこと。)
・Gitのインストール(ダウンロードはここから)

上記の条件での環境構築を進めていきます。

WebUIのダウンロード

WebUIをインストールしたいフォルダでコマンドプロンプトやターミナルを開き、GitコマンドでWebUIのクローンを作成します。

> git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

クローンができたら、できた「stable-diffusion-webui」のフォルダの中の「webui-user.bat」を編集します。下記のように、「set COMMANDLINE_ARGS=」の行にcpuを使うためのコマンドを記載します。

@echo off

set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=--use-cpu all --no-half --no-half-vae --skip-torch-cuda-test

call webui.bat

さらに「launch.py」の編集をします。「launch.py」の下記の記載の部分を探します。

torch_command = os.environ.get('TORCH_COMMAND', "pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 --extra-index-url https://download.pytorch.org/whl/cu117")

上記の部分の太字のところを下記のように書き換えます。これにより、CPU版のPyTorchがセットアップされるようになります。

torch_command = os.environ.get('TORCH_COMMAND', "pip install torch torchvision torchaudio")

これで準備ができましたので、「webui-user.bat」をダブルクリックしてwebUIのインストールを行います。初回はインストールで少し時間がかかります。

最後に以下のように表示されたらセットアップは終了です。

Model loaded in 5.0s (calculate hash: 3.7s, load weights from disk: 0.1s, create model: 0.3s, apply weights to model: 0.7s).
Running on local URL:  http://127.0.0.1:7860

ブラウザで「http://127.0.0.1:7860」を開くとWebUIが起動すると思います。

画像生成を試してみる

それでは画像生成を試してみます。プロンプト欄に「1girl」を打ち込んで、「Generate」ボタンを押すと画像が生成します。(モデルがsd1.5なのでちょっと怖い絵が出てきました。。。)

そこで、次に、アニメ絵を生成するためにモデルをダウンロードして、もう少し大きなアニメ絵を出してみます。今回は以下のモデル、VEA、Textual Inversionをダウロードします。

①モデル:anything-v4.5-pruned-fp16.ckpt

②VAE:anything-v4.0.vae.pt

③Textual Inversion:EasyNegative.pt

①は「models」フォルダの「Stable-diffusion」の中に、②は「models」フォルダの「VAE」の中に、③は「embeddings」のフォルダに入れます。更新すると、選択できるようになるので、まず、VEAを「Settings」タグの「Stable Diffusion」の「SD VAE」で選択し、「Apply Settings」で設定します。modelは「Stable Diffusion checkpoint」から選択できます。そのうえで「640×800」の画像を生成してみました。1枚あたり約20分弱時間がかかりますが、CPUでも画像が生成できました。GPU付きのPCなら1枚あたり数秒でできるので、ちょっと時間は掛かりますが、手持ちのPCでどうしてもローカルでStable Diffusionを使いたい方は良いかもしれません。

とはいえ、現実的にはStable Diffusionを使っているとたくさんの画像を出して、その中からよいものを選ぶような使い方をするので、1枚20分近くかかるような環境はストレスがかかるので、あくまでCPUでの画像生成はStable Diffusionの味見程度で考えていただいた方がよいと思います。本格的に画像生成をやっていくには向きません。。。

parameters

A cute girl stands before you with a bright smile on her face, waving her hand excitedly in greeting. Her long, flowing hair dances in the breeze, and her eyes sparkle with warmth and friendliness. She wears a colorful sundress with a floral pattern, the fabric swishing gently around her legs as she moves. A thin gold bracelet adorns her wrist, adding a touch of elegance to her youthful appearance. As she waves her hand, you notice a small charm bracelet dangling from her delicate fingers, each charm representing a special memory or moment in her life. The sight of this cheerful and vibrant girl fills you with a sense of joy and happiness, and you can't help but feel uplifted by her infectious energy.
Negative prompt: EasyNegative, (low quality, worst quality:1.4), (bad_prompt_v2:0.8), (monochrome:1.1), ((bad hands))
Steps: 20, Sampler: DPM++ SDE Karras, CFG scale: 4, Seed: 6422331, Size: 640x800, Model hash: f773383dbc, Model: anything-v4.5-pruned-fp16

コメント