AUTOMATIC1111 Web UI の Clip skip とは何か
カテゴリ:deeplearning
Stable Diffusion 1.x で使われている CLIP
Stable Diffusion 1.x で使われている CLIP は 12 層からなるモデルだ。層が深くなるにつれて複雑な概念を表現する。実際は違うが、例えば1層は person、2層は man, woman, boy, girl 3層は father, mother など。つまり層が深いほどプロンプトの複雑な概念を拾える。
Clip skip
Clip skip は CLIP 層のどこで止めるかを指定する。Clip skip1は全ての層を通過する。Clip skip2は最後の1層をスキップする。Clip skip3は最後の2層をスキップ(つまり 10 層通過)する。
Clip skip は danbooru タグで学習されたモデルで使うことを想定されている。danbooru タグは構造化されており、1girl や solo のようなメジャータグはマイナータグの影響を受けてしまう。1girl や solo のようなタグはあらゆる画像についているので、それ自身のタグ以外の概念を多く学習してしまっている。Clip skip を設定することで、より後ろの層で評価されるマイナータグの影響力を小さくすることができる。
具体的には、プロンプトに pubic tattoo を指定すると pubic hair が現れる場合、Clip skip を2以上に設定することで pubic hair の影響を除去できる。
注意点
複雑なプロンプトで Clip skip を大きくするとプロンプトが単純化されてしまう。
Stable Diffusion 2.x のモデルは OpenCLIP を使っているので、Clip skip は無視される。Stable Diffusion XL でも Clip Skip は無視される。