nikkie-ftnextの日記

イベントレポートや読書メモを発信

Stable Diffusion web UIの環境構築できあがり! かわいいは作れるぞおおおおおおおおお!!!

はじめに

十分に発達した科学技術は、魔法と見分けがつかない。1
いや、マジで! nikkieです。

画像生成AIをめぐる盛り上がり、遠巻きに見守ってきましたが、ばーん! このたびStable Diffusion web UIの環境構築に成功しました🙌 🙌 🙌

目次

きっかけ

はてなブログ巡回中にid:iwasimanさんのこちらの記事を見かけました。

今月のプロンプトエンジニアリング:Stable Diffusionに入門したよを読んでいくと

導入のハードルの高さというネックがありますが、あくまで一般人の場合。代表的なStable Diffusion Web UIを入れるのに必要な手順の実体は

  • Python3.10.*のインストール
  • Gitのインストール
  • Gitを使ってGitHubからとってきて、
  • Python+JavaScriptで動いているWebアプリをコマンドからlocalhostで動かす

...という流れなので、ITエンジニアの方だったら特に詰まることはないでしょう。

👀

「あれ、これ、Pythonに慣れている身からすると、かな〜〜〜り簡単に環境構築できちゃうんじゃないかな」

Stable Diffusion Web UIの導入が思っていたよりも簡単そうだと分かり、環境構築に取り組みました。

Apple SiliconでStable Diffusion web UIを動かす

Wikiの手順に従いました。

動作環境

% sw_vers
ProductName:    macOS
ProductVersion: 12.6.3
BuildVersion:   21G419

CPUで動かしています

Wikiに沿ってソースコードとモデルを配置

※後述しますが、ソースコードは1箇所変更が必要でした。

これで./webui.shを叩くと3

Running on local URL: http://127.0.0.1:7860

web UI起動した!!

UIに適当(数語)なプロンプト(たしかcat)を入れて画像生成してみると

RuntimeError: "upsample_nearest2d_channels_last" not implemented for 'Half'

残念!😢

RuntimeError: "upsample_nearest2d_channels_last" not implemented for 'Half' の解消

対症療法(ワークアラウンド)かもしれませんが、以下のようにソースコードを編集して、画像が生成できています。

変えるファイルはwebui-macos-env.sh

-export COMMANDLINE_ARGS="--skip-torch-cuda-test --upcast-sampling --no-half-vae --use-cpu interrogate"
+export COMMANDLINE_ARGS="--skip-torch-cuda-test --upcast-sampling --no-half-vae --no-half --use-cpu interrogate"

--no-halfを追加しています。

エラーメッセージでリポジトリ内を検索して見つかった以下がワークしました。
https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/8555#issuecomment-1537272479
なんでこれで対処できるのか、わかんない!

Stable Diffusion 1.5が動いたぞ〜🙌

CPUなので20秒くらいかかります。

a girl with black hair and ribbon. wearing kimono. with smile shyly. upper body. without hands. at spring morning. with cherry blossom. in anime style.
Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 1197544326, Size: 512x512, Model hash: cc6cb27103, Model: v1-5-pruned-emaonly

アニメ絵を生成したい! Counterfeit V2.5を動かす

再度いわしまんさんのブログより

アニメ・イラスト調の絵で背景も綺麗に出るCounterfeitという定番モデルのV2.5を主に使って

Counterfeit4 V2.5はアニメ絵が作れるのか 👀 👀 👀

以下を参考に動かせました。

モデルを変えるだけですね。
models/Stable-diffusion/以下に配置します5

./webui.shを叩き、立ち上がったUIで上記のプロンプトを入力すると

a girl with black hair and ribbon. wearing kimono. with smile shyly. upper body. without hands. at spring morning. with cherry blossom. in anime style.
Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 1956824048, Size: 512x512, Model hash: a074b8864e, Model: Counterfeit-V2.5_pruned

かわいいいいいいいいいい!!!6

より適切なプロンプトがあるのは承知しているのですが、あまりのかわいさにもう大満足してしまい、プロンプトエンジニアリングはまたの機会です。
はあ、かわいい... これ自分の手で作ったっていうのヤバない? ヤバない?

終わりに

Stable Diffusion web UIの環境構築に成功しました!
かわいいは、作 れ る!!🤗

Pythonのプログラミング経験がある方、お手元のPCにすでにPythonが入っていると思うので、Stable Diffusion web UI、ぜひお試しあれ!
画像生成AIは、驚くほど近くにありました。
先人のブログのおかげもあって全然つまづきませんでした。ありがとうございます!

私の身には、プログラムを書くか、死ぬかどちらかしかないんだ7、なんです。
自分ではどうやっても描けないかわいいイラストを生み出す絵師さんは皆さん本当にすごいと思っています(公開していただいてありがとうございます!眼福)。
そんな私にとって、Stable Diffusion web UIはもうとてつもなくやばいです。
プログラムを書く道の先にかわいいがあるという光が差しています!
プロンプトの情報収集していって、自分好みのかわいいをばんばん生み出していきたいですね〜

そして、かわいいが生み出せないと思っていた自分の手から生み出せたかわいいは本当にかわいいんですよ(親ばか)。
生成枚数は累計2枚とかなんですが、このブログに貼った娘とか、出てくるイラストがもうほんとかわいくてかわいくて、最高です!(優勝!!)


  1. https://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%A9%E3%83%BC%E3%82%AF%E3%81%AE%E4%B8%89%E6%B3%95%E5%89%87
  2. v1-5-pruned-emaonly.safetensorsも試して、こちらもうまくいきました!(ckptの方は別ディレクトリに対比させています)
  3. 仮想環境(venv)を作って、依存関係をインストールするなどしてくれているみたいです。こういうラップの仕方があるんですね!めっちゃよいと思います
  4. 偽造品って単語を選ぶあたり洒落てますね
  5. 「Stable Diffusion 1.5」のモデルは別のディレクトリに移しています
  6. 「(萌え)豚は出荷よ〜」(古のコール&レスポンス)
  7. ref: ASCII.jp:映画を撮るか、死ぬかどっちかしかないんだ 「映画大好きポンポさん」 (7/9)