← Back to スタジオ真榊

Pixiv Fanbox

画風LoRA学習が理解る!自分だけの「AI画風」を作ろう

Published 08/08/2024, 09:16:51 PM · Edited 04/01/2026, 11:38:17 AM

画風LoRA学習が理解る!自分だけの「AI画風」を作ろう

<【注】こちらは内容が古くなったアーカイブ記事です。特に理由がなければ、現在の環境に合わせたこちらのアップデート版をお読みください>






////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

【2024/08/18アップデート】「比率の整ったデータセットを用意するプロンプト」の項目を刷新しました。寝そべった画像や複数人の画像など、より幅広いバリエーションのデータセットが生成できるようになりました。

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



こんばんは、スタジオ真榊です。今回は「SDXL用LoRA学習が理解る!」に引き続き、自分だけの「画風LoRA」をゼロから生み出し、普段使っているCheckpointにマージして、自分だけの「マスピ顔」を確立する方法についてです。イラストの手描きができて「自分の画風」を既に確立している方はもちろん、普段イラストを描かないAI生成専門の方でも、自分の好みの画風を生み出すことができるようになるはずです。


「マスピ顔」は各モデルで普通に画像生成すると出てくる固有の画風・顔立ちのことですが、これを自分でコントロールできないと、他の人と差別化しにくい「いかにもなAI絵」になってしまいます。マスピ顔を克服する方法はユーザーによっていろいろで、クォリティタグや画風タグを工夫して組み合わせたり、生成物を手で描き直したり、複数のモデルをマージしたりといった方法があるわけですが、今回の記事はこれを自分画風LoRAとモデルへのマージによって解決してみようという企画です。


こちらは私が自分の画風LoRAをAnimagineXL3.1にマージして作った「iomagineXL」でポン出し生成したイラストです。目や髪など、共通した特徴や質感を画風として学習していることが分かると思います。


この記事では、まずCoppyLoRAで作った「簡易版・自分画風LoRA」を使って大量のデータセットを作り、それをKohya lora param GUIで追加学習させて、四肢や背景の描写力が落ちない「真・自分画風LoRA」を作るところまでを、私の失敗例やその理由も交えながら紹介していきます。


私自身、これまで投稿してきたイラストはひたすら画風が揺れ続けていて、特に漫画を作るときには難儀していましたので、「ユーザー1人1つの一貫した画風」と「容姿のぶれない一貫したキャラクター」をAIで実現することは当FANBOXの大テーマの一つ。LoRA研究の集大成として、キャラLoRA学習との違いも含め、詳しく紹介したいと思います。



目次

CoppyLoRAで自分画風LoRAを作ろう

 ★絵を描かない人はimage2imageでもOK

好みの画風を突き詰める

データセット用に「自分画風AI絵」を量産しよう

 ★画風LoRA用データセットのポイント

比率の整ったデータセットを用意するプロンプト

大量生成を始めよう

 <キャンバスサイズの違う画像を連続生成する方法>

「偏り」に気を付けてチェリーピックしよう

 <画像管理はEagleがオススメ>

 <画風LoRAデータセット確認表>

 <失敗例>

image2imageで一斉アップスケールしよう

手のみ・背景のみ画像を用意しよう

画風LoRAのタギング

学習のやりかた

出来栄えをチェックしよう

終わりに - 自分LoRAで自分モデルを作ろう!-



CoppyLoRAで自分画風LoRAを作ろう

まずはおさらいということで、とりにくさんがFANBOXで配布している「CoppyLoRAwebUI」で自分画風LoRAを作るところから始めます。詳しいやり方はこちらの記事を参照のこと。


上の記事では自分で手描きした絵から画風を抽出しましたが、今回のポイントは、絵が描けない方は「AI絵で簡易画風LoRAを作ってもよい」というところです。ここで大事なのはまず「そこそこ」一貫した画像をローカル生成で大量生成できる簡易LoRAを作ること。ですので、「茶髪・茶色の目・ボブカット・バストアップの無表情の女の子」を好みの画風にこだわって画像生成し、CoppyLoRAに入力すればOKです。


自分ですべて手描きをするのではなく、大いにAI絵の力を借りてもOKです。こちらのイラストは、線画部分が私の手描きですが、塗りはCopainterを使って下塗りしてもらい、そこに自分でディティールを書き加えて作っています。最終的な「iomagineXL」の画風を見ていただければ分かる通り、今回はこの段階の画風を忠実に再現しようとしたわけではなく、この後の段階でかなり自分の好みに寄せてデータセットを作り上げています。ここでは、おおまかな好みの方向さえ再現できていればOKです。(特に瞳の造作はここでこだわったほうがよいでしょう)


★絵を描かない人はimage2imageでもOK

手描きを一切せずにAIの画風を作り上げたい場合は、左の「ベース1girlちゃん」をimage2imageしてモデル画像を作っても問題ありません。1girlちゃんの画像データはCoppyLoRAwebUIの「models」フォルダ内にあります。サイズは1024x1024pxのまま、ノイズ除去強度0.75程度で、プロンプトやLoRAを使って好きな雰囲気にimage2imageすればOKです。


PP:1girl, solo, brown hair, looking at viewer, shirt, blush, black shirt, simple background, white background, collarbone, short hair, closed mouth, brown eyes, upper body, breasts, medium breasts, bob cut, portrait, expressionless+好みの画風や特徴

アニメ調か、描き込み量はどれくらいか、目の作りはどうか、線の太さはどれくらいか…といった要素を調整し、目指す画風を作りましょう。



私の場合は、いろいろな目の描き方を勉強する中で、最終的にこういった「白い瞳孔(white pupils)が強調されているフラットな目の塗り」が一番好みだという結論に到りました。去年描いた絵の中では、この4枚の左下が近いでしょうか。

白黒漫画やchibiキャラにしても自分らしさが強調しやすく、初めて見る人にも統一感を覚えてもらいやすいものにしようと考え、線を太くし、髪の毛の描き込みも減らしています。AI絵の美麗さは私が扱うにはオーバースペックですので、私でも加筆しやすく、SNSで投稿するAI漫画を作るのに最適な描き込み量のイラストにすることを心がけました。


用意した1024x1024pxの画像をCoppyLoRAに「カラー」モードで読み込ませれば、30分ほど(※RTX4080使用)で簡易画風LoRAが完成。


完成した簡易LoRAでテスト生成してみます。プロンプトは「1girl+クォリティタグ」のみ。LoRAの重みは「1」で生成したところ、このような結果になりました。

入力した画像の画風だけでなく、容姿まで学習されていることが分かります。バストアップ画像のみで学習したLoRAなので、全身像を出そうとするとどうしても四肢は崩壊しやすいのですが、LoRAの重みを0.5前後に下げればそれなりにエッセンスの出た自分画風イラストを生成することができます。


好みの画風を突き詰める

手足が崩壊しないよう、この簡易LoRAを弱めに使いつつ、自分の好みの画風をプロンプトで探っていきましょう。線を太くするLoRAを使ったり、watercolor(/medium)やgraphite(/medium)といった画材タグで水彩画や鉛筆画風にしてみたり、塗りを変化させるLoRAを使ったり、別のCheckpointを使うのでも構いません。私は私の画風そのものを再現したいわけではなく、「もし自分がもっとうまかったらこんな絵を描きたい!」という画風を自由にAIで作ってみました。


いろいろなクォリティタグを比較実験した結果、こういう「描き込み少なめ・線太目・カラフル・瞳孔が印象的」な画風が一番好きだと分かり、この画風を軸にLoRAを作っていくことに決めました。相変わらず手は崩壊しがちですが、そこはチェリーピック(=よくできたものだけを選ぶこと)でどうにかします。


使用した画風関連のタグ、LoRAは以下の通り。AnimagineXL3.1で生成しています。


PP:[[mid]],simple eyes,[[[hatching_(texture),sketch]]],sanpaku, masterpiece,best quality, very aesthetic, absurdres, white pupils,(スケッチ風LoRA:0.4),(ボールドラインLoRA:0.5),(賢木画風coppyLoRA:0.6)


データセット用に「自分画風AI絵」を量産しよう

さて、Coppyで作った自分画風LoRAとさきほど決めたクォリティタグを使って、データセットにする「画風の一貫したAI画像群」を作っていきましょう。LoRAの学習に適したデータセットについては、こちらの記事に詳しく紹介しています。


上記の特集では50枚程度のデータセットで「キャラLoRA」を作るやり方に特化して解説していますが、今回は自分で生成した100~200枚のAI画像を使って「画風LoRA」を作ります。画風LoRAに適したデータセットはどういうものかについて、個人的にたどりついた結論から書いていきます。


★画風LoRA用データセットのポイント

【1.基本】

・画風の一貫したイラスト50枚~数百枚程度。多い方が一般に高品質になる。

・キャンバスサイズは短辺が1024px程度、アスペクト比2:3程度まで。縦長の画像と横長の画像がおおむね同数になるようにする

・描かれているキャラクターは特定キャラに偏っておらず、髪や目の色や髪型がばらけている。視線もカメラを見ているものとそうでないものがある。

・「全身」「バストアップ」「クローズアップ(主に顔)」の割合が偏っていない。全身イラストは特に多めにする(2:1:1程度まで)

・それぞれの画角も「正面」「サイド」「背後」など、それなりにばらけている。

・成人男性・成人女性・少年・少女の割合が均等(そのモデルで1girlしか作らない場合は女性キャラのみでOK)

・四肢や指が正確に描かれていない画像、パースの利いた画像は除外する(理由は後述)

【2.より高品質なLoRAにしたい場合】

・背景があるものとないものが混在。背景にも海や街、室内など、偏りがない

・背景のみ(no humans)のイラストも数点入れる

・「手だけ」がアップで描かれた画像が数点ある。できればグーチョキパーがあるとよい。


キャラLoRAのときも、データセットを収集するときは「できるだけバリエーションを用意する」のがポイントでしたが、今回はそのバリエーションにかなり厳格な比率が求められると考えてください。これはなぜかというと、手足が映っていない顔面やバストアップばかりのイラストで学習させた場合、「自分画風LoRA」でなく「自分画風+バストアップLoRA」になってしまい、full bodyタグで生成したときに崩壊を起こしてしまうからです。さきほどCoppyLoRAで作った画風LoRAが、手足の描写を低劣化させたのと同じ現象ですね。


私は最初、画風が一貫していることを重視しようと思い、特に目の特徴がよく出ている整ったイラストばかりをチェリーピックしたのですが、このような偏ったデータセットでは四肢が崩壊する失敗LoRAができてしまいました。ぱっと見た感じでも、手や足の先まで描かれた画像が全然ありませんね。

イラスト集を作るわけではないので、好みの画像ばかりでデータセットを構築すればよいわけではありません。考えを改めて、前述の「ポイント」に書いたようにデータセット内のさまざまな比率を徹底したところ、LoRAの品質に劇的な改善が見られました。


こうした比率の整ったデータセットを用意するのは非常に面倒に思えますが、次の章で紹介するランダムプロンプトを使って一日生成させておけば、帰宅したときには十分チェリーピックできる量のデータセットが準備できているはずです。詳しく見ていきましょう。


比率の整ったデータセットを用意するプロンプト

前述したように、今回用意するデータセットは画風が一貫しているだけではだめで、比率に偏りがないことが求められます。白背景の画像だけで学習させると「キャラだけ自分画風で、シンプルな背景しか出ないLoRA」になりますし、黒髪のキャラばかりで学習させると「自分画風+黒髪LoRA」になってしまうからです。(そうならないようにタギングをするわけですが、どうしても傾向は現れてしまいます)


そこで、DynamicPromptとWildcardを使うことで、外出中に一気に大量生成してもらうことにします。DynamicPromptの使い方を知らない方は、こちらの記事を参照のこと。


次のようなプロンプトでデータセットを生成しました。冒頭がCoppyで作った簡易画風LoRAで、末尾がそのあと決めたクォリティタグ。LoRAの強さは0.6としましたが、好みで調整しましょう。


【★LoRA学習データセット用プロンプト】※2024/08/18更新

<lora:coppylora:0.6> {1girl|1girl,teenage|1girl,milf,40years old,eyelashes, dot nose|1girl, flat chest|1girl,20 years old, breasts,eyelashes, dot nose|1man, 40 years old,male focus|1boy,14years old|2people, 1girl, 1boy,hetero|2people, 1girl, 1boy,couple|2people, 2girls|3people},

{standing|standing|standing||standing|sitting|sitting|sitting|lying down|lying down|lying down|crouching|leaning|arms crossed|hands on hips|holding phone|waving hand},

{looking at viewer|looking away|side glance},

__lora_haircolor__,__lora_eyecolor__,__lora_emotion__,{portrait|upper body|cowboy shot|full body|full body},

{front view|front view|front view|side view|side view|side view|from behind|back view|lower body},

{indoors, in a bedroom|indoors, on a sofa|indoors, in a living room|outdoors, in a park|outdoors, in a city|outdoors, in a forest|on a bed|on a sofa|in a school|in an office|white background,simple background|white background,simple background},

{day|day|night|night|evening|sunrise|sunset},

{casual clothes|casual clothes|casual clothes|formal clothes|formal clothes|uniform|pajamas|swimsuit|kimono,traditional clothing},

{open eyes|open eyes|open eyes|closed eyes|half closed eyes},

{open mouth|closed mouth|neutral expression},  +一貫した画風を再現できるクォリティタグ(※後述)


こちらのプロンプトを走らせると、男女や画角、ポーズ、背景の有無がいい具合にばらけたデータ向きの画像が大量生成される仕組みになっています。


★wildcardについて

「__」で挟まれているタグはいずれもwildcardです。こちらのzipに固めておきましたので、解凍して出てきたtxtファイルをすべて「extensions\stable-diffusion-webui-wildcards\wildcards」に保存すれば使用することができます。上のプロンプトでは__lora_haircolor__,__lora_eyecolor__,__lora_emotion__の三つを使用していますが、zipにはこの三つ以外にも背景などのカードが含まれていますので、適宜好みで書き換えてご使用ください。

「プロンプト超辞典」でも各見出し語を全収録したwildcardを配布していますが、データセットに向かない画像が生成されては困るため、今回使用したものはかなりタグ数を絞り込んでいます。



★ランダムプロンプトの狙い

ポーズのバリエーション、視点とアングル、性別・年齢のバランス、人数のバリエーション、背景のバリエーション、服装のバリエーションをできる限り理想に近づけるようにプロンプトを作ってあります。Hなイラストをたくさん作りたい方は、Hな画像をたくさんデータセットに盛り込むようにしましょう。

立っている、座っている以外に「寝そべっている(lying)」画像もある程度は含んでいないと、特に横長の画像を生成したときに崩壊しがちなことが分かりました。最終的にできた画像からチェリーピックをしてできるだけさまざまな要素を含んだイラストを集めるのが目的です。


※「一貫した画風を再現できるクォリティタグ」について

プロンプト末尾には、それぞれが再現したい画風の特徴をできるだけ詳しく書き込んでください。水彩画風になるLoRAやスケッチ系LoRAなど、Civitaiなどで配布されている画風LoRAを使うのも良いでしょう。ただ、特定のイラストレーターの画風タグやLoRAは無用なトラブルを引き起こしやすいので、使用しないことを強くおすすめします。(そもそも自分のAI画風を確立するのはそうしたトラブルに巻き込まれないための自己防衛策であるわけですから、他人の画風にそっくりな自分LoRAを作ってしまっては本末転倒になってしまいます)

また、例えばアホ毛が好きならahogeを入れる、平成に流行ったヘアインテークが嫌いならhair intakesをネガティブに入れるなど、キャラ描写に関する細かな指定を入れることで、より自分好みのキャラクター描写にすることができます。


大量生成を始めよう

さて、wildcardをDLしたら、さっそくさきほどのプロンプトを走らせてみましょう。生成結果のプロンプトを確認して、きちんと全てのwildcardが動作しているか確かめておきます。(呼び出しワードを一文字でも間違えると動作しません)


準備が整ったら、とりあえず数十枚ほど生成してみて、「思った通りの自分画風画像」が自動で量産できるようになるまで、プロンプトを微調整します。目が大きすぎるとか、手足が崩壊しやすいとか、生成結果を見るとさまざまなことが分かると思います。十分理想の画風でランダム生成できるようになったら、いよいよ本番の連続生成を開始します。


<画像サイズは縦長?横長?>

ご存じのように、画像生成において縦長の画像と横長の画像では構図に大きな違いが出ます。縦長の画像ばかりでLoRAを作った場合、下図のように横長の画像がまともに生成できなくなってしまう恐れがありますので、データセットは縦長・横長両方の画像を十分な数用意することをおすすめします。

私は1024x1408サイズの縦長・横長画像をそれぞれ400枚ずつ別々に生成しましたが、これは2回生成開始指示をしたわけではなく、次のやり方で一度に800枚生成してもらいました。


<キャンバスサイズの違う画像を連続生成する方法>

①まず1024x1408サイズの縦長キャンバスを指定して、バッチサイズ4×100回で400枚分の生成を開始します。

②生成が始まったら、キャンバスサイズを1408x1024pxサイズの横長に変更。バッチサイズ4×100回のままになっていることを確認したら、ポジティブプロンプト欄をクリックして、「Shift+ENTERキー」を押します。

普段は生成が開始されるはずですが、既に縦長キャンバス400枚分の生成がスタートしているので、そのあとにキューが回ります。しばらく放置しておけば、横長と縦長の画像計800枚分の生成が終了しているはずです。


アップスケールについてはそれぞれの好みですので、高解像度補助を使ったり、顔や手にAdetailerを使ったりすると良いでしょう。あとで画像サイズはそろえますので、ここでは1024pxサイズにこだわる必要はありません。ADetailerについては下記の記事をご参照ください。


GPUにもよりますが、最初からあまりたくさんの画像で生成する必要はありませんので、50~150枚程度で始めるのがよいかなと思います。Seed値がちゃんと-1になっているか、大量生成開始前にちゃんと確かめておきましょう!



「偏り」に気を付けてチェリーピックしよう

さて、ここからが重要なパートです。生成画像の中から、データセットに用いる画像を比率に気を付けてチェリーピックしましょう。キャラが描かれた画像を150枚程度準備するとしたら、だいたい「全身60枚・上半身50枚・顔40枚」になるよう意識して選んでください。「正面・サイド・背後からの画像も含む」「背景の有無やキャラの性別も均等」といった点にも注意が必要です。


どうしても普段のチェリーピックのノリで、顔がよく描かれていたりかわいいポーズにできた画像を選んでしまうのですが、「良い画像・魅力的な画像」ではなく、「偏りのないデータセットになる画像」を選ぶことを心がけましょう。


こちらのような文脈のよく分からないイラストでも、もし特徴がよく出ていて四肢が正確なのであればデータセットに入れて構いません。


<画像管理はEagleがオススメ>

生成画像を「Eagle」で管理している方は、「full body」や「close-up」といったタグでフィルタリングすると均等にピックしやすいはずです。Eagleは買い切り有償ソフトですが、普段の画像管理でもとても使いやすいので個人的に重宝しています。興味のある方はこちらの記事に詳細が書いてありますので、読んでみてください。

タグがうまく拾えないことがあるので、このように検索窓にタグを入れたら、左側の虫眼鏡ボタンから検索対象を「メモ」だけにしましょう。すると、狙ったタグ入りの画像だけが一括表示されます。Ctrlキーを押しながら良いものを選択し、データセット用のフォルダにコピーしましょう。(全身、半身など、種類ごとにいったんサブフォルダに分けるとよいです)


最初はこんな感じでサブフォルダにぽいぽいと入れていき、特定の要素の枚数が偏らないように気を付けてデータセットを作っていきます。例えばピースをしたイラストが多すぎると、何も指示していないのにピースしてくるLoRAになってしまいますので注意しましょう。(※手と背景だけの画像はこのあと作ります)

「全身60枚」フォルダならこんな感じです。できるだけ全身がおさまり、かつパースが効いておらず、指や四肢に破綻のないものを選んでいます。(※このスクショではファイル名を変更していますが、学習スタート直前までファイル名は生成時のままにしておくことをお勧めします。誤って同じ画像をピックしてしまったたときに気づきにくくなるからです)


チェリーピックが大体済んだら、こちらの「画風LoRAデータセット確認表」を見て偏りがないかチェックしてください。すべての条件を完璧にクリアすることはたぶん不可能ではありますが、偏りすぎると悪影響が起こります。特に、パースの利いた画像が多く混じっていないかは注意して見ておきましょう。

<画風LoRAデータセット確認表>

・一貫した理想の画風が再現できているか?

・パースの効いた画像は入っていないか?(重要。ゆがんだ体型と誤認されがち)

・男女比・年齢比・目や髪の色はばらけているか?

・視線の向きや画角はばらけているか?

・背景の有無は均等か?屋外や屋内などバリエーションはあるか?

・全身がきれいに描かれた画像が十分(最低50枚)あるか?

・破綻した画像をピックしていないか?(指や四肢を再確認)

・縦長と横長の画像が大きく偏らず混在しているか?

・寝そべっているイラストは全体の15%程度は入っているか?

・顔などに「ナゾの線」は生じていないか?(下図の左頬のようなもの。学習されると再現されてしまうので、こういう画像は除去しましょう)



<失敗例>

上のチェック表通りにできていないと、例えば次のような失敗画風LoRAになってしまう恐れがあります。


①パースを効かせた画像は人体描写を崩壊させる

こちらの失敗LoRAは、なぜかムーミンのように面長で上を見上げてしまうLoRAです。なぜこうなったかというと、当初ランダムプロンプトの中に「looking up」や「from above」、「from below」を入れてバリエーションを出そうとした結果、パースの効いた画像が多くデータセットに混じってしまったためです(右画像・中段の男性が分かりやすいですね)。「これはキャラクターを足元の角度から描いたものだよ」とタギングしても、「うわっこんな面長の人間おるんやね!OKOK、こういう風に描いたるわ」とAIに誤解されてしまったわけです。


②背景入り画像がないとこうなる

こちらは全て白背景の人物図のみで作ったLoRAです。

キャラクターをどんな画風で描けばよいかは学びましたが、背景に関する学習がないため、モデル本来の画風になってしまっています(マンガ風のざかざかした線になっていない)。また、背景をきちんと描こうとする傾向が弱り、このようにぼんやりしたシンプルな背景ばかりが生成される状態となっています。とはいえさほど致命的な影響というわけではありませんが、背景をきちんと描けるLoRAにしたい場合は、データセットに背景込みの画像を入れましょう。


③チェリーピックが甘いとこうなる

こちらはある失敗LoRAのテスト生成画像です。女の子の首がなんだか長くなってしまっていますね。よく見ると頭蓋骨自体もやや縦長です。


こういう意図しない影響が出たときは、たいていデータセットに「長い首」「長い頭」の画像が複数あることがほとんどです。このケースでは、たとえばこういう画像が混入していました。

どちらの画像も良いところがあってデータセットに採用(チェリーピック)したのですが、「首が長いのがこの画風の特徴なんだな」と間違って学習されてしまうので、残念ですがデータセットから除去して学習をやり直しましょう。どうしても採用したい画像なら、V3インペイントやゆがみツールで首の長さを調整してもよいです。


image2imageで一斉アップスケールしよう

やや手間が増えますが、十分な量のデータセット画像を準備できたら、そのまま学習させるのではなく、すべてアップスケールを施すことをおすすめします。アップスケールのやり方はそれぞれだと思いますが、私はimage2imageタブで行っています。


image2image画面から「バッチ」タブを開いて、150枚の画像が入っているフォルダのフルパスと、アップスケール後の画像を入れる別のフォルダのフルパスを入力すれば、いっぺんにすべての画像をアップスケールできます。

「PNG Info」欄から、このように「プロンプト」「ネガティブプロンプト」「シード」にチェックを入れておくと、入力画像からそれらが読み込まれて、各画像を生成した時と全く同じ設定でアップスケールが掛かります。私はノイズ除去強度0.38で2倍サイズにアップスケールしました。


手のみ・背景のみ画像を用意しよう

さらにデータセットを充実させたい場合は、「手のみ」と「背景のみ」の画像を足しましょう。ここはちょっと面倒ですし、さほど大きな影響があるわけではないので飛ばしてもよいですが、こだわりたい方は下記の要領で準備します。


【手の画像を用意するには】

「hand focus」などを使って手だけアップで生成したいところですが、高確率で崩壊しますので、大量生成した画像の中から手が大きくきれいに描かれているものを選んで、周辺を正方形に切り抜くのがよいでしょう。既に2倍サイズにアップスケールしていますので、たとえばこのような画像を切り抜いて、グー・チョキ・パーそれぞれ数枚ずつ用意しておけばOKです。(あとでhand focusとタグ付けするのを忘れないようにしましょう)



【風景画像用PP例】

こちらは下記のプロンプトで数枚用意すれば十分でしょう。(背景をシンプルにしたい場合は用意しなくてOKです)


PP:no humans,tokyo,{people,city,building|living room,tv,sofa,table|beach,sky|school,class room|girls room,bed,desk,window},+クォリティ


画風LoRAのタギング

さて、画像が用意できたら、適宜「縮小革命」などのアプリで短辺1024pxサイズに小さくした上で、タギングを行います。今回も「SDXL用LoRAが理解る!」で紹介したタガー「wd-swinv2-tagger-v3」を使って検出すればOKです。


<タグの除去はほぼ行わない>

キャラLoRAではそのキャラの容姿にあたるタグを除去することで、1つ目に配置したトリガーワードにその特徴を集約させるということを行うのですが、画風LoRAの場合は基本的にタグの除去は行いません。ただ、画風の特徴が「white pupils(瞳孔が白い)」とか「thick eyebrows(眉が太い)」などとして常に抽出されるような場合は、除去したほうがよいのではないかと思っています。(そうすれば常に瞳孔を白く描いてもらえるようになるはずです)


<タグ数は多い方がいい?>

画風LoRAにおいて、タグは「できるだけ多い方が画風の特徴が分散されるので良い」とする考え方と、「重複タグが生じて混乱するので、できるだけ少なくしたほうが良い」とする考え方と両方接しています。個人的には、意味の重複するタグ(gunとweapon、glassesとeyewearなど)や誤検出タグが出ない程度にしきい値を低く設定する…つまりタグ付けはできるだけ多めにするのがよいのではないかと(今のところ)考えています。


<トリガーワードは入れる?>

画風を意味するトリガーワード(sakakistyleなど)を加えるべきか、または「1girl」か「1boy」を常に一つ目にして画風概念を集約すべきか、それとも全くランダム順でタグ付けすべきかについても諸説あります。私はトリガーワード「なし」で行うようにしていますので、以下そのような個人的考えに沿って解説します。


<手の画像のタグは必ずチェック>

さきほど手の切り抜き画像を加えた方は、必ず個別にテキストを開いてタグをチェックしてください。「hand focus」が入っていないことが多いので、これを加えることをおすすめします。そのほか、ちびキャラや極端な姿勢を取っている画像などを学習させる場合は、きちんとタグ付けされているかどうか個別チェックするようにしてください。


学習のやりかた

さて、本番学習です。今回はプリセット「SDXL画風.xlora」を使って学習を行います。readmeには、1batchあたりのステップ数が3000以上になるように指示がありますが、だいたい1万ステップ程度になるように繰り返し数(フォルダの冒頭の数字)とepoch数を調整しましょう。例えば180枚の画像で学習する場合、繰り返し数を「4_iostyle」とし、14epochで10,080ステップにします。過学習が起きたときに備えて、保存頻度は「1」とします。


キャラLoRAのときは画風に影響が出にくいよう「genimagineXL」というLoRA学習用のcheckpointを使いましたが、今回は画風を学習させたいので、animagineXL3.1をベースモデルとします。そのほかは、前回紹介したやり方とほぼ変わりません。キャプションのシャッフルにチェックが入っていて、トークン保持数0になっているので、すべてのタグは順序がランダマイズされた状態で学習されます。

「教師画像フォルダ」「出力ファイル名(好きな名前)」「出力先フォルダ」「保存頻度」の4つを正しく入力できたら、開始ボタンを押します。


出来栄えをチェックしよう

1万ステップもあるので、RTX4080でも2時間くらい学習に掛かりました。とりあえず「iomagine1.safetensors」ができたので、ベースモデルであるanimegineXL3.1を使って1girl+クォリティタグで生成してみます。


こちらが生成結果。とりあえず大きな問題はなさそうに見えます。


smile,v,cityと打ち込んでみるとこう。


試しに、背景なし+縦型イラストのみで学習させた古いバージョンの絵柄LoRAで同一設定の生成実験をしてみます。理論上は、こちらのほうが「背景があまりちゃんと描かれず、アップが多く、指が怪しい」LoRAになっているはずですが、いかがでしょうか。


上の画像は強度0.6程度でLoRAを適用していますが、四肢が崩壊してしまうようなら、完成前の各epochで保存されたLoRAを試してみましょう。3000~5000epoch程度のLoRAを試してみても同じように崩壊するのであれば、データセットに何か問題があることが伺えます。「SDXL用LoRA学習が理解る!」のトラブルシューティングの章を参考に、もう一度データセットを見直してみてください。


意図しない影響…例えば、首が長くなってしまったり、カラーリングや背景などが指示していないものに偏ってしまったりしている場合は、データセットにもそのような偏りが見られることがほとんどです。もう一度そうした偏りがないかをチェックして、問題がある画像が混入していたら除去して学習をやり直しましょう。




終わりに - 自分LoRAで自分モデルを作ろう!-

無事に自分好みの画風LoRAはできたでしょうか。好みの画風LoRAができたら、普段使いのモデルにちょうどよい配合でマージ(融合)することで、常にその画風で生成できる自分専用モデルを作ることができます。


私は自分画風LoRAやスケッチ系LoRA、線の太さを調整するLoRAなどなどをほどよいレシピでanimagineXL3.1にマージして、初の自分モデル「iomagineXL」を作ってみました。


こちらは過去のイラストをiomagineXLでimage2imageして作ったアレンジ作品です。きちんと狙った画風にできているのではないでしょうか。

これができるようになると、これまで作品を作るたびにコロコロと変わっていた画風に一本筋を通すことができるようになりますし、今後どんなモデルが流行しても、最終的に自分画風LoRAでimage2imageすれば自分の作品らしくできるようになるわけです。


特に漫画制作においては、途中で全然違うタッチになってしまっては興ざめですよね。これで、オリジナルキャラクターのLoRAが作れるようになりましたし、一貫した画風も再現できるようになったので、ようやく異世界転生アウラちゃんの続きを描けそうです…。


やりたいこと・やることがどんどんたまっているのですが、次回は今回得られた知見を忘れないうちに、自分画風LoRAを普段使いモデルにマージして、自分モデルを作る方法(Supermergerの基本)の記事になろうかと思います。それが済んだら、pony用のキャラLoRA,自分画風LoRAの記事などを順番にこなしていければなと思います。できるようになったことから書いていかないとすぐ忘れるので…

それでは今夜はこのへんで。スタジオ真榊でした。



<おまけ>

こちらはAnimagineと同じデータセットで学習させたPony用の画風LoRAです。モデル固有のセピア調の色合いが出ているほかは、おおむね狙った画風がきれいに再現されているかなと思います。







Attachments (27)

LK4hfk2gexq1bJ7csnci2Qo1.png

LK4hfk2gexq1bJ7csnci2Qo1.png

lL7lWvgwHdAh179duWuxq8UO.jpeg

lL7lWvgwHdAh179duWuxq8UO.jpeg

vmIOO8CZ95lcl0XSB9whC8f5.jpeg

vmIOO8CZ95lcl0XSB9whC8f5.jpeg

8NuZKy7thwyrdIoBbyB1AKKh.png

8NuZKy7thwyrdIoBbyB1AKKh.png

cDRK75XJjhHyn7hKAxN10UVj.png

cDRK75XJjhHyn7hKAxN10UVj.png

LoRA学習用wildcard.zip

LoRA学習用wildcard.zip

uajBArDyuDWHuN86ArN9fZgK.png

uajBArDyuDWHuN86ArN9fZgK.png

WWcWSe7RBoHAMj53VCLjVwRN.png

WWcWSe7RBoHAMj53VCLjVwRN.png

cJBfssdaDEHvT61lO00tVoa8.png

cJBfssdaDEHvT61lO00tVoa8.png

9Is3JL9ASaq01G4EiAuys0WZ.png

9Is3JL9ASaq01G4EiAuys0WZ.png

I7dwnpM9cjusUzM2GjpcG4qg.png

I7dwnpM9cjusUzM2GjpcG4qg.png

H9hFwWOEk4CnyTseeEyzHAv7.png

H9hFwWOEk4CnyTseeEyzHAv7.png

Cj4Z8YeDyAWETFtvpoD9bKXS.png

Cj4Z8YeDyAWETFtvpoD9bKXS.png

lRt4jKlneHFl3ys4bxrsfmS3.png

lRt4jKlneHFl3ys4bxrsfmS3.png

egkfGJpQGbQqQt09Vjmm4nQF.jpeg

egkfGJpQGbQqQt09Vjmm4nQF.jpeg

zLciLRoFK597IeJgNWZ1NVYd.png

zLciLRoFK597IeJgNWZ1NVYd.png

ubV5LcW72kZvg1WBYimqzcyU.png

ubV5LcW72kZvg1WBYimqzcyU.png

Rmg8eFwq9p2yxANzRIKF9p5P.png

Rmg8eFwq9p2yxANzRIKF9p5P.png

4rIfHNGoKEagzXI04mdwLqrA.png

4rIfHNGoKEagzXI04mdwLqrA.png

RH8mOFg0ULuVFZUJZykKLk41.png

RH8mOFg0ULuVFZUJZykKLk41.png

jEEoDFyO52FNBh5rhz2k2VFJ.png

jEEoDFyO52FNBh5rhz2k2VFJ.png

sd5TWCJvIdw8fRYa2eb3SG3R.png

sd5TWCJvIdw8fRYa2eb3SG3R.png

svG7zYQcO3uXOIJ2kZDDRwRS.png

svG7zYQcO3uXOIJ2kZDDRwRS.png

wDP3UbjWjqg8tipImIqkKsoe.png

wDP3UbjWjqg8tipImIqkKsoe.png

COr0jyRXaSKBrINwY6O7JeKd.png

COr0jyRXaSKBrINwY6O7JeKd.png

N4t89ACjInbA4xK6vEjRZH6G.png

N4t89ACjInbA4xK6vEjRZH6G.png

0QpNrPcdMcQhCHe2oY8lE5iZ.png

0QpNrPcdMcQhCHe2oY8lE5iZ.png