【StableDiffusion】illustriousベースのオリジナルキャラLoRAの作り方備忘録【令和7年最新版】
■記事の対象ユーザ
1.LoRA作成可能な環境(VRAM10GB以上)を持っている
2.オリジナルキャラクターのLoRAの作り方を探している
3.昔は覚えていたLoRAの作り方が思い出せない人
■ようするに?
こんな感じのウチの子LoRAを作ったのでその手順をまとめています。
0.はじめに
この記事はローカル画像生成の浦島太郎シリーズの第四弾、キャラクターLoRA作成編です。
前回の記事(主流モデル比較)でillustrious系列のモデルにAnimagineベースのLoRAを使っても効果が得られにくいということが判ったので、今の環境でキャラクターLoRAを作る手順について記事に残しておこうと思います。
とはいえ、SDXL時代のLoRA作成手順と大きくは変わっていないので、過去記事の重複部分は省略気味で書いています。
手順自体は服LoRAとかと特に変わることはなく、以下の3ステップで作ることになるよ。
1.学習する画像の準備する
2.画像に対してタグ(キャプション)をつける
3.学習ツールの設定をして学習を開始する
1.学習する画像の準備
illustriousなどでは(良し悪しはともかく)メジャーな版権キャラはキャラクタータグで簡単に出せるようにモデル側で学習されていますが、オリジナルキャラに関してはそうも行かないため何らかの方法で学習素材を用意する必要があります。
私の場合は「VRoid Studioで素体を作る」→「AI-Assistantで線画化する」→「StableDiffusionでControleNetを使い素材画像を作成」という流れで作っているので順に説明していきますね。
1-1.VRoid Studioで素体をつくる
再現したオリジナルキャラになるべく近くなるようにVRoidStudioのパーツを組み合わせてモデルを作っていきます。素体が作れれば別に他のツールでもいいんですが、私はVRoid Studioしか使えないから仕方ないね。(他に制作物の権利問題が無いツールがあれば教えてください。)
ここで重要なのは「頭身」「髪型」「ケモ耳のような特徴の部分」だけで衣装はキャラLoRAでは覚えさせないのでぶっちゃけ適当でも問題ないです。
上記程度のモデルなら慣れていれば15分くらいで作れると思います。
モデルを作成したらVRoid Studioの撮影モードを使って学習に必要な画角の画像を撮影していきます。
今回用意する画像は以下20枚
・全身(full body用)の正面・側面・背面+斜め5種
・上半身(upper body用)の正面・側面・背面+斜め5種
・顔(face focus用)の正面・側面・背面+斜め5種
・その他(上から、下からの正面・背面と顔アップ)5種
もっと動きのあるポーズの画像混ぜたり、いろんな服装や表情を混ぜたりした方がキャラクターLoRAとして品質が上がる気もしているけど、完成品を見る感じこの程度でも効果があったのでヨシ!としています。
1-2.AI-Assistantで線画化する
素体を撮影したスクリーンショットをそのまま使って次の工程に進んでもいいんですが線画しておくと服の色を変えたり、不要なパーツを消しゴムで消せたり何かと便利なのでAI-Assistantの力を借りて線画化しておきます。
線画化には線画化LoRAを使う方法もありますが、手軽に線画化ができるAI-Assitantを利用します。
私の記事では何度か紹介していますが、AI-Assistantはとりにくさん(@tori29umai)が公開している線画化やノーマルマップ作成、着色など色々できるAI補助アプリで現在V5までリリースされています。線画化だけなら無料配布版の旧バージョンでも出来るのでnote内を探してみてください。
使い方については過去に服装LoRA作った時の記事内の「Ai-Assistantで線画作成」の項で書いてあるのでそちらを参考に。
線画化したものがこちら。内蔵のモデルがAnimagineなので線画がAnimagine風になりますがそこまで後続処理に影響しないので気にしない。
1-3.ControleNetを使い素材画像を作成
この項では私の中で万能ControlNetと話題のAnyTestを使って線画から素材画像を作っていきます。
まだ使ったことないよ!って方は下記から
「CN-anytest_v4-marged.safetensors」をダウンロードしてお使いの画像生成ソフトのControlNetフォルダに格納します。
StabilityMatrixなら「StabilityMatrix-win-x64\Data\Models\ControlNet」辺り
ControlNetの設定で、先ほどの線画をInput画像に設定し以下のような感じでControl Weight=1で設定します。
AnyTestを強めに当てておくと線画はかなり正確に維持される+パーツの追加などもプロンプトの指定で追加してくれます。(今回だとX字のヘアピンや黒のチョーカーなど)
1girl,masterpiece,best quality,very aesthetic,absurdres,black hair,medium hair,aqua inner hair,(wavy hair:0.6),floating hair,(fox ears:1.4),(black fox ears:1.4),white animal ear fluff,(dark skin:1.2),(turquoise eyes:1.2),white pupils,bright pupils,yellow x hair ornament,single hair ornament,(black choker:1.2),gold neckless,blazer with line,black blazer,aqua nails,white shirt,gray skirt,(dark black thighhighs:1.4),aqua necktie,<lora:erase_human_ear_v10_ill>,(unfinished:1.4),simple background,black outline,<lora:HerrscherAGGA2025_Little_Netizen-ILThinLORA_V2:0.4>,<lora:ill_khaula_eyes_style_20250524:1>,medium breast,open cloth,black ears,(fox tail:-1),spread arms,upper body,
ちなみに、AnyTestだけでなくReferenceOnlyも併用すると画風や表現も多少変えられるので調整に便利です。
これで完成!・・・といいたいところですがハウラちゃんに尻尾をつけるのを忘れていたので、AnyTestのもう1つの機能を使って後からパーツを追加します。
AnyTestは塗りつぶした場所をプロンプトに沿う形で補完してくれる機能があるので着色した画像を編集し「尻尾が描画されそうな部分」を塗りつぶし、AnyTestの参照画像として渡します。
そして尻尾のプロンプトを足して画像を生成すると塗りつぶし部分に尻尾を追加してくれます。
これで学習用の素材が揃ったので、次はキャプションを付けていきます。
2.画像に対してタグ(キャプション)をつける
ここと次の学習設定の部分は以下の過去記事とほぼ同じ内容なので省略したいところなんですが、あんまりサボると怒られそうなのでちゃんと書いておきます。
2-1.Taggerを使ってタグつけ
WebUI拡張のタグ付けツール「Tagger」を使って素材画像にタグを付けます。reForgeとかではデフォルトで有効になっているので拡張をインストールしなくても画面上部にTaggerが表示されていると思います。
え?入ってない?なら以下のURLを指定してURLからインストールよ!
WebUIの画面上部からTaggerを選択。今回はフォルダの中の画像を一括で処理するのでBatch from directoryタブを選択します。
Input directory:画像が保存されているフォルダを指定
Additional tags:ここの記載したタグは全てのキャプションファイルに追加されます。なのでLoRAのトリガーワードにしたい文字列を入れます。
2つを入力したら「Interrogate」ボタンを押せば自動的にフォルダ内にキャプションファイルが生成されます。
2-2.Dataset Tag Editorで不要なタグを削除
WebUI拡張のタグ付けツール「Dataset Tag Editor」を使ってTaggerで自動的に付けたタグを編集します。reForgeとかではデフォルトで有効になっているので(略
え?入ってない?なら(略
https://github.com/toshiaki1729/stable-diffusion-webui-dataset-tag-editor
WebUIの画面上部からDataset Tag Editorを選択。Dataset directoryに画像とキャプションの入ったフォルダを指定してLoadボタンを押します。
読込が終わったら画面右側のタブを以下の様に選択します。
ここは画像から不要なタグを一括で削除するためのモードになります。
画面右側を下の方にスクロールすると、全ての画像に含まれるタグが一覧で表示されます。この中から不要なタグにチェックを入れて上の方の「Remove selected tags」ボタンを押せば不要なタグを削除できるわけですが、何を学習させたいかによって不要なタグが変わってきます。
ここで削除するタグはLoRAに「覚えさせたい要素」です。
キャラクターLoRAならLoRA自体に「black hair(黒髪)」や「dark skin(褐色肌)」、「blue eyes(青い目)」などの身体的特徴を覚えさせたいのでそれらのタグを削除しますし、逆に服LoRAなら身体的な特徴は消さずに「white shirt(白シャツ)」や「long sleeves(長袖)」、「hair ornament(髪飾り)」などを削除します。
服装も身体的特徴も併せて覚えさせたい場合はどちらも削除していきます。
※Taggerで登録したトリガーワード(今回はill_khaula)は消さないように注意してくださいね。
3.学習ツールの設定をして学習を開始する
素材となる画像とタグ付けが終わったらいよいよ学習です。
学習には定番の「Kohya_ss」を使用します。もし、環境が無い場合はインストールしておきましょう。
今回は必要最低限の変更点だけ述べる省エネスタイルで説明していくよ。
まずはKohya_ssを起動して
★手っ取り早く設定する場合は、このファイルをConfigration→Load/Save Config fileから読み込んでファイルパスだけ変えればOK
3-1.Model
■ Pretrained model name or path
ベースとなるモデル。今回はillustriousの派生モデルの1つである「waiNSFWillustrious_v140.safetensors」を使います。
ここに目当てのモデルが表示されない場合、kohya_ssのモデルフォルダに
ダウンロードしてきたモデル(safetensors)を配置しておいてね。
例:StabilityMatrix-win-x64\Data\Packages\kohya_ss\models
■ Trained Model output name
LoRAの保存名。好きな名前で良いけど後から分かりやすいようにしておくといいよ
■ Image folder
素材画像とキャプションファイルがあるフォルダ。フォルダの名前が後述のParametersの設定に関係してくるので注意してね。ここではとりあえず「10_任意の名前」というフォルダ名にしておいてください。(実際のフォルダ名もそのように変えておいてくださいね)
3-2.Folders
■ Output directory
完成品のLoRAが配置される場所。StabilityMatrixのLoRAディレクトリとか素材画像の1つ上とかを指定してお好みで。
3-3.Parameters
ここが一番ややこしいところなんだけど、今回は出来る限り設定変更の少なくて済むやり方で指定していきます。諸説ある部分の説明も省略しているのでご承知おきください。
まずはプリセットから「SDXL - LoRA adafactor v1.0」を選択。
そこから必要な場所だけ変更する形をとります。変更するエリアは3つ。
Train batch sizeは何枚の画像を同時に学習するかですが、増やすほどVRAMを使うようになるので、VRAM10GBくらいなら1にしておきましょう。12GBあるなら2でもいけるかも。
EpochとMax train epochは同値にしますが、この値は少しだけ計算が必要です。
今回は画像20枚として1500ステップくらいを目指すので
Train batch size = 1
Epoch = 7
繰り返し回数 = 10
学習用の画像の枚数 = 20
20枚×繰返し10回 = 200
200÷バッチ数1 = 200
200×エポック数7 = 1,400 STEP
Save every N epochs は途中でLoRAを保存してくれるヤツです。
7epochの時に5ならepoch=5の時とepoch=7の2回でLoRAが保存されます。
Caption file extensionは地味に忘れやすいので注意が必要で、
Taggerで作ったキャプションファイルの拡張子「.txt」を選んでおきます。
ここはテンプレートでadafactorを選択したのでオプティマイザもadafactor用の設定になっていますが、これをProdigy用に変更しておきます。
ここが大きいほど沢山LoRAが学習でき、LoRAのサイズも大きくなります。
8くらいで試してあんまり覚えてくれないなーってなったら16に増やすといいと思います。alphaは何も考えずにdimの半分の値にしておきます。
設定が完了したら画面下部の「Start Training」ボタンを押してじっくりコトコト煮込んでおきます。
4.完成品を試してみる
出来上がったLoRAをトリガーワード「ill_khaula」と一緒に指定して動作を確認してみます。
■ ポジティブプロンプト
masterpiece,best quality,very aesthetic,absurdres,1girl,ill_khaula,simple background,confused,v_over_eye,jeans,collarbone,<lora:20250530_ill_khaula:1.5>
■ ネガティブプロンプト
sensitive,nsfw,lowres,(bad),text,error,fewer,extra,missing,worst quality,jpeg artifacts,low quality,watermark,displeasing,oldest,early,chromatic aberration,signature,extra digits,artistic error,username,scan,[abstract],thick outline,shadow
はい、いい感じに出来てます。
この調子でもう一人のウチの子ヴァイオレンちゃんのキャラLoRAも作ってみます。手順は全く同じで、素材画像だけを変えたものになります。
既存の生成画像10枚に加えてAnimagine+Animagine用LoRAで生成した側面・背面用の画像10枚を用意しています。
髪型や目の色に関する部分だけタグを削除して作成したLoRAがこちら。
5.おわりに
学習設定は率直に言って沼なので最適解ではないかもしれませんが、画像さえ用意できれば比較的簡単にキャラクターLoRAが作れる手順ってことで村人の日記に残させてもらいました。
illustriousはAnimagineと違って手指をはじめ人体の破綻が少なくなっているので、それだけでもお引越しする意味があると思います。私のようにAnimagine用のLoRAは作ったけどillustriousに対応するのが面倒で・・・って方は是非トライしてみてください。
余談:ADDifTとCoppyLoRAについて
今回の記事、本当はコピー機LoRAが超高速で作れるようになった箱みかんさん(@hakomikanx)の「ADDifT」と、小難しい設定をすっ飛ばしてコピー機LoRAが作れるとりにくさん(@tori29umai)の「Coppy LoRA」について書く予定だったんです。
しかし
・コピー機LoRAは画像Aと画像Bの差分をLoRA化するものなので、今回の主目的であるキャラクターLoRA作成には適していない
・調整に使うスライダー系のLoRAについても、この1年の間にCivitaiに大量に投下されていてわざわざ自分で作る必要が無くなっている
などしたため、今回の記事での紹介を見送ることに・・・。
とはいえ、それなりに検証に時間を費やしているのでここで所感だけ述べて供養しておきます。
■ ADDifT(TrainTrain)公式(hakomikanさん)の解説と実践記事
ADDifTはウチの環境で通常1-2時間かかるコピー機LoRAを本当に1-2分で作ることが出来て感動体験アンビリバボーが得られました。しかし設定が結構シビアで狙ったLoRAを作るのにパラメータや学習画像の試行錯誤が必須となりトータルで考えると結構時間がかかってしまうという面も。
また2025年5月時点ではTrainTrain側のバグがあったようで、そもそも起動しないバグ、ADDifTのLoRAが作れないバグ、(私の環境だけかもですが)通常LoRAが作れないバグなどがあり、少し古いバージョンに戻したり修正版起動バッチを使ったりする必要があったため検証にかなり手間取ることに。
下記は1枚目と2枚目の差分からADDifTで耳消しLoRAを作ったもの。
正面の画像の差分を取っているため側面の耳には弱いLoRAになりました。
■通りすがりの月須和さんがスタンドアロン版起動バッチを直してくれた件
■通りすがりの月須和さんがWebUIのモデルロード後にVRAMを解放してくれるボタンを作ってくれた件
■ ADDifTの学習に失敗する件
この問題についてはTrainTrainのissueで十条さんが起票されていて、2025年3月6日版でなら動く、ということで試したところ確かに動作しました。
しかしADDifTは動いたものの通常LoRAが作れなかったのでまだ何かバグか、私の設定ミスだったかもしれねぇ・・・
■ CoppyLoRA公式(とりにくさん)のリリース記事
CoppyLoRAはウチのRTX3080(10GB)ではVRAMが不足していてCoppyLoRAのUIを含む全てのアプリを終了するなどしないと学習が出来ないレベル。
しかし、ADDifTと違って対象画像2つのアップロードと画像に対するタグ付けだけで簡単に作れて精度も結構良いものが出来るため、VRAM12GB以上ある人はTrainTrainやKohya's GUIよりこちらで作成することをオススメします。
試しに目の塗り方を変えるLoRAを作った時のツイートがこちら。
3枚目と4枚目を素材とすると、瞳孔以外が単色塗りになるLoRAが作れます。
うーん、同じ素材使ってもCoppyLoRAの方だとちゃんと瞳孔以外を塗りつぶすLoRAに仕上がるよねぇ・・・🤔 pic.twitter.com/ViZtcAW3Og
— カズヤ弟 (@dodo_ria) May 24, 2025
■イオさんの検証記事
自分で検証した後にイオさん(@studiomasakaki)の記事で答え合わせをしたところ、概ね似たような感想を書かれていたのでこの2つの詳細な検証に興味のある方は(有料ですが)イオさんの記事を参照してみてください。
以上、無駄にボリュームのある余談でした。



コメント
4タグ付けについてご質問させて頂きたいのですが、
Dataset Tag Editorでタグ付けと削除まとめてするよりTaggerを使ってタグ付けをした方が関連性の高いタグが出やすいのでしょうか?
>砂イルカさん
コメントありがとうございます。(そもそもDataset Tag EditorでもInterrogator使えたの今知りました。ありがとうございます。)
単に知らないだけだったのでお恥ずかしい話ですが、タグ検出自体はInterrogatorの性能と設定によるのでTaggerだから関連性が高くなりやすいというわけではないですね。
関連性については、デフォルトの閾値で出力したタグをtxt2imgに渡して画像生成→要素が足りない時に閾値を下げていい感じのタグを探す。みたいな微調整を多少手間ですがやってたりします。
なるほど、唐突な質問にも関わらず丁寧な回答と補足まで頂きありがとうございます。
非常に参考になる記事が多く、良く見させていただいてます。これからの記事も楽しみに応援しています!
大変参考になりました。ありがとうございます。
1点記事に問題があります。
現在のKohya_ssではImage folderは「10_任意の名前」の親フォルダを指定する必要がありました。「10_任意の名前」を指定するとエラーで学習できませんでした。
また高速化として、Cache latents to diskのチェックを外すと、学習する画像がメインメモリに収まればわずかに早くなるみたいです。
また、学習画像がPNGだとVRAMを多く食うみたいでJPEGの方が軽いようです。
なお、RTX3080(10GB)ではCrossAttentionはSDPAの方がわずかに速い程度でxformersとの差は僅かでした。