Scribble at 2024-04-29 22:01:38 Last modified: 2024-04-30 09:52:06

添付画像

僕の写真でトレーニングした "philsci" という LoRA を使って、宇宙艦隊士官を描画したもの。

このところ Stability.AI から発表される分散モデルは出力する画像の品質や精度が向上してきていて、細かい特徴を正確にコントロールできるようになっているようだ(動画を出力するモデルも出ているのは言うまでもない)。ただ、こういうことは利用する環境にも大きく依存するし、どこまでの品質が要求されるかという用途にも依存するので、いまのところ僕の環境と用途においては Stable Diffusion 1.5 のままで大きな不満はない。フロント・エンドも、スタンダードな Stable Diffusion Web UI from AUTOMATIC1111 だ。

ついでに書いておくと、出力しているのは社内研修用の挿絵として使う nonrealistic なイラスト調の画像なので、僕が使っている分散モデルは "MeinaAlter V.3" という checkpoint だ。イラストを描くときはスタイル(画風)の LoRA を適用しているのだが、Meina 氏の checkpoint は、たいていの LoRA と相性が良くて、分散モデルの標準になっている絵柄にも癖がないため、非常に使いやすい。あまり日本のユーザで使っている人はいないようだが、僕は昨年の6月から Stable Diffusion をローカル・マシンで使い始めてから20個くらいの checkpoint を試したのだけれど、数週間で Meina 氏の checkpoint だけを使うようになった。

僕が Stable Diffusion 1.5 のままでいいと言っている事情としては、もちろん環境という理由が大きい。何度も書いていることだが、自宅のマシンは約5年前に購入した GALLERIA で、スペックは Ryzen 5, 16 GB RAM, 500 GB SSD + 1 TB HDD + NVIDIA GeForce RTX 2060 6 GB だ。正直、Stable Diffusion がやっと動くギリギリのスペックと言ってよい。それでも、色々なチューニングや設定の変更で、まったく問題なく画像を出力している。いちばん速いと思われる DDIM というサンプリング方法でステップ数を15にすると(DDIM はノイズからの収束が速いので、ステップ数を10くらいまで少なくしても大きな問題はない)、1,024 x 720 ピクセル(A版と同じプロポーション)の画像を約7秒で吐き出す。これを更にアップ・スケーラーという機能で詳細化(拡大)すると、8,782 x 5,760 ピクセル(8倍)ていどの拡大なら50秒以内に終わる(もちろん、こんなリサイズなんて普段はやっていない)。これなら実用的と言える範囲だろう。

それ以降に出た分散モデルとして、SD 2.0 や SDXL があり、特に今年に入ってからは生成 AI のギャラリー・サイトでのトレンドは SDXL に移行しつつある。しかし、いまだに SD 系の LoRA や checkpoint もリリースされているし、置き換わるというよりも、利用できるスペックに応じた棲み分けが出来つつあると言うのが正確なところだろう。確かに、僕のマシンでも SDXL を使った画像は出力できるけれど、その所要時間は SD 1.5 の10倍ていどはかかるし、実際に使ってみた印象としては、さほど画像の品質が向上しているようには思えない。特にイラストの場合は画法がフラットなアニメ塗りのような絵柄だと、詳細な描きこみができるとしてもキャラクターには不要だし、背景などに過剰に適用するとキャラとのミスマッチが起きるし、キャラの絵柄が背景などの絵柄に引きずられて変わってしまうという逆効果になりえる。

そして、SDXL など最新の分散モデル(を利用して作られた checkpoint のことだが)を使うと画像の品質が向上するという意味は、従来の SD 1.5 などではプロンプトなどで工夫しないと、よく知られているようにキャラの指が7本になったり、足が3本になったり、首が二つになったりすることが多い。特に指の描き方は貧弱であることが昔から知られていて、SDXL などでは何の対策もなしに指が5本として描かれる(頻度が高い)という利点がある。つまり、自然に妥当な範囲の絵柄が出るわけなので、何枚も出力したり、出力した画像を inpaint で描画し直すといった余計な手間がかからないので、とりわけ仕事として画像を生成する場合には生産性が高くなるということだ。

そして、もう一つの意味としてトレーニングに利用しているデータ・セット(そして学習時間)が格段に増えているし、checkpoint のファイル・サイズも SD 1.5 の checkpoint の3倍ていどになっていることからも分かるように、パラメータの数が増えている。要するに数多くのプロンプトに対応して、細かい指定だとか描き分けができる可能性が高くなる。これは SD 1.5 だとひたすら大量の画像を出力して、たまたま的確な構図やポーズや表情や背景などが揃った画像として出力されることを期待するしかない。inpaint で後から修正できるとは言っても、それには精度として限界があるからだ(inpaint は特定の箇所に描かれたものを描き直すわけだが、「特定の箇所」を正確に置き換えてくれるわけではなく、置き換えた場所の周囲は画質が落ちるというトレード・オフがある)。ただ、現実に SDXL のようなデータ・セットでなければ「何を」正確に描けないのかということは、実はさほど明確ではない。日本の社会科学者のように、どうでもいいことを詳細に分類してるだけという可能性もあるからだ。

というわけで、SD 1.5 以降の分散モデルにアドバンテージがあることは事実だが、それは僕の環境と用途においては大して重要なことではないし、僕のプロンプトの技量でカバーできるていどの差でしかないと思う。そのあたりは、まぁ簡単に言えば英語ができるかどうかの差になってくる。日本のユーザで思い通りにならないとあれこれ文句を言ってる人の大半は、こう書くと身も蓋もないが英語の勉強をした方がいい。

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

冒頭に戻る


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

Twitter Facebook