Scribble at 2023-11-30 19:31:28 Last modified: 2023-12-01 16:28:12

添付画像

Stable Diffusion が動作している様子を Microsoft Image Creator に描かせてみた。もちろん、上記のような描き方でも正しい。あまりにも画像の生成で有名になったので、多くの人がスケベ画像を膨大に吐き出すツールだと思っているようだが、本来はテキスト入力のエンコーダとデコーダに対応するディープ・ラーニングの分散モデルというだけなので、出力するのはグラフであってもいいし、音楽であってもいいし、もちろんテキストであってもいい。

ということで、僕も自宅のマシンで半年に渡って使ってきているのだが、何度も書いているように僕のマシンは Stable Diffusion を動かすための最低スペックしかないため、パフォーマンスとして最低限であろうし(それでも実用には問題ない)、幾つかの制約はある。もし同じくらいの環境で導入を考えている人がいるなら、幾つかの注意点をご紹介しておこう。

第一に、いちどに大量の画像を出力しないことである。統計力学の原理を応用しているので、一定の乱雑さはあるものの、コンピュータの原理をご承知であれば分かるように、コンピュータで実現しているのは pseudo-randomness にすぎない。また、乱雑さとは言っても或る程度の閾値の範囲に制約されるのであり、期待する結果と乱雑さのトレード・オフがある。ただのランダムな画像を出力するだけなら、そもそもプロンプトなど使っても無意味であるし、プロンプトの選択や並べ方で決定論的な結果が出るなら、実は予測可能な結果しか出さない AI なんて大して有用ではないのである(なぜなら、結果のバラエティを増やすにはトレーニング・データを増やすという線形の発展しかできないので、限られたデータから予想外のバラエティある結果を出力する、つまりデータが少なくても自律的に予想よりも多くの多様な結果を引き出すという期待ができないからだ。恐らくパフォーマンスが線形にしか発展しない AI なんて研究するに値しないであろう)。とは言え、僕らのパソコンで使えるていどの分散モデルでは限界がある。いちどに大量の画像を出力させても、勝手にいい感じのバラエティに富んだ結果を出してくれるなんてことはない。逆に言えば、勝手にいい感じの結果を出してくれるならプロンプトなど不要である。よって、プロンプトを指定したら一定の範囲でバラエティはあるが、しょせん30枚から50枚ていどを出力すると同じようなパターンの画像ばかり出てくるのである。正直言って、破綻が少ないように最低限のキーワードの組み合わせでプロンプトを組んでも、僕の経験では20枚から30枚以上の画像を馬鹿みたいにザクザクと出力するのは無意味だと思う。そして、どれほど破綻の少ないプロンプトを組んでも、20枚の画像を出力した上で意図がそこそこ反映されている画像が出てくる頻度は、せいぜい1割もあれば良いほうだ。極端な事例だが、"scenary, nature" という単純なプロンプトだけでも、僕らが思っているほど美しい風景の画像が色々なバラエティで出力されるというわけではない。出力する画像はせいぜい30枚以下にして、何度もプロンプトの組み方を工夫したり調整する方が有効だ。

第二に、いちどに出力する画像の枚数を制限するだけではなく、連続稼働させる時間なり出力させる枚数の合計も制限したほうがいい。つまり、何枚かずつ出力してはプロンプトや設定を調整するといったことを3時間ほど続けたら、パソコンを再起動することをお勧めする。Stable Diffusion は、とりわけ大量のメモリを消費する。主にグラフィックス・カードのメモリだが、僕が使っているように貧弱なスペックのマシンだとメイン・メモリも消費するし、それでも足りずに、ページング・ファイルというストレージに形成される仮想のメモリも使う。それだけメモリを消費するのであるから、少しでもメモリの運用に問題があったり不足があれば、いわゆる「メモリ・リーク」が蓄積して、そのうちマシンが動作しなくなる。僕のマシン(Ryzen 5 + 16GB RAM + GeForce RTX 2060 6GB)では、このスペックに加えてページング・ファイルが 20GB ほど作成される。ページング・ファイルのサイズは「自動」に設定するようお勧めする。SD を使う時はページング・ファイルのサイズを固定すると動作不良の元になる。また、僕のマシンのスペックだとページング・ファイルを無効にすると画像を全く生成できなくなるので、貧弱なマシンではページング・ファイルを使うことが前提になる。メモリ・リークが蓄積すると急にデスクトップが操作不能になったり、マウスやウィンドウの反応がコマ送りになったりして、最後には電源ボタンを押して強制終了させなくてはいけなくなる。よって、第一の注意点にも関わるが、いちどに数百枚を出力させて、そのあいだに別のことをするという「ながら生成」はお勧めしない。

それから、出力された画像を1枚ずつ確認するときに使う画像のビュアー(メディア管理ツール)も、あまり何枚も画像を表示するのはよくない。僕は20年以上も愛用している「だいなファイラ」というファイル・マネージャで PNG 画像を1枚ずつ表示しているが、これもたくさんの画像を表示していると少しずつ挙動がおかしくなって、やがて Windows そのものがハングしてしまうくらいメモリを食い散らかしてしまう(もちろん、これはファイル・マネージャ本体のメモリ・リークなのか、それとも PNG を表示するためのライブラリに問題があるのか、どちらが原因なのかは分からない)。よって、画像を表示するソフトウェアも、せいぜい1,000枚ていどを表示したら起動しなおす方がいい。

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

冒頭に戻る


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

Twitter Facebook