自作背景LoRAを作ってみた話
こんにちは、Cyphiaです。今回は自分の絵で背景LoRAを作ってみたのでそれを紹介します。
作成方法
学習にはCivitai.comのをLoRA作成サービスを利用しました。自分のPCの計算能力が不足しているのが主な理由です。
このサービスの使い方は、まず作りたいLoRAのモデルタイプをCharactter, Style, Concept の中から選びます。今回はStyleを選択しました。次に学習に使う画像群をアップロードし、それにキャプション(タグ)を設定してデータセット化します。最後に学習のためのパラメータを決めて学習を開始したらあとは待つだけです。
Civitaiの公式ドキュメントに詳細な解説があるのでもっと知りたい方はこちらをチェックしてみてください↓
(https://education.civitai.com/using-civitai-the-on-site-lora-trainer/)
学習パラメータ
{
"unetLR": 0.0005,
"clipSkip": 1,
"loraType": "lora",
"keepTokens": 0,
"networkDim": 32,
"numRepeats": 5,
"resolution": 768,
"lrScheduler": "cosine_with_restarts",
"minSnrGamma": 5,
"noiseOffset": 0.1,
"targetSteps": 625,
"enableBucket": true,
"networkAlpha": 16,
"optimizerType": "AdamW8Bit",
"textEncoderLR": 0.00005,
"maxTrainEpochs": 25,
"shuffleCaption": false,
"trainBatchSize": 8,
"flipAugmentation": true,
"lrSchedulerNumCycles": 3
}
データセット
学習に使った画像はこんな感じで、風景画を中心に自分のイラストを集めたものです。
学習に使う際の解像度は768 x 768 pxで、正方形にするため&画像の枚数を増やすためにトリミングしたり色調を変えたりしています。なのでもともとの枚数は20枚で、それをトリミングなどによって40枚にしてあります。また、学習のときのオプションでFrip Augmentation を有効化しているので実際にはもっと枚数が増えているはずです。
キャプションは自動的な検出システムでタグ付けした後、それを目視で確認・修正を行いました。また、全画像に共通してoil paintingのタグを追加しました。私の絵を一貫したスタイルとして学習させる狙いがあり、実質的なトリガーワードとして機能することを期待しています(ただ私は専門的な知識を持っているわけではないので、実際に効果があるかは不明です)。
生成した画像
自作LoRAを使って生成した画像をいくつかお見せします。画像の下にある数値はLoRAの適用強度で、値が大きくなるほどLoRAの影響が強いことを示しています。それ以外のあらゆるパラメータはそれぞれのモチーフ内で同一条件にしてあります。使用したモデルはSD1.5ベースのマージモデルです。
※LoRAは単独で機能するわけではなく、画像生成AIモデルに対して出力を調整する役割を持ちます。
生成条件
Prompt
・watermelon
(masterpiece, highly detailed, oil painting:1.0) (pastel colors:1.0) (river, watermelon:1.1) (rim lighting:0.7) (hyper detailed:0.6) <lora:Cyphias_Landscape:n>
・ruins
(masterpiece, highly detailed, oil painting:1.0) (pastel colors:1.0) (forest, ruins, building, plant:1.1) (rim lighting:0.7) (hyper detailed:0.6) <lora:Cyphias_Landscape:n>
・canyon
(masterpiece, highly detailed, oil painting:1.0) (pastel colors:1.0) (deep canyon, sunset, warm color, rocky landscape:1.1) (rim lighting:0.7) (hyper detailed:0.6) <lora:Cyphias_Landscape:n>
※n=0.00, 0.25, 0.50, 0.75, 1.00
Negative Prompt
(EasyNegativeV2:1.0) (low quality, worst quality, bad quality:1.3) cubism (jpeg artifact, lowres:1.0)
Sampling method:DPM++ 3M SDE Karras
Sampling steps:30
Hires. fix:enabled
Upscaler:Latent
Hires steps:18
Denoising strength:0.7
Size 704 x 512 to 1232 x 896 (upscaled by 1.75)
CFG Scale:7
Seeds
・watermelon
Seed:1905692865
・ruins
Seed:3469675644
・canyon
Seed:523113380
FreeU Integrated:enabled
B1=0.9, B2=1.4, S1=0.9, S2=0.7
HyperTile Integrated:enabled
Tile Size:256Swap
Size:2Max Depth:0
評価
今回の自作背景LoRAは、巧拙は別として自分の絵のタッチはいい感じに学習できていると思います。適応強度に比例して絵のタッチや色彩が変化しているのが見て取れるでしょう。普通に使う際には適応強度は0.5~0.7くらいがちょうどよさそうです。ちなみに今回は風景画で検証しましたが、人物を中心にした絵でも特に悪影響は無さそうでした。
率直な感想として、自分に弟子ができたようで楽しいですね。(スイカを描かせた際の適応強度1.0で大量の小さなカットスイカが出てきたときは思わず笑ってしまいましたが…)
最後まで読んでいただきありがとうございました。また面白いことに挑戦したら記事にしようと思います。ではでは。
この記事が気に入ったらサポートをしてみませんか?