LoRAとは?/StableDiffusionの学習方法
LoRAとは、「Low-Rank Adaptation」の略語で、既存のモデルに新たな被写体を学習させる、追加学習の手法の一種。 StableDiffusion系のモデルを使って「特定のキャラクターのイラスト」を生成する場合、通常は呪文に目当てキャラクターの特徴を表すキーワードを含めて、そのキャラクターに近いイラストが出るまで何度も再生成して、アタリが出るまでガチャを引きまくる必要がある。
でも、LoRAを使うと既存のモデルを目当てのキャラクターが出るように調整することができ、目当てのキャラのイラストを決め打ちで生成できるようになるんだそうだ。
LoRaの学習の準備/Stable Diffusion
LoRaの学習に必要なPCスペック
LoRAを使った学習処理には、最低でも6GB、できれば10GB以上のVRAM(ビデオメモリ)があるグラフィックボードを搭載しているPCが必要だ。
画像生成を行うときと同様にグラフィックボードの性能が非常に重要だよ。性能が足りない場合は買い替えするしかない…。
それかクラウドに課金して動かすか。学習のような長時間GPUをブン回す作業は、GoogleCoraboでは無理だと思う。
環境の構築方法(sd-scriptsを使用)
LoRAを使った学習を行うためには、まず環境を構築する必要がある。 環境の構築は、以下の手順で行う。
- 手順1:PythonとGitのインストール
- 手順2:PowerShellでコマンドを実行できるようにポリシーを変更する
- 手順3:PowerShellでコマンドを打ち込み、環境を構築する
Loraの学習の手順/Stable Diffusion
LoRAを使った学習の手順はこんな感じっぽい。
手順1:教師データ、正則化画像を準備する
LoRAを使った学習処理には、 教師データとなる画像、正則化画像が必要だ。教師データは下記の要件を満たした画像が最低20枚以上必要。
- 学習させたい被写体が単体で映っている
- 画像ごとに色々なポーズをとっている
- 画像ごとに色々な背景が映っている
また、正則化画像はプロンプトに含まれる単語の概念が変わってしまわないようにするための学習用画像だ。
手順2:LoRaの学習を実行
- 「gui.ps1」を実行して設定を行う
- 「train.ps1」を実行して学習を行う
高スペックPCを使っても、学習にはめっちゃ時間がかかるっぽい。
LoRAモデルを使って画像を生成する方法(StableDiffusionwebUIが必要)
学習は大変だけど、使うのは簡単っぽい。StableDiffusion webUIをインストすると、最初からLoRaで画像生成する機能(拡張機能)が入ってる。
LoRaで画像を生成する方法
まず、Stable Diffusion WebUI(Automatic1111)をインストしてかることが前提。
関連)Stable DiffusionのWEBUI Automatic1111の使い方
手順は、フツーに画像生成するのと何も変わらない。LoRaは「モデル」という形で作られる。配布されるときもモデル。サイズはせいぜい数百Mバイト。
- StableDiffusionwebUIを起動する。
- モデルを選択する。
- LoRaモデルの設定を行う。
- 画像を生成する。
LoRaの学習方法によって、「何もしなくても発動」「トリガーワードをプロンプトに含めると発動」「<lora:モデル名:強度を表す0.0~1.0の数値>をプロンプトに含めると発動」というのがあるっぽい。
LoRaの学習方法まとめ
LoRaを自分のマシンで学習させるのは、マシンのスペック的にハードルが高いのでまずはメモのみ。
学習済みのLoRaモデルは、civitaiなどで配布されている。
有名人や漫画やアニメの著作権キャラ、特定の作家の画風を真似るものなどが多いが、そのまま生成画像を世に出すと著作権や肖像権などで問題になるかも知れないので注意。個人で楽しむのは自由だが、SNSに投稿するとモメるかも知れないな。
関連)Civitai | Stable Diffusion models, embeddings, hypernetworks and more