【AI男の娘イラスト】LyCORISモデルの層別適用の紹介 (Pixiv Fanbox)
Content
1.はじめに
以前の記事では、LoRAモデルの層別適用を使って、デフォルトの画風をなるべく保ちながらLoRAモデルを適用する方法をお伝えしました。
【AI男の娘イラスト】LoRAモデルの層別適用の紹介
1.はじめに 以前の記事では、LoRAモデルを適用することで、男の娘画像が生成されやすくなることをお伝えしました。 しかし、この方法には副作用と言えるものがあります。 単純に男の娘画像が生成されやすくなるのではなく、そのLoRAモデルの学習に使ったであろう教師データの特徴(絵柄や構図など)に寄った形で生成され...
現在では、LoRAの発展としてLoConやLoHaなど(LyCORISという名前のプロジェクトに内包されている)があり、それらのモデルも公開されるようになってきました。
これにより、キャラや画風などを更に再現できるようになっています。
ただし、そのモデルをWebUIで使うためには、拡張機能が追加で必要です。
また、層別適用をする場合は、LoRAの時とは別の指定方法をする必要性があります。
その為、WebUIでのLyCORISモデルの使い方を、この記事で紹介していきます。
題材としては、上のハッカドール3号くんの再現を扱います。
なお、もちろんNSFW画像がターゲットです。
2. 準備
# Stable Diffusion checkpoint
※この記事ではこのモデルを使っていますが、このモデルを必須で使わなくてはいけない訳ではありません。
# Textual Inversion
# LoRA
# LyCORIS
LyCORISモデルのファイルは、「{WebUIのインストール場所}\stable-diffusion-webui\models\LyCORIS」に配置します。
# Extension
拡張機能「a1111-sd-webui-lycoris」をインストールすることで、LyCORISモデルを使用できるようになります。
3. 生成
1. WebUI起動後に、花札のような赤いアイコンをクリックし、LyCORISのタブから「hackaDollNo3FromHacka_v10」を選択します。(表示されない場合は、RefreshボタンやWebUIの再起動を試してください。)
2. プロンプト等を設定していきます。例えば、次のものです。(この段階ではLoRAとほぼ変わらず、強調表現のみを使っています)
[Prompt]
masterpiece, best quality, absurdres, cute, extremely detailed face, perfect lighting,
hacka doll 3, femboi, solo,
squatting, spread legs,
very long hair, blue hair, heart purple eyes, hair ornament, headphone, bare shoulders, black camisole, strap slip, bottomless, (small penis:1.1), testicles, white glove
※公式サイトのプロンプトをNSFW用に多少改変したものです。
[Negative prompt]
(worst quality, low quality:1.6), (anatomical nonsense, uncoordinated body, unnatural body, extra arms, extra hands, extra nipplees, extra anuses), (abs, adult, mature female, middle age, milf, wide hip, woman, mother, mutated, fat, long body), (flat color, flat shading, lowres, gross proportions , jpeg artifacts, blurry, error, out of focus), (rock, logo, signature, text, tittle, gly, username, watermark), (dusty sunbeams, trembling, motion lines, motion blur, emphasis lines), (2koma, 3koma, 4koma, black and white, censored, monochrome, grayscale, comic, cropped, cross section, panel layout), (badhandv4), (badv5), (sketch by bad-artist:1.0), (hetero, pussy, vaginal, cameltoe, breasts, covering:1.4)
※公式サイトのネガティブプロンプトに、特定のタグ「(hetero, pussy, vaginal, cameltoe, breasts, covering:1.4)」を追加しています。
# 生成画像
SFW用ならこれでOKな気がします。
ただ、NSFW用の場合は、色々と試してみましたが、局部の安定性に欠けています。
その為、「」(LoRAモデルの層別適用の記事で解説)を重ねて使います。
また、LyCORISモデルの方も、画風の変化をなるべく抑える為に層別適用していきます。
3. LoRAモデルの方では各層の使用加減(Weights)の設定をしましたが、同じようにLyCORISモデルの方でも設定します。
[Weights setting項目での追記内容]
LC-A:0,0,0,0,0,0,1,0,1,1,0,0,0,0,1,0,0,1,1,1,1,0,0,0,0,0
LC-NP:1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0
※LoRAとLyCORISでは層の数が違います。その為、その違いに合わせてLoRA用の設定をLyCORIS用に変換しています。
[参考記事]
4. そして、プロンプトでLyCORIS用タグを入力する際には、LoRAとは別の指定方法で書きます。
[LyCORIS用タグでの指定方法]
※例:
※te引数:テキストエンコーダーの重み(0~1)。
※unet引数:UNetの重み(0~1)。この値が指定されない場合、teと同じ値が使用されます。
※dyn引数:DyLoRAを使用する際に利用する行数(0以上の整数)。0に設定すると、DyLoRAは無効になります。
※他にも指定方法があるとのことですが、ここでは省略します。
正直、自分はこの引数の部分を理解していません。
その為、強調表現で使いたい数値(例:0.7)をte引数とunet引数に設定し、dyn引数は数を変えてみながら試しています。
あくまで一例ですが、このような感じになりました。
# dyn=0
→あまり効いているようには見えない。
# dyn=8
→大まかには効いてきた。
# dyn=16
→前のよりも効いてきたかな?
# dyn=26
→効いている。(26はLyCORISの階層数)
# dyn=32
→ほぼ上と同じ?
# dyn=48
→前のよりも効いてきたかな?
# dyn=64
→dyn=32の結果に戻った?
4. おわりに
以前の記事でも書きましたが、層別適用は大沼です。
複数適用ともなると、それこそ底なし沼にさえ思えます。
ただ、キャラ(特に版権キャラ)の統一性と局部の安定性を両立させるためには、避けては通れない道のようです。
愛が試されます。
(おわり)