LoRa メモ

使用するもの
・画像編集ソフト(ClipStadioなど)
・tagger
・webui-dataset-tag-editor
https://github.com/toshiaki1729/stable-diffusion-webui-dataset-tag-editor
・captioning_helper
https://github.com/gnnsnzh/captioning_helper
・katanuki
https://github.com/aka7774/sd_katanuki

ブルアカのアキラのLoRaを例に説明する。

1.画像の加工

編集ソフトで余計なオブジェクトなどを消す。
katanukiなどを使って背景を消す。
背景を消す必要性について
必ずしも背景を消す必要はない。
同じような背景が多い場合や、正しくタグ付けされていない場合は余計な学習をしてしまう可能性がある。
自動での背景除去ツールは、必要なものも消されたり(ブルアカの場合ヘイローまで消される)、ノイズが多く残ったりするため、
そのまま使用した方がよいことも多々ある。

2.タグ付け

使用しているのはwd14-swinv2-v2
Exclude tagsにとりええずこれをつっ込んでる

virtual_youtuber,alternate_costume,official_alternate_costume

3.タグの整理

3-a.captioning_helperで不要タグ(重複概念のタグ)の削除、髪色、目の色の置換をする。
3-b.webui-dataset-tag-editorでまとめるタグの選定をした後、服に関連するタグを削除する。
また、頭のタグもある程度まとめる。ここはケースバイケース。
アキラの場合、衣装は"white cape, white shirt, white gloves, white pants, mask"にまとめることにした。
頭は、"white hair, long hair, cat ears"
3-d.画像ごとに写っているオブジェクトが異なるため、それぞれフォルダ分けをする。その後、captioning_helperでフォルダごとに要素のタグを加える。
※別衣装がある場合、タグが被らないように工夫する。
アキラの場合

white cape, white shirt, white gloves, white pants
white cape, white shirt, white gloves, white pants, mask
white cape, white shirt, white gloves, mask
white cape, white shirt, white gloves
white shirt, white gloves, white pants
white shirt, white gloves

img

4.繰り返し数の設定

繰り返し数を多くするデータ→より覚えさせたいもの。データ数が少ないが覚えさせる必要のあるもの。
繰り返し数を少なくするデータ→スケッチなど。データ数が十分にある場合など。
今回44枚のデータで学習をする。
正則化画像はランダムな1girlの画像

5_1girl→別衣装のデータ2枚
8_1girl→背景込みのデータ5枚
12_1girl→29枚の普通の衣装のデータ
16_1girl→仮面つきのデータ8枚

img

5.学習の設定

最適値は分からないのでとりあえず今使っている設定。(C3Lier)

解像度:512
batch size:32
--mixed_precision=bf16
--unet_lr=1e-4 --text_encoder_lr=5e-6
--network_dim=64 --network_alpha=32
--network_args "conv_dim=32" "conv_alpha=16"

6.生成結果

img
左から

ジャケットあり
ジャケットなし
仮面あり
学習データにない衣装

どうやらtaggerで付けられたmaskはNAIにとっては口の方のマスクになってしまうらしい。

7.トライ&エラー

7-a."mask"タグを"eye mask"に変更して再学習
img
学習するようにはなったがそもそもeye maskの概念が定まってないのか、データも少ないため精度が低い。

7-b.mixed_precisionをnoにして再学習
bf16での学習時より精度が上がったけど、なんか土偶みたい…
img

7-c.データセットの修正
データセットを確認すると仮面の形が不定形で描かれてることに気づいた。
それが原因だと仮定して、データセットを再度整理し加筆修正した蒸留データを加えて学習することにした。
img
7-d.生成結果
かなり正しい形に近づいたので今回はこれをfixにする。
img

8.Multi resolution noiseの検証

とりあえずの設定

--multires_noise_iterations=6 --multires_noise_discount=0.1

左がMulti resolution noiseあり、右がなし。他は同条件での学習、同seed値での比較
1回だけでの比較では分からないので参考程度に。
Multi resolution noiseありの方がベルトの再現の成功率が高い。
ポートレートの方では袖が消えたりしているが、仮面の造形はありの方が精度が高いかも。
なんかMulti resolution noiseありの方は全体的に明るい。
img
img

Edit Report
Pub: 03 May 2023 12:33 UTC
Views: 154