#contents
*概要 [#m3c40dab]
**LECOとは [#jd78a5d9]
https://github.com/p1atdev/LECO

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

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

**既存の学習方式との違い [#n9389971]
LoRAとの違い
-教師画像は使わない。(事前学習モデルを用い、VRAM上に仮の教師画像を都度生成する)
-

Textual Inversionとの違い
-より特定のプロンプトに特化した強弱調整ができる。

*導入方法 [#ofbffc8f]
配布元の説明を参照。
https://github.com/p1atdev/LECO

**スペック要件 [#dea55a97]

-学習
--公式推奨VRAM8GB以上

-学習データの使用
従来のLoRAを動かす環境があればOKです。

**導入手順 [#b3f8a429]
*学習方法 [#r46e03e8]
学習用の設定ファイルのうち、prompts.yamlの各項目についてわかる範囲でまとめ。加筆・修正求む。

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

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

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

*参考文献 [#ca173498]

*コメント・指摘・助言 [#gb37f4e4]
#pcomment(,4,reply)
>(Tips)
-既存コメントの先頭にあるラジオボタンをONにすると、そのコメントの下にぶら下げ返信する形になる(ツリー構造)。
-コメントの文中で↵ボタン(下の画像参照)を押すと「&br&#59;」の文字列が挿入される。これは送信後に改行として機能するので、文章の整形に役立つ。
&ref(wikiwiki編集のコツ/br.png,around,50%);