見出し画像

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

Animagine-XL-3.XやPonyDiffusionV6XLで学習したLoRAを適用すると画風が変化することがあります。
これを減らすべくベースモデルの画風を調整してみました。

ベースモデルの画風調整

AnimagineもPonyも作者好みの画風に調整されており、画風が一般的なイラストとやや異なります。
LoRAはモデルとデータセットの差分を学習するもので、モデルと画風の差分があり学習してしまいます。LoRA適用中でもモデル本来の画風で生成してほしいですよね。
「じゃあ学習してほしくない要素の差分をなくせばよくね?」ということでAnimagineとPonyの画風をDanbooru画像約4000枚で平均的な画風に調整しました。ちなみにDanbooru画像は新しい順に収集しました。二回学習とマージしました。
学習コマンド:

accelerate launch --num_cpu_threads_per_process 1 sdxl_train_network.py 
--pretrained_model_name_or_path "animagine-xl-3.1.safetensors" --train_data_dir "train data dir" --output_dir "aaaaa\sdxl" --network_module "lycoris.kohya" 
--network_args "algo=lora" "dora_wd=True" "conv_dim=1" "conv_alpha=0.25" --xformers --gradient_checkpointing --persistent_data_loader_workers 
--cache_latents --cache_latents_to_disk --max_data_loader_n_workers 1 --enable_bucket --save_model_as "safetensors" --lr_scheduler_num_cycles 4 
--mixed_precision "fp16" --learning_rate 0.00015 --resolution 1024 --train_batch_size 2 --max_train_epochs 1 --network_dim 8 --network_alpha 4 
--shuffle_caption --optimizer_type "Lion" --lr_warmup_steps 100 --output_name "generic_animagine31" --save_precision "fp16" 
--lr_scheduler "cosine_with_restarts" --min_bucket_reso 512 --max_bucket_reso 2048 --caption_extension ".txt" --seed 42 --network_train_unet_only 
--fp8_base --highvram --loss_type "smooth_l1" --huber_c 0.1 --huber_schedule "snr"

Before/After(Animagine-XL-3.1)

イメージ1
イメージ2
イメージ3

いわゆるマスピ絵が普通の絵になった。

LoRAの比較

ここからはLoRA学習のベースに使用した際の変化を比較します。

Animagine-XL-3.1

v4がAnimagineで学習、V4_gaが画風調整モデルで学習

暖色寄りになる現象が解消した。

暖色寄りになる現象が解消。

v4がAnimagineで学習、v5が画風調整モデルで学習

画風の変化を軽減。

PonyDiffusionV6XL

ponyがponyでgpが画風調整モデル

うーん微妙。やっぱポニーは癖強いわ

構図の変化が減少したように見える。

変化がわかりづらいので生成に使うcheckpointをebaraにして比較する。

???

構図の変化が減少したように見える。

Quality tags無し。構図の変化が減って微妙に青みがかる現象を解消。

まとめ

画風を平均的にしたモデルで学習すると期待通りの効果が得られました。

今回作成したモデル

LoRA学習向けです。推論用途ではあまり良い結果にならない可能性があります。
また、アニメ画風のキャラクター・シチュエーション向けであり、画風LoRAおよび実写風LoRAの作成には適していません。
Genimagine-XL:

GenePony


この記事が気に入ったらサポートをしてみませんか?