Scribble at 2023-06-14 08:19:28 Last modified: 2023-06-15 15:04:04

添付画像

昨日、Stable Diffusion のローカル版でブラウザから利用する AUTOMATIC1111 (stable diffusion web ui) を入れてみた。僕の自宅マシンは、もう GPU として型落ちの部類である(GeForce RTX 2060 / 2GB)から、大して快適には生成できないと思ったのだが、実際に使ってみると許容できるていどの所要時間で出力してくれる。だいたいだが、ステップ50前後なら1分に1枚くらいは出せる。導入の手順は調べれば幾らでも出てくると思うが、Python 3.10+ と Git を入れてからインストールしたいフォルダで Git のシェルを起動し、GitHub のリポジトリから AUTOMATIC1111 をクローンする。マシンにダウンロードできたファイルの一式に含まれる webui-user.bat を起動すれば、DOS プロンプトからサーバが起動する(このバッチ・ファイルに "COMMANDLINE_ARGS" というオプションを指定する行があるので、僕のマシンのようにいまとなっては「貧弱」な部類の GPU しかないマシンなら "--lowvram --always-batch-cond-uncond" といった低スペック用のオプションを付けて実行するのがいい)。なお、初回の起動時にだけ色々と必要なライブラリをダウンロードするので時間がかかる。

上のイラストは、そうやって生成した簡単な画像だ。Stable Diffusion は 512*512 ピクセルにトリムした画像を集めて学習しているため、画像のサイズは512ピクセルの正方形から始めると失敗が少ない。それから基準になる「モデル」のデータは、標準のデータでも 4GB あるが、他に色々と趣向を凝らした(というか大多数は「性癖」と言った方がいいのだが)モデルが公開されている。そうやって、txt2img で出力するなら、既に報道されているように「プロンプト」を指定したり、他にも出力のパラメータを幾つか指定して生成する。上の画像は "landscape, scene, forest, wood, mountain, wallpaper" を positive、そして negative なプロンプトに "easynegative" と指定して出力している。なお、プログラミングの乱数出力でもお目にかかる seed を指定できるのだが、特にテイストや出力された風景や物体や人物を固定したくなけれれば "-1"(全くのランダム)でいいだろう。もし、その出力された何かのままで色々な画像を出力したいなら、出てきた画像の下の欄に seed が書かれているので、それを seed の設定欄へ記入する(ためしにプロンプトを変えずに seed だけ固定すると、全く同じ画像が出てくる。よって、プロンプトの方を少しずつ変えていけば、この何かの違う画像が出力できる・・・と思いたいのだが、どうも違う物が出てくることが多い)。

それから、この手のアプリケーションは性能も仕様もどんどん変わる。昨年の後半にリリースされたのだが、既に昨年あたりに公開された解説記事は正しくないので、これから使う方はなるべく新しい記事(そして古い記事をコピペしてるコタツ野郎ではなく、本当に使ってる人の記事)を読もう。たとえば、プロンプトに指定するキーワードをカンマで分割しても意味がないという説明があるけれど、それはもう間違いである。カンマを使わないなら、キーワードの並びがそのまま普通の英文になっているように書かなくてはいけない。

それと、当サイトをご覧の方なら説明する必要もないかと思うが、Stable Diffusion は、かつて thispersondoesnotexist.com という、実在しない人物の写真を合成するサービスを運営していた Stability.io という企業がドイツの大学の研究成果を利用して開発を続けている分散モデルだ。もうこんなのが使えるなら、確かにオンライン・サービスはいらないな。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Twitter Facebook