LECO

Last-modified: 2025-06-15 (日) 19:18:10

概要

LECOとは

https://github.com/p1atdev/LECO

Low-rank adaptation for Erasing COncepts from diffusion models.
LoRAメソッドの一つ。事前学習モデルのプロンプトを強めたり、弱めたりできる。

具体的な仕組みとしては、事前学習モデルの持つ任意のワードにピンポイントで働きかけて
そのニュアンスや方向性、他のワードとの関係性のみを変化させる。要はプロンプトの解釈に限定した補習。

既存の学習方式との違い

LoRAとの違い

Textual Inversionとの違い

導入方法

配布元の説明を参照。
https://github.com/p1atdev/LECO

スペック要件

  • 学習
    • 公式推奨VRAM8GB以上
  • 学習データの使用
    従来のLoRAを動かす環境があればOKです。

導入手順

学習方法

学習用の設定ファイルのうち、prompts.yamlの各項目についてわかる範囲でまとめ。加筆・修正求む。

prompts.yaml

項目備考
- target: "文字列"LECOの対象となる要素を指定する。
positive: "文字列"targetから遠ざけたい要素を指定する。空白の場合、targetの文字列が代入される。
カンマを挟んだ複数ワードの列挙だけでなく、長文で記述しても有効。
これをプロンプトとして仮の教師画像が生成される。(多分)
unconditional: "文字列"positiveに引っ張られたくない(元の相関性を維持したい)要素を指定する。
いわゆる「プロンプトに引きずられる」を軽減ないし防止するための項目で、
役割としては正則化画像に相当する。
neutral: "文字列"targetに対する原点となる要素を指定する。
LECOはtargetをpositiveから遠ざけてneutralに近づけようとするが、
通常はこれが空白となっているため、無に近づける=結果的に概念が消去される
という仕組み。
action: "erase"erase、enhanceのどちらかを指定する。
eraseの場合は消去、enhanceの場合は付与になる。
guidance_scale: 1.0要素に対するLECOの作用倍率。
要素ごとの元々の利き具合が乗算されるため、適性値はまちまち。
resolution: 512内部生成される仮の教師画像の解像度。
dynamic_resolution: false通常はfalse。上で指定したresolutionの値をランダム化する機能。
trueの場合、resolutionの値を100%とした一定範囲内で変動する。(多分)
batch_size: 2仮の教師画像の同時処理数。

なお、ここでの近づける、遠ざけるという表現はすべてeraseを前提とした表現であり、
enhanceで学習させる場合は方向性が逆転します。

学習データの使い方

LoRAと同じように使う事で拡散モデルから概念を消去する。要するにその概念が出にくくなる。
消去効果なので、マイナスで使うと反対にその学習された内容が出やすくなる。

大半のLECOは消去(erase)を目的として作成されているものの、
稀に概念の変化や付与(enhance)を目的として作成されているものも存在する。
どちらもプラスとマイナス両対応で正常動作してしまうため、説明書きがあったら事前に読むことをオススメします。

参考文献

コメント・指摘・助言

  • 素材不要なのでめっちゃお手軽で楽しい -- 2023-07-23 (日) 15:18:56
  • 調整の余地がパラメータだけなのである意味LoRa以上にブラックボックスだけどお手軽で楽しいね…元々ある概念だからか重ね掛けしても崩壊しにくいのもいい -- 2023-08-02 (水) 22:44:05
  • 設定はそうゆう意味だったか。理解が曖昧だったから助かる -- 2024-01-11 (木) 17:35:25
  • 特に身体系の単語を含むタグを強調するとそのパーツのドアップになりやすい。例えばarms behind headを強調しようとするなら、arms,headをunconditionalに入れるといい。またdanbooruタグを入れる場合はより軽減効果が高い…が、大抵近辺のタグをしらみ潰しにすることに。 -- 2024-02-04 (日) 03:05:18

(Tips)

  • 既存コメントの先頭にあるラジオボタンをONにすると、そのコメントの下にぶら下げ返信する形になる(ツリー構造)。
  • コメントの文中で↵ボタン(下の画像参照)を押すと「&br;」の文字列が挿入される。これは送信後に改行として機能するので、文章の整形に役立つ。
    br.png