Clip Skipとは
Clip Skipは、Stable Diffusion(1.xモデル)のテキスト埋め込み層であるCLIPモデル(1.xモデルに存在)の一部のレイヤー(層)を生成過程でスキップする機能です。これにより、画像のレンダリングも速くなり、ユニークで素早く生成される画像が得られます。Stable DiffusionのCLIPモデルは異なる情報を含む12の層から構成されており、各層は前の層よりも具体的な情報を持っています。そして、プロンプトの基本的な理解からより具体的な詳細まで、生成される画像に順番に詳細を追加していきます。たとえば、第1層が「人物」を表す場合、第2層は「男性」と「女性」を区別し、さらに詳細な層では「男性」のカテゴリー内でさらに細分化されるという具合です。
Clip Skipの機能と目的
Clip Skipを使用すると、CLIPモデルの特定の層で処理を停止することができ、生成される画像の最終出力に影響を与えることができます。例えば、「牛」の画像を生成する場合、CLIPモデルが持つ「牛」のサブカテゴリーに関する情報は必要ないかもしれません。そのため、特定の層で処理を停止することで、より一般的な「牛」の画像が得られます。
Clip Skipの使用法
Clip Skipは、「テキストモデルの精度をどの程度にするか」を設定するために使用されます。異なるClip Skipステージでは、説明の定義がより詳細になります。例えば、詳細なプロンプトで「若い男性が野原に立っている」という画像を生成する場合、低いClip Skipステージでは「立っている男性」の画像が得られ、より深いステージでは「野原に立っている若い男性」のように具体的な画像が得られます。
Clip skipをWebUIで使えるようにする方法
Clip Skipですが、Stable Diffusion WebUI(AUTOMATIC1111)のデフォルト設定では使えないようになっています。
下記の手順でClip Skipの設定を使えるように設定できます。
まず、①settingタブに②user interfaceという項目があります。その中に③Quicksettings listという項目があり、そこをクリックするとリストが出てくるので、「CLIP_stop_at_last_layers」を選択します。④Apply settingsを押し、⑤Reload UIを押すとセッティング完了です。
上記の設定を完了すると次のようにClip skipのボタンが表示されるようになります。
Clip Skipの設定方法
Clip Skipの設定は、「この数だけ下部の層をスキップする」という意味です。例えば、CLIPが12層あるSD1.xモデルでClip Skipを2に設定すると、10層目で処理が停止します。11層目と12層目は1~10層目よりもかなり詳しい(細かい)情報を持っているので、それを除くことになるので生成される画像にも変化が現れることになります。
また、一部のベースモデルでは、初期レイヤーが望まないノイズを追加するため、それをスキップすると良い結果が得られます。
層をスキップすることが画像生成にどのように影響するか
層をスキップすることが画像生成にどのように影響するかを観察するために、さまざまなClip Skip値(例えば、1、2、3、4など)で試してみました。
眼鏡をかけた白いセーターを着た女の子がこちらを見ているという内容のプロンプトで画像生成してみました。
Clip Skip値が高い(例えば4)と、元のプロンプトから逸脱した画像が生成されることが観察されましたが、低い値(例えば1または2)ではプロンプトに忠実な画像が生成されました。
もう少し複雑なプロンプト(Loraも使用しています)でも試してみます。
先ほどの例と同様に、Clip Skip値が、低い値(例えば1または2)ではプロンプトに忠実な画像が生成されました。
Clip Skipの推奨値
プロンプトに忠実な画像を得るために、低いClip Skip値(例えば1、2など)の使用をおすすめします。画像生成プロセスを効果的に導くためには、プロンプトを具体的で明確にすることが重要です。
モデルとの相互作用
Clip Skipは、CLIPを使用するモデル、またはCLIPを使用するモデルに基づいている1.xモデルとその派生モデルでのみ機能します。2.0モデルとその派生モデルはOpenCLIPを使用するため、CLIPとは相互作用しません。
Clip Skipの使用における注意点
抽象度: Clip Skipの値が高いほど、生成される画像は抽象的になります。
モデルとの互換性: 一部のcheckpointでは、高いClip Skip値を使用すると適切に機能しない場合があります。
スキップ数: 1か2をスキップすると良い結果が得られますが、それ以上になると、低誘導の画像のようになります。
互換性: 他の技術、例えばLoRAsとの併用時には予測不能な結果が生じることがあります。
Classifier-free guidance (CFG)とClip Skipの違い
CFG(Classifier-free guidance)は、AIがモデル内でどのようにナビゲートするかを決定しますが、Clip Skipはどのレイヤーをスキップするかを決定します。CFGはプロンプトの特定性を制御するもので、理論的にはその値が高いほど、AIはプロンプトに忠実な結果を生成します。CFGはモデルの構造には関係なく、ナビゲートの仕方にのみ影響します。
まとめ
Clip Skipは、Stable Diffusionで画像の詳細レベルとプロンプトへの忠実さをコントロールするための強力なツールです。各層が最終画像にどのように貢献するかを理解することで、ユーザーはClip Skip機能を望ましい結果を得るためにより効果的に利用できます。