見出し画像

Stable Diffusion XLをmacBook M2で動作させる(Pytorchのアップグレード)



Pytorchを1.2.1から2.0.1にアップグレード

Pytorchのバージョンを2.0.xにしないと、stable Diffusion XLのチェックポイントが動かなかった。

このxformersをインストールすることで、Pytorchのバージョンも1.2.1から2.0.1に更新された。

xformersはwindowsのGPUでしか動かないので、Pytorchのアップグレードができれば、大丈夫。xformersを動かすためにPytorchが更新されるという仕組みになっている。
xformersがインストールされた段階で、pip listでtorchが2.0.0になっている。

しかし、stable diffusionの仮想環境venvファイル内には、Pytorchの古いバージョンが入ったままでチグハグな状態になっている。
ここで画像を生成すると、このようになる。

1girl
Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 3340256277, Size: 512x512, Model hash: b42b09ff12, Model: cetusMix_v4, Version: v1.5.1

一応プロンプトは保持されているので、Pythonで描画するところで転んでいる。

その場合は、GitからAUTOMATIC1111を他の空いているフォルダでインストールし直すと、
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui

フッターがtorchが2.0.1に更新されている。ここで生成されたvenvファイルに、
〜stable-diffusion-webuiのフォルダ/venv/lib/python3.10/site-packages/の中に、
torch-2.0.1.dist-infoというバージョンのフォルダがある。
venvファイルを置き換えれば、Pytorchは1.2.1から2.0.1に更新される。

画像の生成スピードも体感でやや早くなっている。何分かの短縮にはなっている。

Pytorchはhomebrewでもアップグレードできる。
その場合、空のパッケージが生成されWARINGになることがあるが、パッケージフォルダを削除すればWARINGは解消された。
不要なファイルを削除していいかはGoogle Birdに事前に質問した。

Stable diffusion XLをインストール

次に以下のリンクからチェックポイントのファイルsd_xl_base_1.0.safetensorsをダウンロードして、

stable-diffusion-webuiのフォルダ/models/Stable-diffusionにsd_xl_base_1.0.safetensorsを置く。
そしてチェックポイントを選択するが、この時何GBかの重いファイルのダウンロードがあるのでしばらく待つ必要がある。そうして、生成された画像がこれになる。

1girl, anime, black short hair
Negative prompt: easyNegative
Steps: 28, Sampler: DPM++ 2M Karras, CFG scale: 7, Seed: 416655082, Size: 1024x1024, Model hash: 31e35c80fc, Model: sd_xl_base_1.0, Version: v1.5.1

civitaiでチェックポイントを導入してみると、こんな感じに、SF風の描画になった、一応動作はしているようだ。

no humans, landscape, oil on matte canvas, sharp details, the expanse scifi spacescape ceres colony, intricate, highly detailed, digital painting, rich color, smooth, sharp focus, illustration, Unreal Engine 5, 8K, art by artgerm and greg rutkowski and alphonse mucha
Negative prompt: easyNegative
Steps: 28, Sampler: DPM++ 2M Karras, CFG scale: 7, Seed: 2435210450, Size: 1024x1024, Model hash: 0f1b80cfe8, Model: dreamshaperXL10_alpha2Xl10, Version: v1.5.1

飾らない女の子をSF風の世界に足してみるとこんな感じになった。

1girl, black short hair, landscape, oil on matte canvas, sharp details, the expanse scifi spacescape ceres colony, intricate, highly detailed, digital painting, rich color, smooth, sharp focus, illustration, Unreal Engine 5, 8K, art by artgerm and greg rutkowski and alphonse mucha
Negative prompt: easyNegative
Steps: 28, Sampler: DPM++ 2M Karras, CFG scale: 7, Seed: 2940684048, Size: 1024x1024, Model hash: 0f1b80cfe8, Model: dreamshaperXL10_alpha2Xl10, Version: v1.5.1

これは、18世紀フランスのアルフォンス・ミュシャ風ではなく近代的な感じではシド・ミードの方が近いのではと考えて、ライダースーツみたいな感じが飾らない黒髪の女の子に合っている。ランドローバーらしいものもいるが、オニール風スペースコロニーは再現されなかった。コロラド州の砂漠のようだった。

1girl, black short hair, landscape, oil on matte canvas, sharp details, cylinder, O'Neill colony, intricate, highly detailed, digital painting, rich color, smooth, sharp focus, illustration, 8K, art by Syd Mead
Negative prompt: easyNegative
Steps: 28, Sampler: DPM++ 2M Karras, CFG scale: 7, Seed: 838255330, Size: 1024x1024, Model hash: 0f1b80cfe8, Model: dreamshaperXL10_alpha2Xl10, Version: v1.5.1

UIの改善点

また、UIでは画像を生成しているときに、2枚あったときに、2枚の概要が分かるようになったので予測がしやすくなっている。
これはありがたい更新だった。今までは、1枚目の画像の概要しか出なかったので、複数枚指定しても、手足や背景がズレていないか画像が出力されるまで分からなかった。

バッチを3枚にすると、3つの概要が出ている。この段階で手足や背景のずれが確認できる。3枚のうち一枚は手足が変わっているということになる。

1girl,black short hair, wearing black T-shirts and Jeans, chibi, in the room, with plant, 4k
Negative prompt: easyNegative
Steps: 28, Sampler: Euler a, CFG scale: 7, Seed: 345671107, Size: 768x768, Model hash: 0c1efcbbd6, Model: QteaMix-fp16, TI hashes: "EasyNegative: c74b4e810b03", Version: v1.5.1

これは、QteaMixというちびキャラに特化したチェックポイント、chibiというキーワードでは、ちびキャラの生成確率があまり高くなかった。それがちびキャラが出やすくなっている。

この記事が気に入ったらサポートをしてみませんか?