ローカルPC (windows 11)でstable diffusionを動かしました。その覚書です。

“stable diffusion install” などのキーワードで検索すると、web GUIで操作ができる AUTOMATIC1111 のインストール方法が見つかります。インストールも簡単で使いやすそうなのですが、Python 3.10.6 をインストールすることが前提になるので、もともとPythonを別なバージョンでインストールしていると、どうやるかが難しいです。

そこで、ここでは、本家のstable diffusion をinstall しました。conda で仮想環境を作って、そこで動かすことができました。

環境

ハード
* CPU: 11th Gen Intel(R) Core(TM) i5-11400F @ 2.60GHz 2.59 GHz
* GPU: NVIDIA GeForce RTX 3060 Ti, メモリ8GB

ソフト
* OS: windows 11 Home
* pythonはminiconda でinstall 済
* git はinstall 済

環境構築の情報

* 公式 Stable Diffusion

インストール方法

以下、基本的には公式の手順。

コマンドプロンプトから、インストールしたいフォルダの上まで移動し、以下のコマンドでgit でクローン。stable_diffusion というフォルダにファイルがコピーされる。

 
以下のコマンドでldm という仮想環境が作られ、そこに環境が作られる。20分以上かかった。

 
以下のコマンドでpytorchをアップデート。

※公式ではtransformers==4.19.2 だったが、実行時にエラーが出たので、transformers==4.31.0 とした。

学習済のモデルは、別なサイトから手に入れる。Hugging Faceというサイトから、sd-v1-4.ckptをDL(アカウント登録が必要)。4.1GBもあるので注意。stable_diffusionのフォルダに配置。これで準備はOK。

動作テスト txt2img

「a cofee cup on the beach」というプロンプトで画像を生成するには以下のコマンドを実行。

結果はこれ。20秒くらいで生成された。

まずまずではないか。

–ckpt でモデルのパスを指定、–Hと–Wは画像のサイズ。–n_samplesは生成する画像の数。
画像のサイズや画像の数を大きくすると、CUDA out of memory というエラーが出るので注意。
また、–seed で乱数のシード値を変えられる。

動作テスト img2img

画像を入力してそれに似た画像を生成することもできる。

まず、以下の画像を512×256で作成。

これを入力にして、”realistic photo, a young man dancing on a boat, smailing” というプロンプトで画像を作成。

 
20秒くらいでこんなのができた。少しぼわーんとしていておばけっぽい。船の外に立っているし。

–strength は、0から1のパラメータで入力画像にどれくらい寄せるかを指定する。0に近いほど入力画像に近くなる。

こんなものも書いてみた。これを入力にする。

 
結果はこれ。写真という感じではないが、上手な絵になった。