<※こちらは過去記事のアーカイブです。特に理由がなければ、最新版の「CoppyLoRA v3」に関する特集をご覧ください>

こんばんは、スタジオ真榊です。こちらは、AIアプリ開発者のとりにく(@tori29umai)さんがFANBOXで配布されているかんたんLoRA作成アプリ「CoppyLora webUIの紹介・検証記事です。AI絵を自分のタッチに近づけたり、AI-Assistantでオート線画化・オート着色する際により自分らしい絵に仕上げてもらったりと、初心者でも「マスピ顔」から離れた自分らしい絵作りができるようになるツールです。

【2024/11/11追記】この記事はCoppyLora webUIの「V1」について解説したものです。24年11月に公開された「V2」ではできることが格段に広がっていますので、併せてお読みください。

はじめに

CoppyLora webUIの特徴は、追加学習のために用意する画像がたった1枚だけでよく、アプリ操作も非常にシンプルで、全く追加学習の知識がない人でも簡単にLoRAが作れること。Civitaiで公開されているような、完璧に狙い通りの挙動をする高精度なLoRAを作れるわけではありませんが、これほど簡単な操作で自分の画風LoRAが作れるのは非常に画期的と言えます。

この記事では、アプリを使ったLoRAの作り方やコツ、内部的な仕組みを解説するだけでなく、より精度の高いLoRAにするにはどうしたらいいか、できたLoRAを普段の生成にどのように役立てられるか、画風LoRA以外を作るにはどうしたらいいかーといった点についても、具体的なワークフローを提案していきたいと思います。

【おことわり】個人的な応援の気持ちで、こちらの記事はとりにくFANBOXにも同内容のものを提供しています。

1.CoppyLoRA(コピー機LoRA法)の原理

さて、CoppyLoRAはその名の通り、「コピー機LoRA法」を使って追加学習を行うアプリです。「コピー機LoRA法」とは、1枚の画像をわざと過学習させ、どんなSeed値を入れてもコピー機のようにそっくりな画像しか生成できないLoRA(=コピー機LoRA)を作っておき、通常のモデルとそのLoRAとの「差分」を抽出して、狙った効果のあるLoRAを作る手法のこと。通常のLoRAは、数十枚の画像とテキストのペアを追加学習させることでキャラクターや画風、構図などを覚えてもらうものですから、かなりイレギュラーなLoRA学習法と言えます。

こちらの2枚の画像をご覧ください。左はtext2imageでポン出しされた、AI絵らしい画風の「ベース画像1girlちゃん」。右はその画像を「あるルール」によって変化させたイラストです。

1.CoppyLoRA(コピー機LoRA法)の原理:図版1

2枚の画像の「差」を作り出しているルールとは具体的には何でしょうか。カラーイラストではなく白黒の線画にする、しわは細い一本線で描く、目はハイライトがなくシンプル、眉毛は前髪を貫通する、瞳孔は小さく三白眼、髪の毛は束感があまりなく、おかっぱのように面で描かれる…といった言語化ができるかと思いますが、これらを一言で言えば「賢木が手で線画を描いたらこうなるよ」というルールですね。その概念こそが2枚の「差分」であり、それを抽出してLoRAを作ると、「賢木画風LoRA」ができる—―というわけです。

こちらが上の画像ペアから作った「賢木画風LoRA」による生成テスト結果です。左のイラストを生成したときと全く同じ設定で、賢木画風LoRAをONにして生成すると、このような画風の変化が観測できました。

1.CoppyLoRA(コピー機LoRA法)の原理:図版2

ここで注意しておきたいのは、あくまでこのアプリは「かんたんLoRA作成アプリ」であり、作れるLoRAの精度には限界があるということです。例えば、こちらの2枚の差を抽出して「グレイスケール化LoRA」を作ったとしましょう。

1.CoppyLoRA(コピー機LoRA法)の原理:図版3

できたLoRAを左のポン出しAIイラストに適用してtext2image生成すると、このように構図自体が変わってしまいます。

1.CoppyLoRA(コピー機LoRA法)の原理:図版4

アプリの仕組みからすると、適用度0のときのイラスト(左)をそのままきれいにグレイスケール化できそうに思えますが、そうした精度の高いLoRAを作るには、熟練したLoRAの知識と技巧、試行錯誤が必要です。また、2枚1組のバストアップ画像から学習する仕組み上、キャラクターの全身の容姿(例えば足元や背後のデザインなど)を学習させることはできません。「このアプリで作れるLoRAの内容には一定の限界がある」ということに留意しておきましょう。

2.インストール方法

CoppyLoRA webUIは、スマホやPCからでも動く「Google Colab版」と、これまでのAI-Assistantなどと同様にPCにインストールして動かす「ローカル版」があります。この記事では、このうちローカル版について紹介します。

①FANBOXからzipファイルをDLし適当な場所に解凍する

まずはとりにくさんのFANBOXを支援するところから。記事執筆現在はこちらの1000円プランのみが選択できます。

2.インストール方法:図版1

FANBOXの該当記事に掲載されているGoogleドライブから、zipファイルをダウンロードし、解凍します。「パスが長すぎて解凍できません」といったエラーが出る場合は、「7-zip」などの解凍アプリを使いましょう。展開された「CoppyLora_webUI」フォルダを適当な場所に配置したら次の項目へ。

2.インストール方法:図版2

②セキュリティソフトの設定で、フォルダと実行ファイル名を除外リストに追加する

セキュリティソフトが反応してインストールが失敗することがあるので、「CoppyLora_webUI」フォルダと実行ファイル「CoppyLora_webUI.exe」の二つを除外リストに入れましょう。

2.インストール方法:図版3

Windows Defenderの場合、「Windows セキュリティ▶ウイルスと脅威の防止▶ウイルスと脅威の防止の設定▶設定の管理▶除外」と進み、CoppyLora_webUI.exe(プロセス)とCoppyLora_webUI(フォルダ)をそれぞれ指定します。

こちらは一例です。

2.インストール方法:図版4

③各種モデルDL

CoppyLora_webUI.exeを実行する前に「CoppyLora_webUI_DL.cmd」を右クリックし、「管理者権限で実行」します。黒いコマンドプロンプト画面が開き、必要なモデルがDLされたのち、自動で消えます。

どうしてもうまくいかない場合は、まずこちらからanimagine-xl-3.1.safetensorsをダウンロード。

次に、こちらのURLにアクセスし、

以下の5つのファイルをそれぞれ手動でダウンロードし、いずれもmodelsフォルダ内に配置してください。

copi-ki-base-b.safetensors

copi-ki-base-bnl.safetensors

copi-ki-base-c.safetensors

copi-ki-base-cnl.safetensors

base_c_1024.png

④CoppyLora_webUI.exeを実行

モデルDLが済んでいれば、「CoppyLora_webUI.exe」をそのままダブルクリックで起動できます。適当な場所にショートカットを作っておくとよいでしょう。

2.インストール方法:図版5

3.操作画面の見方

操作できるパラメータは非常に絞り込まれており、誰でも直感的に操作することができます。「覚えさせたい画像を入力▶LoRAの名前を決める▶学習モードを選ぶ▶開始ボタンをクリック」だけです。入力画像は1024x1024pxのjpgかpngを選ぶようにしましょう。

3.操作画面の見方:図版1

<追加学習モードとは?>

迷いがちなのは「追加学習モード(Mode)」をどれにするか。ここは単純に、「入力画像はこのうちどれが一番近いか」で考えましょう。

「Lineart」:白黒の線画を入力する場合

「Grayscale」:グレイスケール画像を入力する場合

「Grayscale_noline」:線画のないグレスケ画像を入力する場合

「Color」:カラーのイラストを入力する場合

「Color_noline」:線画のないカラー画像を入力する場合

この追加学習モードによって内部的に何が起こるか解説しますと、LineartとGrayscaleは「カラーで線画なしのベース画像を過学習させたLoRAとの差分」、Grayscale_nolineは「カラーで線画ありのベース画像を過学習させたLoRAとの差分」

、Colorは「モノクロで線画なしのベース画像を過学習させたLoRAとの差分」、Color_nolineは「モノクロで線画ありのベース画像を過学習させたLoRAとの差分」をそれぞれ抽出してLoRAを生成します。つまり、入力画像と対偶の関係にあるものとの差分抽出を内部的に行うことによって、より狙った効果が発揮されるLoRAを作ってもらえるわけですね。

<もう少し理解したい方へ>

ここは本当に分かりにくいので、もう少し説明しますと、「カラーで線画なしのベース画像を過学習させたLoRA」というのは、こちらの画像(▼)にそっくりな画像しか作れない過学習LoRAのことです。

3.操作画面の見方:図版2

適用すると、どんなSeed値でもコピー機に掛けたかのように「線画のないベース1girlちゃん」そっくりな画像が出力されるLoRA…すなわち「コピー機LoRA」を内部的に用意しているわけですね。

一方で、私が描いた白黒線画からもコピー機LoRAを作っておいて、二つの差分を抽出すると、私の線画タッチがどういうものか色濃く学習したLoRAができるというわけ。つまり、記事のはじめに「入力画像とベース画像との差分を抽出してLoRAを作る」と言いましたが、正確に言えば、「入力画像のコピー機LoRAと(対偶の関係に加工した)ベース画像のコピー機LoRAで"差分"を抽出してLoRAを作る」のがCoppyLoRAの仕組み、ということになります。

4.実際にLoRAを作ってみよう

それでは、さっそく自分画風LoRAを作ってみましょう。ベース1girlちゃんの画像をクリスタなどで開き、レイヤーカラーを適当に水色にして、透明度を70%程度にします。

4.実際にLoRAを作ってみよう:図版1

するとこのようになりますので、新しいレイヤーを作成して、この女の子をできるだけ自由に描いていけばOKです。まつ毛を長くしたり、耳を大きくしたり、目が隠れるほどの前髪にしたりと、自由に描き直してOKです。その特徴一つ一つが、生成されるLoRAにも受け継がれることになります。

4.実際にLoRAを作ってみよう:図版2

逆に言えば、影響させたくない部分はできるだけそのままにしましょう。全体の画風をコントロールするLoRAが必要なら全体を描き直せば良いし、目だけ自分風にしたい場合は目だけ描き直して学習させるのもアリ、ということです。

私はこのように描きました。瞳孔が小さい方が好きだな…とか、髪の毛はある程度まとまって漫画風に束で描かれるほうがいいな…と考えて、できるだけ線を単純にしつつ、入り抜きを意識して描いています。

4.実際にLoRAを作ってみよう:図版3

そうしたら、下書き用のベース画像レイヤーを消して、白背景に黒線で引いた画像にし、1024x1024pxの画像として出力します。

4.実際にLoRAを作ってみよう:図版4

あとはこのように画像を入力し、「sakakilora1」などと命名して、モード「Lineart」でTrainボタンを押すだけです。末尾に数字を入れておくのは、バージョンの取り違えを防ぐためです。

4.実際にLoRAを作ってみよう:図版5

スタジオ真榊ではRTX4080(VRAM16GB)を使っていますが、賢木画風LoRA「sakakilora1.safetensors」を作るのにだいたい25分(1500秒)前後かかりました。VRAMをかなり消費するため、学習時は他のwebUIは起動しておかないほうがよいでしょう。

4.実際にLoRAを作ってみよう:図版6

できたLoRAを実際に適用するために、webUIのフォルダに移動させておきましょう。生成が完了するとこのようなリンクが出ますので、ここから普段使用しているwebUIの「models/lora」フォルダ内に保存すればOK。

4.実際にLoRAを作ってみよう:図版7

CoppyLoRAフォルダの中にある「output」フォルダ内にもLoRAが出力されていますので、そちらからmodels/loraフォルダ内に移動させるのでも同じです。

4.実際にLoRAを作ってみよう:図版8

5.できたLoRAを使ってみよう

さっそく、自分画風LoRAでtext2image生成してみましょう。次のようなポジティブプロンプトで、XYZ plotで適用度-1~+1までの比較画像を作りました。

PP: <lora:sakakilora1:-1> 1girl,solo, red-framed eyewear,(navy school uniform,navy serafuku:1.3),ponytail,short sleeves,navy pleated skirt, shiny skin,black pantyhose, beautiful purple eyes,black hair,white ribbon

生成結果がこちら。

5.できたLoRAを使ってみよう:図版1

適用度「1」だと、私の線画に引っ張られすぎて低劣になっていますが、よく見ると髪の毛束の描き方がよく似ているのが分かるかと思います。マイナス適用すると、私と"真逆の画風の絵"ができていて面白い。 

<生成画像が低劣化してしまう?>

こうして普通にtext2image生成すると、画風は確かに私に寄っているのですが、人体描写がおかしくなったり、塗りの低劣さが際立ってしまったりするのが残念に感じます。

5.できたLoRAを使ってみよう:図版2

これは、ザ・マスピ顔な1girlちゃんと私の線画を比べて抽出された「差分」の中に、私の画風要素だけでなく、「線の低劣さ」が混じって学習されてしまったためです。(低劣化を避けながら、より純粋に私の画風のみを適用する方法については、記事後段で検証します)

<茶髪やショートヘアになったりしないのはなぜ?>

ちなみに、ベース1girlちゃんは「茶髪のショートボブで黒いシャツを着ていて背景は白、口を閉じていてこちらを見ている」という状態なのですが、それぞれの部分は学習されておらず、生成結果には現れていません(ミナちゃんがショートヘアになったり茶髪になったりはしない)。これは、内部的に下記のようなタグ付けをして学習対象から除去しているからです。

カラー学習時: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

グレイスケール学習時:1girl, solo, blush, shirt, looking at viewer, simple background, white background, collarbone, closed mouth, short hair, upper body,portrait

ここに書かれた要素は追加学習内容から外れるわけですね。これを踏まえて、次のような実験を行ってみます。

<ベース画像と要素が違う画像で学習すると?>

こちらの入力画像は、さきほどの線画に自分なりに色を塗って仕上げたものです。ベース1girlちゃんの髪の色や目の色、背景の模様、服の色といった要素が変化していますが、構わずLoRAを作ってみました。(モードは"color")

5.できたLoRAを使ってみよう:図版3

こちらが先ほどと同じ設定での生成結果です。

5.できたLoRAを使ってみよう:図版4

適用度1の画像を見ていただくと、背景に青系のグラデーション変化が加わってしまい、セーラー服が白Tシャツに化けかけていることが分かります。先ほどのタグ付けと矛盾するイラストが入力画像として描かれているために、うまく各要素が除去できていないようです。

こちらのイラストも分かりやすい例。さきほどの背景が学習されてしまっているので、なんとなく背景に似た感じのグラデーションが生じるLoRAになってしまっていますね。「purple eyes」と指定しないと、目の色も先ほどのイラスト通り青色に描かれます。

5.できたLoRAを使ってみよう:図版5

このように、読み込ませる画像がたった一枚なので、「その画像の細部がベース画像とどう変わっているかがLoRAの出来を大きく左右する」と覚えておきましょう。

6.「蒸留」で高精度な自分画風LoRAを作ろう

さて、さきほど手描き線画で作った自分画風LoRAは、残念ながら画風と同時に余計なことまで学習してしまい、イラストの低劣化をもたらしてしまうことが分かりました。これは私の絵が下手であるのももちろんですが、CoppyLoRAが簡易的なLoRA生成アプリである以上、どうしても仕方のない現象です。低劣化を避けながら、自然に私の画風を再現するために、LoRAの「蒸留」を行ってみましょう。

さきほどは純粋に私の手描き絵でLoRAを作ったわけですが、今度はそのLoRAで「賢木画風で、かつ低劣ではないAI絵」を作り、その画像を使ってもう一度LoRAを作り直してみます。つまり、先ほど得られた賢木画風LoRAを弱めに適用し、AnimagineXL3.1由来の画力によって「ほどよく高品質なベース1girlちゃん」を作ってもらい、その画像でもう一度「真・賢木画風LoRA」を作るというわけ。こうすれば、私の手描き由来の低劣さを避けながら、純粋に私の画風に寄せることができるはずです。

こうした工程は、得られた成果物を利用して、より純粋なものを抽出しようと試みることから「蒸留」と呼ばれています。

まず、こちらがベース1girlちゃんを線画化した画像です。これを、賢木画風LoRAを使ってimage2imageします。

6.「蒸留」で高精度な自分画風LoRAを作ろう:図版1

キャンバスサイズは1024x1024のまま。私の画風にほどよく寄せたいので、ノイズ除去強度はやや強めの「0.7」とします。プロンプトは以下の通り。月須和・那々さんの線画LoRAも併用して、高品質な線画化を目指します。

<lora:sakakilora1:0.5><lora:test-sdxl-lineart-11:1> 1girl, solo, blush, shirt, looking at viewer, simple background, white background, collarbone, closed mouth, short hair, upper body,portrait

賢木画風LoRAの適用度をXYZ plotで比較すると、下図のようになりました。

6.「蒸留」で高精度な自分画風LoRAを作ろう:図版2

どれも同じじゃないですかーっ!と言いたいところですが、結構細部を見ると変化が見て取れます。

最初に入力画像にしたものと、LoRA適用度「0.7」の一枚を見比べてみましょう。私画風の「原液感」が薄まったかわりに、線の低劣さ(素人くささ)も除去できているのが分かるかと思います。

6.「蒸留」で高精度な自分画風LoRAを作ろう:図版3

ただ、生成画像そのままだと私画風の成分が薄すぎるので、ちょっと違うタッチで加筆して整えます。こちらを新たな入力画像として、改めてLoRAを作ってみましょう。(手順は先ほどと全く同じ)

6.「蒸留」で高精度な自分画風LoRAを作ろう:図版4

また15分ほどして、新たなバージョンのLoRAができました。「蒸留」によってできたこの「真・賢木画風LoRA」で、さきほどのミナちゃん生成実験を行ってみると、このような結果に。

6.「蒸留」で高精度な自分画風LoRAを作ろう:図版5

適用度「1」同士を比べるとこう。左の真・賢木画風LoRAでは、画風は私に寄りつつも、イラストの低劣化がさきほどより避けられていることが分かるかと思います。

6.「蒸留」で高精度な自分画風LoRAを作ろう:図版6

また、アイデアとして、最初の線画を自分で描いた後に、AI-Assistantの線画化機能やcopainterを使って、より高品質な線画に仕上げてからCoppyLoRAに送る…という手法もあります。、あた。普段イラストを描かない方でも、画像生成を駆使して自分らしい画風の「ベース1girlちゃん」を作れば、理想の絵柄をより楽に再現できるようになるでしょう。

7.自分画風LoRAを上手に活用しよう

さて、蒸留によって低劣化をある程度抑えた自分画風LoRAが得られたわけですが、やはり1枚のバストアップ画像から作ったLoRAだけに、通常のtext2imageで使うと生成画像の品質低下は避けられません。できるだけ純粋に画風だけを再現する場合、生成時にひと工夫する必要があります。

CoppyLoRA はそもそも、とりにくさんの傑作アプリ「AI-Assistant」でオート線画化をしてもらう際に、AnimagineXL3.1由来のAIっぽい画風に寄ってしまう現象を解決するために作られたアプリですから、まずはAI-Assistantで使うのが筋でしょう。text2imageでは構図などが単純化してしまうことが避けられませんが、CNを使ったimage2imageであれば、LoRA由来の低劣化は限定的になります。

※AI-Assistant v3までは「image2image」タブでしかLoRA一覧が読み込めませんでしたが、v4からは線画化タブや新機能の「着色タブ」でも利用できるようになっていますので、そちらを使うことをおすすめします。

やり方は簡単。「AI-Assistant\models\Lora」フォルダにLoRAを保存してから、AI_Assistant.exeではなく「AI_Assistant_exUI.bat」をダブルクリックして起動するだけです。

7.自分画風LoRAを上手に活用しよう:図版1

このbatファイルから起動すると、img2imgタブなどに「LoRAモデル一覧」のメニューが追加されます。ここからさきほど保存した自分画風LoRAを選べば、イラストの「自分画風化」ができるようになります。

①AI-Assistant:image2imageタブで使う

「image2image」タブでAIイラストを読み込み、賢木画風LoRAで描き直してもらう実験をやってみましょう。ここではスタイルチェンジが得意なControlnet「anytest v4」を選びます。(v3は線画維持が得意なので、線画をずらしたい場合はv4のほうが向いています)

①AI-Assistant:image2imageタブで使う:図版1

自分画風をどれだけの強さで影響させるかは好みですが、ここではLoRA適用度を「1」、「画像再現度」を最低に近い0.1、「Anytest忠実度」は通常の1としました。入力したイラストの画風から大きく離れつつ、全体的な被写体の情報は忠実に描き直してもらいたいのが狙いです。

①AI-Assistant:image2imageタブで使う:図版2

こちらが賢木画風LoRA適用前、適用後です。基本的な被写体はそのままに、線画や目のタッチ、顔の輪郭などが変わっているのが分かるかと思います。

①AI-Assistant:image2imageタブで使う:図版3

②AI-Assistant:線画化タブで使う

今度は、同じイラストを私の画風で線画にしてもらう実験を行います。線画化タブにさきほどのイラストを入力し、まずはCannyを「生成」。ここでは、入力した画像から大きく離れた画風で線画化してほしいので、線画忠実度を最低の「0.5」とし、かつ低劣化を避けるためにLoRA適用度を0.6程度に弱めて本番生成を行いました。

プロンプトは「prompt抽出」で自動表示されたものに、image2imageタブでやったのと同じようにLoRAを適用しています。

こちらが生成結果。入力画像の線から大きく離れずに、自分の画風を適用させることができました。

②AI-Assistant:線画化タブで使う:図版1

上の例ではカラーのAIイラストを線画化していますが、もちろん本来用途である「ラフの線画化」も可能です。重要なのは、ラフの線の粗さによって、適切なパラメータ設定は変化するということ。ラフの線を重視するか、LoRAの画風を重視するかによって、線画忠実度やLoRAの適用度を調整しましょう。

②AI-Assistant:線画化タブで使う:図版2

上の画像では、線画忠実度を低めの0.6とし、「ラフな線はほどよく無視してよいので、そのぶんきれいに線画として整えてね」という指示にしています。LoRA適用度もやや低い0.5として、弱めにLoRA由来の画風再現を掛ける設定にしてみました。迷い線が消えてきれいに線画化されていますが、髪の毛の位置や体の描写はラフとはかなり違ってしまっています。

②AI-Assistant:線画化タブで使う:図版3

「ラフの迷い線が残ってしまってもよいので、より原画に寄せたい」場合は、線画忠実度を高めます。線画忠実度1にすると、このように髪の毛の位置が適正になり、よりラフの意図が反映されました。残った迷い線は消しゴムしてしまいましょう。

②AI-Assistant:線画化タブで使う:図版4

③AI-Assistant:着色タブで使う(v4~)

「v4」から新たに導入されたのが、待望の「着色」タブ。copainterの着彩AIのように、クリスタなどでバケツ塗りした画像を入力することで、水彩、厚塗り、アニメ塗りの3つの着色を楽しめるタブです。自分らしい「塗り」を学習したLoRAがあれば、自分風の塗りをこのタブで再現することが可能です。

自分塗りLoRAは、白背景の線画を差分として覚えさせるのではなく、このように線画のない、塗りだけの画像を用意して「Color_noline」モードで追加学習させることで得られます。もちろん、絵が掛けない方も、プロンプトや既存のLoRA、モデルマージなどを駆使して「自分らしい」塗りを追求すれば、自分塗りLoRAを作ることができます。(線画つきのカラー画の場合は、color_nolineでなくcolorモードを選びましょう。)

<"AI着色"タブの使い方>

AI着色タブではこのように、バケツ塗りした線画を読み込ませると「水彩」「厚塗り」「アニメ塗り」の3種から選べるようになっています。これらは内部的に3つの塗りLoRAを適用して実現しているので、4つ目以降のLoRAとして自分塗りLoRAを用意することもできるというわけ。

③AI-Assistant:着色タブで使う(v4~):図版1

上記の手順で、自分塗りLoRAを適用すると、このように塗ることができます。

③AI-Assistant:着色タブで使う(v4~):図版2

こちらはデフォルトの3つのLoRAをそれぞれ適用した場合。基本的に線画は描かれないので、自分で用意した線画を上にレイヤーで重ねて利用することが想定されています。

③AI-Assistant:着色タブで使う(v4~):図版3

④ADetailerで顔だけにLoRA適用する

顔以外への影響を避けたい場合は、StableDiffusionの拡張機能「ADetailer」を使って、顔だけにLoRAを適用することもできます。基本的な使い方はこちらの記事をご参照ください。

やり方はごく簡単。ADetailerをONにして、「face」系のADetailerモデルを選択し、プロンプト欄にloraの起動文を入れるだけです。表情や細部がぼやけるのを避けたい場合は、このように被写体に関するプロンプトも足せばOK。

④ADetailerで顔だけにLoRA適用する:図版1

するとこのように、通常の生成段階に引き続いてイラストの顔部分が自動検出され、この正方形の範囲だけにLoRAが適用されます。

④ADetailerで顔だけにLoRA適用する:図版2

こちらが、LoRAなしで生成した画像。

④ADetailerで顔だけにLoRA適用する:図版3

上の画像のポジティブプロンプトに<lora:sakakilora:0.5>を追加して、キャンバス全体にLoRAを強度0.5で適用した場合はこのようになります(text2image)。全体がしっかり賢木画風になりましたが、やや線がシンプルすぎる気もしますね。

④ADetailerで顔だけにLoRA適用する:図版4

そしてこちらが、ADetailerで顔だけにLoRAを掛けた場合。Inpaint denoising strengthは0.5、LoRA強度は1です。

④ADetailerで顔だけにLoRA適用する:図版5

キャンバス全体にLoRA適用したときより、画風の再現度が落ちていますね。Inpaint denoising strengthを1にしたいところですが、そうするとたいていの場合、顔面部分にもう一人アスカが描かれてしまいますし、うまく周囲となじみません。

④ADetailerで顔だけにLoRA適用する:図版6

そこで、ADetailer上でControlnetを使います。ADetailerのメニューの一番下にControlnet用の操作パネルがありますので、lineart系のControlnetを強度1で適用し、endは0.5以下に設定。こうしておいて、ADetailerのLoRA適用度は「1」Inpaint denoising strengthも「1」で生成してみましょう。

④ADetailerで顔だけにLoRA適用する:図版7

するとこのように、影響範囲を顔だけに絞りつつ、Inpaint denoising strengthガ0.5のときよりも大きく画風を書き換えることができました。

④ADetailerで顔だけにLoRA適用する:図版8

ちなみにendを0.5以下にしたのは、最終ステップまでフルに掛けると、このようにADetailer部分が周囲から浮いてしまうためです。Controlnetをステップ前半にだけ掛けることで、ステップ後半で周囲と自然になじませることができます。

④ADetailerで顔だけにLoRA適用する:図版9

よく見るとendが「0.3」の画像も切れ目が見えないではないので、その場合はimage2imageアップスケールをしたり、トーンカーブなどで馴染ませるとよいでしょう。

8.応用編 -もっと自由なLoRAを作ってみよう-

この記事では基本的に「ベース1girlちゃんを手で描き直して画風LoRAを作る」という通常の使い方しか紹介しませんでしたが、イラストを手描きしない方でも、生成画像を使ってLoRAを作ることは可能です。コピー機LoRAの原理さえ理解していれば、CoppyLoRAで部位変化LoRAや塗り変化LoRA、キャラクターLoRAを簡易的に作ることができます。

例えば、NovelAIでベース1girlちゃんの耳だけを「エルフ耳」にインペイントしてみるとします。

8.応用編 -もっと自由なLoRAを作ってみよう-:図版1

「1girl, {{{pointed ears,elf}}},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」でインペイント生成すると、あっという間にこちらの画像が得られますね。

8.応用編 -もっと自由なLoRAを作ってみよう-:図版2

これを入力画像にすれば、ベース1girlちゃんを手描きで直すことなく、簡単にエルフ耳LoRAが得られるわけです。耳だけでなく、目を青色に、髪を金色に変えておけば、1girlがみんなエルフ化する「エルフ化LoRA」になりますね。(簡易版なので完璧ではありませんが…)

目の周辺を{{{hair over eyes,invisible eyes}}}でインペイントして、このようにすれば、目隠れちゃんLoRAになります。

8.応用編 -もっと自由なLoRAを作ってみよう-:図版3

このようにAnytest v4を使ったスタイルチェンジで水彩画風にすれば、塗り変化LoRAも作ることができます。「もう手元にちゃんとした水彩画風LoRAがあるのに、それを使って水彩画風LoRA作ってどうするの?」と言われそうですが、例えば賢木画風で水彩画風の1girlちゃんを入力画像にすれば、スタイルチェンジと画風再現を組み合わせたLoRAを作ったりできますね。

8.応用編 -もっと自由なLoRAを作ってみよう-:図版4

やや乱暴ですが、このようにベース1girlちゃんを特定キャラクターにインペイントなどで変化させて学習させることで、キャラクター再現LoRAを作ることも可能です。

8.応用編 -もっと自由なLoRAを作ってみよう-:図版5

ただ、バストアップの1枚だけで容姿を学んでも、足元や横顔・背後などのデザインが学習できないので、さまざまなポーズをさせようとしても破綻しますし、服装などもそこまで再現できません。作れるのはあくまで簡易的なキャラLoRAにとどまることは覚えておきましょう。

上のミオリネさんで作った簡易キャラLoRAで「1girl」のみで生成した画像がこちら。LoRAが覚えているのはこれだけです。(※なお、AnimagineXL3.1は最初からミオリネさんの容姿をかなり正確に覚えているので、あまりLoRAを使う意味はありません)

8.応用編 -もっと自由なLoRAを作ってみよう-:図版6

「LoRAで影響させたい部分だけを描き直し、させたくない部分はベース画像のままにする」「追加学習モードは入力する画像に合ったものにする」というルールさえ頭に入っていれば、アイデア次第でさまざまなLoRAが作れるようになると思います。

簡易的な性能にとどまるとはいえ、他人のイラストを利用してその人の画風LoRAを勝手に作ったり、公開したりすると、感情的なトラブルの原因になります。法的な側面だけでなく、無用なトラブルを招くリスクをきちんと自分で勘案して自己防衛することをおすすめします。

終わりに

そんなわけで、随分長くなってしまいましたが、自分LoRAで画風を統一!「CoppyLora webUI」の基本と応用でした。

AIイラストで一貫した「自分らしさ」を表現することは難しく、プロンプトを突き詰める人、手描き技術を駆使する人、モデルマージ沼を掘り下げる人など、さまざまなアプローチがなされてきました。そのうちの一つが「自分LoRAを作る」でしたが、高品質なLoRAを作るには追加学習の知識や熟練、適切にタグ付けされた追加学習用データ、マシンパワーといった要素がそろわなければなかなか簡単ではありません。それが、CoppyLoRAの登場で誰でも簡単にLoRAが作れるとなれば、ついにマスピ顔の氾濫に終止符が打たれ、「ユーザー1人1つの一貫した絵柄」が実現できるようになるかもしれません。

もちろん、この記事でいろいろ検証したように、CoppyLoRAは精度よりも使いやすさに全振りしたアプリですから、できたLoRAが低劣さを招いたり、思ったような画風再現ができなかったりする場面もあります。より高精細なLoRAを求める人は、Kohya GUIを使うなどLoRA上級者向けの追加学習を学ぶのも良いと思います。

今後の展望として、例えばこのやり方で多数「自分画風に統一された完成AI絵」ができていったとしたら、それをCoppyLoRAではなく通常のLoRAの作り方で追加学習させ、完璧な「自分LoRA」が作れるのではないか?と思っています。CoppyLoRAは追加学習入門用のアプリとして、非常に画期的なツール。より面白い使い方を発明された方は、ぜひこっそり教えてくださいね。

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