Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Anima LoRA Style Bridge

SD 1.5 / SDXL向けLoRAの画風を、Anima LoRAとして再利用するための 実験的な重み橋渡しツールです。

Warning

このツールは異なるモデル構造間で重みを近似移植します。元LoRAの見た目や 挙動を完全に再現するものではありません。変換結果は必ず手元で確認してください。

特徴

  • ソース側のTransformerブロックをAnimaの全28ブロックへ線形補間
  • 同じ出力層へ集約される低ランク差分を、上書きせず重み付きで合成
  • 合成後の差分を指定ランクへ圧縮し、Frobeniusノルムを保持
  • float16float32bfloat16出力
  • ペア活性値から求めたProcrustes / CCA射影を任意で利用可能(動作未確認)

必要環境

  • Python 3.9以降
  • PyTorch
  • NumPy
  • safetensors(Pythonライブラリ)

インストール

python -m venv .venv
.\.venv\Scripts\activate
python -m pip install .

開発用ツールも含める場合:

python -m pip install -e ".[dev]"

使い方

基本変換

anima-style-bridge convert input.safetensors -o output.safetensors

convertは省略できます。

anima-style-bridge input.safetensors

出力先を省略すると、入力ファイルと同じ場所ではなく現在のディレクトリに <入力名>_anima_style.safetensorsを作成します。

主なオプション:

--rank N            出力ランク(既定値: 16)
--dtype TYPE        float16 / float32 / bfloat16(既定値: float16)
--calibration FILE  学習済み射影を格納したNPZ

出力の検証

anima-style-bridge validate output.safetensors

LoRAペアの有無、ランク、Anima層の入出力次元を検査します。

射影のキャリブレーション

Caution

Procrustes / CCA射影を利用するキャリブレーション機能は、実モデルでは 動作未確認です。

同じサンプルに対するソースモデルとターゲットモデルの活性値をNPZへ保存します。

<name>.source = [samples, source_dim]
<name>.target = [samples, target_dim]

変換時には、次の順で射影名を検索します。

<layer>.<side>.projection
<side>.<source_dim>x<target_dim>.projection

sideinまたはoutです。例:

self_attn.q_proj.in.projection
in.320x2048.projection

射影を作成して変換に使う例:

anima-style-bridge fit-calibration activations.npz -o anima_alignment.npz
anima-style-bridge convert input.safetensors --calibration anima_alignment.npz

--methodにはprocrustes(既定値)またはccaを指定できます。 キャリブレーションを省略した場合は、決定的な線形リサンプリングを使用します。

対応する入力キー

Diffusers形式とSGM形式のSD 1.5 / SDXL Transformer LoRAキーを扱います。 AttentionのQ/K/V/出力射影と、Feed Forward層を変換対象とします。 未対応のキーはスキップされ、処理後に件数を表示します。

開発

python -m unittest discover -s tests -v

セキュリティと配布

モデルファイル、キャリブレーションデータ、変換済みファイルはリポジトリへ 含めないでください。このリポジトリの.gitignoreでは、*.safetensors*.npzを既定で除外しています。

ライセンス

MIT License

About

SD系LoRAをAnima LoRAへスタイルを橋渡しする実験的ツール

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages