AIイラスト 呪術師 vs 調整職人 vs 絵師 【Stable-Diffusion-WebUI】

この記事はStableDiffusion-webuiを触った個人的感触を書いたものです。

はじめに

なにもStableDiffusionに望みの絵を描いてもらう方法は1つではない。

一発で至高の1枚を描けるプロンプトを探す呪術師、ガチャとパラメータ修正を繰り返して理想に近づけていく調整職人、自ら描く絵の補佐を頼む絵師。

これらの3種類の描き方を紹介していく。

 

呪術師

StableDiffusion-webuiでは、正の意味をもつプロンプトと、負の意味をもつネガティブプロンプトをそれぞれ75トークンほど指示することができる。(トークンは単語とほぼ同じ)

そして、プロンプトは意味ベクトルとなり、描くものを決めていく。ここで大事なのはベクトルであるということだ。つまり、意味上の加算・減算ができる。例えば"花" - ”赤" = "赤以外の花"だ。

次に大事なのは、トークン(単語)の意味は辞書的で単一なものではないということだ。辞書でなければ何なのかというと、その単語が(学習時に)よく用いられる状況的な意味を指している。簡単に言うと、AIは偏見がすごく、単語に多くの意味を持っている。例えば"日本"→"和装・神社仏閣""テロリスト"→"中東人""水着"→”プール”, といったようにステレオタイプと拡大解釈に溢れている。

そして、プロンプトが呪文と呼ばれる由縁になっているのは、トークン(単語)に人間が知らない意味を見出していることがあるからだ。呪術師の間では、"high detailed"や、"4k 8k""masterpiece" などといった極めて主観的なプロンプトが使われている。AIは、人間が高精細と判断したり、傑作と呼ぶ作品に画像的な共通点を見出している。

これらのプロンプトに関する特徴を組み合わせ、長大なプロンプトを書き上げていくのが呪術師のやり方だ。

簡単な例はこんな感じ

プロンプト:「傑作、水着少女

ネガティブ:「低クオリティ、プール」

 

プロンプト以外にも重要な項目が2つあるので記しておきたい。

縦横比と、CFG Scaleだ。

縦横比は、文字通り生成画像のアスペクト比である。正方形のままだと、頭部が見切れてしまうことがよくある。この場合、縦長にすると改善することが多い。重要なのは、縦横比が異なれば生成する画像の趣向も変わるということだ。縦長だと立ち絵で、横長だと複数人出たり、足を伸ばした構図になったりする。

CFG Scaleclassifier-free guidance scale)は画像生成でどれだけプロンプトに従うかという説明がなされるが、基本的には5~15の範囲内で動かす必要はない。感覚的にはプロンプトが短いならばCFGも小さめのほうが柔軟で、長いプロンプトならCFGを高めにしないと言うことを聞いてくれない。逆に、CFGが低すぎるとカオスで印象派の絵画っぽくなり、CFGが高すぎると極彩色でAI特有の色収差風なものが現れる。

 

調整職人

StableDiffusion-webuiではテキストから画像を生成するだけでも様々なパラメータを調整できるし、それ以外にも、様々な機能が備わっている。プロンプトはほどほどに、パラメータ調整とランダム性を活用することで、より多彩で意外性のある生成をすることができる。

img2imgでは、画像とプロンプトから画像を生成することができる。この機能の主な使い方は、バリエーション生成か構図指定だ。

バリエーション生成は、txt2imgかimg2imgで生成した画像を入力画像とすることで、微妙な変化をもたらす使い方だ。この際重要なのは、入力画像を生成するのに使った設定を引き継ぐことと、Denoising strengthの値だ。プロンプトや設定が大きく異なると、色彩と形が似ていても全く別のものが生成されたりする。プロンプトに数トークン追加する程度なら大丈夫。そして、Denoising strengthは入力画像にどれだけ近づけないかを指定できる。0.5でほとんど同じ、1で全く別物なので、0.65~0.8ほどでガチャを繰り返すことになる。生成された画像を、さらに入力画像とするといったことを繰り返していく。

構図指定は、バリエーション生成の逆で、プロンプトを一致させない使い方だ。構図の入力は落書きレベルでよい。重要なのは、なにを描いているのか上手くプロンプトでAIに説明することだ。Denoising strengthは高めにする。背景が単色になりがちなのが難しい。

inpaint/outpaintingは、それぞれ細部調整と画角調整に使われる。ただし、こちらを使った結果は不自然なものになりやすく、結果をimg2imgで再描画するとよい。

inpaintは、指定箇所のみを再描画する。設定は元画像と同じでよい。主な用途としては余計なものを消すか、別のものに変えてもらうことだ。手指の修正をこれでやるのは難しい。

outpaintingは、主に見切れてしまった頭部の補完に使う。基本的にわかりやすい境界が拡張部にできてしまうので、inpaintで消してimg2imgで再描画するといった流れになる。

以上のように、調整職人は数多くのガチャを回し続けることになる。重要なのは、プロンプトで伝わりきらない意味を、入力画像とシード値で伝えるということだ。(プロンプトが少々異なっても、同じシード値であればAIの魂が似ていることに気づくだろう)

 

絵師

これまで紹介してきた呪術師や調整職人は、基本的に自ら線を描かない。呪術師や調整職人が行う方法と、自らが描く絵を組み合わせるのが絵師のやり方だ。

絵師は、主にimg2imgを使う。ラフ画を読み込ませ、塗りを担当してもらうケースが多い。AIの一番の得意分野が、実写レベルまで可能な塗りだからだ。塗ってもらった絵に絵師が更に線を加え、さらに再描画してもらうといったように、AIとの対話作業を行うことになる。

逆に、AIにラフだけ描いてもらったり、背景だけ用意してもらうといったことも可能だ。