最近の記事

StableDiffusionのLoRAでLoRA+を試す

はじめにLoRA+と呼ばれる新しい手法が提案されました。 arxivの論文によると、最大で二倍の収束の高速化と1~2%の計算速度の改善が期待できるようです。 LoRAとLoRA+の簡単な解説 LoRAはウェイトをAとBの二つの行列に分解してから学習することでメモリ消費量を激減させています。 しかし、AとBで同じLRを使用しており、学習の効率が悪いとのことです。そこで、AとBで異なるLRを適用することで、効率改善を図ります。 これにより、最大で二倍の学習高速化と1~2%の計

    • StableDiffusionのLoRAのOptimizerの速度比較

      どのOptimizerが学習が最も速いか比較。 簡易的な比較である上、人によって理想の成果が異なるため参考程度にとどめてください。 Lossの降下で比較(SD1.5)Optimizerの種類については画像左下の凡例を確認してください。 wd●●はweight_decayの値を示します。 設定など 512x512(SD1.5),画像6枚,Batch size3 AdamW,LionのLRは0.0001、DAdaptLion(betas=0.9,0.999,eps=1e-0

      • SDXL LoRAのDim(Rank)の比較

        ※rentryから移植したものです。 1でいいという人もいれば16じゃないと微妙っていう人もいるようです。 気になったのでdim1~16で比較してみます。 ずんだもんはd1でも思ったほどの劣化はないようだ。d1は画風の影響が減少? Seed:22222の8以下はキャラが混ざっている(外れシードと化した)。dimが低いほど衣装を間違えやすい? 2以下で劣化が目立つように見える。 Animagine-XL-3.0の既知のキャラでやってみた。d2以下で画風の影響が減るがヘイ

        • SDXL LoRAの階層の比較

          LoRAを適用すると意図せず画風が変化することがあります。 画風変化を減らすためにLoRA Block WeightやSupermergerで特定の層の強度を0にします。その時どの層を切ればよいかの簡単な比較です。 SDXLのUNetの階層について ※解説記事によって階層の説明が異なるため正確でない可能性があります。 SDXLはIN04,05,07,08,MID,OUT00-05に影響力の大きいAttention(Transformer)があります。 SDXLのU-Net

        StableDiffusionのLoRAでLoRA+を試す

          AnimagineとPonyのLoRAで画風変化を減らす試み

          Animagine-XL-3.XやPonyDiffusionV6XLで学習したLoRAを適用すると画風が変化することがあります。 これを減らすべくベースモデルの画風を調整してみました。 ベースモデルの画風調整AnimagineもPonyも作者好みの画風に調整されており、画風が一般的なイラストとやや異なります。 LoRAはモデルとデータセットの差分を学習するもので、モデルと画風の差分があり学習してしまいます。LoRA適用中でもモデル本来の画風で生成してほしいですよね。 「じゃ

          AnimagineとPonyのLoRAで画風変化を減らす試み

          Stable DiffusionのLoRAのつくりかた

          はじめにこの記事は、初めてStable DiffusionのLoRAを作成する方に向けた解説です。わかりづらかったらすみません。 この解説ではSDXLベースのAnimagine-XL-3.1で二次元イラストのキャラクターのLoRAを作成します。 注意 すでにWebUIの環境構築と生成ができていて生成に慣れている前提のガイドとなります。 Windows向けのガイドです。 また、NVIDIAのGeForce RTXグラフィックボード(VRAM 8GB以上)が搭載された高性能な

          Stable DiffusionのLoRAのつくりかた

          SDXL LoRAのTextEncoderの有無の比較

          Stable Diffusion XLがまだ普及していない頃に、「SDXLはText Encoderが二つあり挙動がよくわかっていないためunetのみ推奨」とされていました。そういうことでTextEncoder(以降TE)の有無を比較します。 キャラクターLoRA学習コマンド(TE込み): accelerate launch --num_cpu_threads_per_process 1 sdxl_train_network.py --pretrained_model_n

          SDXL LoRAのTextEncoderの有無の比較

          sd-scriptsのLoRAのキャプションについて

          ※rentryのいろいろLoRA作成記録から移植したものです。 LoRA学習におけるdanbooruタグを用いたキャプションについて個人的な意見を記します。 ここではマルゼン式と呼ばれるタグをトリガーワードに集約する手法を使用しており集約する理由などについて解説します。 なお、SDXLでは集約しなくてもトリガーワードは十分機能します。 キャラクター先頭にキャラ名を追加します。Keep tokenは1。 タグを消す(集約する)理由 キャラを召喚するのにblonde ha

          sd-scriptsのLoRAのキャプションについて

          SDXLでDoRAを使ってみた

          ※この記事はrentryから移植したものです。今後はnoteに記録し、rentryは更新しません。 2024年2月にarxivにてWeight-Decomposed Low-Rank Adaptation(DoRA)と呼ばれるファインチューニング手法が発表されました。 これは、従来のLoRAがmagnitudeをファインチューンしていたのに対して、DoRAはdirectionをファインチューンすることで精度と安定性を改善するというものです。 論文発表後しばらくしてsd-s

          SDXLでDoRAを使ってみた

          sd-scirptsのScheduled Huber Lossの検証

          はじめにいろいろLoRA作成記録( https://rentry.co/irir_lora )の肥大化に伴いnoteに移植したものです。今後作成記録はnoteに掲載します。 kohya-ss氏作成のsd-scipts(https://github.com/kohya-ss/sd-scripts )の4月7日の更新でScheduled Huber Lossが実装されました。 これは、暴れやすい学習初期に品質がやや低いが異常値に強いHuber損失関数を使用し、後半に異常値に弱

          sd-scirptsのScheduled Huber Lossの検証