Clip skip

Last-modified: 2024-04-29 (月) 17:22:45

概要

  • CLIPの後半(だいたい最後)の処理をスキップすることで、完成画像の品質向上を試みる行為。
  • プロンプトの指示を詳細化する事前処理の最後の部分を「そこまで詳しい言葉で設計しなくていい」と打ち切る。
  • 「詳しく再現しない」と「結果が改善する」はイコールではないが、二次絵かつSD1.x系ユーザーの多くは好んで実施している。
    • 関連スレではClip skip=2の方が良いという報告が多数で、デフォルトのClip skip=1で良いと主張する人は稀。
    • リアル絵じゃないから最後の詳細化は過剰…か…?みたいな経験則である。モデル側でskip=2等指定あればそれに従う。
  • 基本的にSD1.x時代の小技で、SD2.0とSDXLでは別の技術(OpenCLIP)を使っているためClip skipの効果なし。

Stable Diffusion web UIにおける解説

CLIPの最後の層を除外して、画像生成する行為。除外する層数を整数で指示する*1

sd-scriptsにおける解説

Stable DiffusionではCLIPの最後の層の出力を用いていますが、それを最後から二番目の層の出力を用いるよう変更できます。NovelAIによると、これによってさらに正確にプロンプトが反映されるようになるとのことです。 元のまま、最後の層の出力を用いることも可能です。
Stable Diffusion 2.0では最後から二番目の層をデフォルトで使います。clip_skipオプションを指定しないでください。*2

よくある質問

そもそもClip skipの設定項目がないです

Stable Diffusion web UI(1111)

概要にもある通り、変更需要はSD1.xモデルのみのため隠し項目になっている。Settingsから追加する。

  • 上部Settings → 左端User interface → Quicksettings list項目に行く
  • 空欄の既存項目を避けつつ一番後ろに CLIP_stop_at_last_layers をコピペ+Enterする、か、リストから目視選択
  • 右上あたりの「Reload UI」ボタンを押す
  • 通常生成画面の上のほうにClip skipの項目が追加されている

Clip skipの値はいくつがオススメ?

Stable Diffusion web UINovel AI

NovelAIでも実績のあるskip=2の利用者が多い。二次元美少女と相性いいんじゃね?とも言われている。
一方で、最後まで描き切るskip=1は手指など比較的良いのではないか…等の理由から1派も少なくない。
効果はモデルがどのClip skip値で学習されていたかに依るので、各モデルの推奨の値にするのがベター。
無かったら1で。不満が出たら2で。どうしても気になるならX/Y/Z plotClip skipに1,2を指定して両方生成。
LoRA使用時は2がいいとか、LCM_LoRAはskip=1のままのほうが崩壊しないとか、いろいろ話はあるらしい。

文字通り仕上げの話で、こだわれば良くなるものではないため、推奨値がないなら他の要素に時間を割いた方がいいかも。

外部リンク