無職になって時間ができたので、イラストAIでいろいろ遊んでいます
既存モデルでは満足できなくなってきたので、Loraを作ってみることにしました
Loraとは
LoraとはもとになるイラストAIモデルに、癖や知識を追加できる拡張データのようなものです
特定のイラストレータの画風を再現したり、特定の衣装に特化したイラストを作成できるようになります
Loraを作ってみる
今回はkohya_ssを利用して、illustriousベースのモデルに適用できるLoraを作成します
流れとしては
・kohya_ssをインストール
・学習画像を集める
・タグ付けとタグのクリーニング
・学習を行い、Loraを作成する
・作成したLoraを使ってイラストを生成する
という工程があります
ちなみに、筆者の作業マシンはWindowsになりますので、以下の例もWindowsマシンでの例となります
kohya_ssをインストールする
kohya_ssは以下のリポジトリから入手できます
https://github.com/bmaltais/kohya_ss
上記ページ内にインストールドキュメントも付属しているため、手順に沿ってインストールします
インストール完了後、setup.batを実行し、
1. Install kohya_ss GUI
6. (Optional) Launch Kohya_ss GUI in browser
の順番に実行します

学習画像を集める
次に学習もとになる画像を集めます
今回は「鳥獣戯画」の画像を集めてみました
学習画像は50枚以上準備するのが良いようですが、今回はサンプルのため20枚としました

タグ付けとタグのクリーニング
kohya_ss GUIを起動し、Utilitiesタブ→Captioning→WD14 Captioningを選択します
Image folder to caption (containing the images to caption)に学習画像を集めたフォルダを指定します
ほかはデフォルト設定のままでOKです
画面一番下のCaption imagesのボタンを押します
ボタンを押しても反応がないので動いているかわかりにくいのですが、コンソール画面にログが出力されていれば動いています

タグ付けが終わると、学習画像のフォルダにテキストファイルが生成されています
次にタグのクリーニング(学習に不要なタグの削除)を行います
今回は「画風」の学習が目的になります
AIに残すタグを聞いたところ、諸説あるようですが特定のキャラクターの特徴を表すタグや、固有名詞期は削除し、画風や構図を表すタグ(simple backgroundなど)のみ残す方針で行きます
タグのクリーニングについては以下のツールを利用すると一括編集できるので楽です
https://github.com/starik222/BooruDatasetTagManager
修正前と修正後は以下の通りです


学習の実施
次に学習を実行し、Loraを作成します
kohya_ss GUIでLoRA→Trainingの順に選択し、以下を設定しました
Pretrained model name or path:ベースとするイラストAIモデル
Trained Model output name:出力されるLoRAファイル名
Image folder (containing training images subfolders):学習画像とタグのテキストが保存されているフォルダ
Output directory for trained model:LoRAファイル出力先フォルダ
Logging directory (Optional. to enable logging and output Tensorboard log):ログファイル出力先


パラメータ内の設定で解像度の部分は1024に変更しました

以上の設定を行い、画面下部にある「Start training」ボタンを押します
学習が開始されるので、終わるまでしばらくかかります

学習が無事に終了すると、LoRAファイルが作成されています
今回はComfyUIを利用するので、ComfyUIのmodel/lorasディレクトリに移動しておきます
作成したLoraを使ってイラストを生成する
ComfyUIのサンプルに準備されている最もシンプルなワークフローを読み込み、ワークフローの間にLoRA読み込みを追加しました

同一のシードを利用して生成した画像は以下になります
まずはLoRAなし

LoRAあり

若干鳥獣戯画感が出てますかね・・・?
今回は学習画像少なめ、タグクリーニングも適当ということで作成されたLoRAも精度は良くないものとなりました・・・
学習画像の枚数を増やしたり、タグの選別を行うことでLoRAの性能も上げることが出来そうですし、いろいろな学習画像を組み合わせてオリジナルの画風を生み出すのも面白そうです!
ちなみに、LoRA効果を有効にするには、プロンプトにトリガーワードの指定が必要です
学習画像を準備したフォルダ名が、そのままトリガーワードに利用されるとのことで、今回の例では「tyoujuu」がトリガーワードとなりました
(ちなみにフォルダ名の先頭の10はエポック数として扱われ、繰り返し学習する回数として利用されます)


以上です
ということでLoRA作成方法の紹介でした
LoRA自体の作成はそこまで難しくありませんが、学習画像の収集、タグ整理が大変そうです
精度が良いLoRAを作るには、それなりの労力がかかることは覚悟しておいたほうがよさそうですね
あと、LoRAなどを触り始めると、AI特化型PCがますますほしくなります・・・