[Guide] Make your own Loras, easy and free
詳細
ファイルをダウンロード
このバージョンについて
モデル説明
何のダウンロードも必要ありません。このガイドではオンラインツールを使用します。下の「Moreを表示」をクリックしてください。
このガイドの最新版は、私の新しいウェブサイトにてご確認いただけます。AIアーティストやモデル作成者たちが安心して自分の作品を共有できる、快適な場所です。
🏭 はじめに
どんなに始め方が分からない、または高性能なコンピュータを持っていなくても、私があなたを最初のLoRA作成へと導きます!
このガイドでは、私のGitHubページからリソースを使用します。Stable Diffusionに初めて触れる方のために、独自の画像を生成し、有用なツールを学ぶための完全ガイドもあります。
私は自分の趣味とその努力を共有することに喜びを感じており、すべての情報が誰にでも自由になるべきだと信じています。画像生成ソフトウェアも含めて。ただし、人をだまして、詐欺をし、法律を破る目的でAIを使う場合、私はサポートしません。単なる娯楽のためだけです。
📃 必要なもの
インターネット接続。スマートフォンからでも可能(タブを閉じないようにすれば)。
LoRAとは何か、そしてどう使うかに関する知識。
耐性。新しい概念を分かりやすい方法で説明しようとします。注意深く読み、批判的思考を持ち、エラーに直面してもあきらめないでください。
🎴 LoRAの作成
難しそうと噂されています。選択肢が多すぎて、誰もそれが何の役に立つのか教えてくれません。しかし、私はこのプロセスを簡略化し、ありのままの状態から1時間未満で誰でも自分のLoRAを作れるようにしました。同時に、後から使える高度な設定も保っています。
もちろん、自分のコンピュータでLoRAを訓練することもできます。ただし、NvidiaグラフィックスカードでVRAMが6GB以上ある必要があります。このガイドではそれを行わず、Google Colabを使用します。これにより、1日数時間(または週に20時間とされる)無料でGoogleの高性能コンピュータとGPUを借りられます。さらに$10を支払えば最大50時間を追加で利用可能ですが、必須ではありません。また、Google Driveのストレージも若干使います。
このガイドは主にアニメスタイルを対象としていますが、フィトリアリズムにも対応しています。ただし、同意なしに実在の人間の顔を模倣したい場合は、お手伝いはできません。
🎡 LoRAの種類
ご存じの通り、LoRAは以下の目的で訓練・使用できます:
キャラクターまたは人物
アートスタイル
ポーズ
衣装
など
しかし、現在では種類もいくつかあります:
LoRA:伝統的なタイプ。ほとんどの用途で効果的です。
LoCon:より多くのレイヤーで学習し、訓練データのさまざまな側面をより詳しく学習します。アートスタイルに特に優れています。
LoHa, LoKR, (IA)^3:これらは新しい数学的アルゴリズムを使って訓練データを処理します。私はそれらがあまり有用ではないと考え、このガイドでは取り上げません。
📊 第一部:データセットの作成
LoRAを作成する上で最も時間がかかり、最も重要になる部分です。データセットとは、私たちにとって、画像とその説明文の組み合わせです。各ペアのファイル名は同じ(例:「1.png」と「1.txt」)であり、すべてが共通する要素を含み、AIが学習したい内容です。データセットの品質は極めて重要です。ポーズ、角度、背景、衣装などそれぞれに少なくとも2つ以上の例が必要です。たとえば、すべての画像が顔のクローズアップであれば、全身の画像生成には苦労します(ただし可能ですが!)。全身の画像が複数出現しない限り、それらの例を加えることが重要です。バリエーションを増やすほど、AIが学習するコンセプトはより明確になり、トレーニングデータにはなかった新しい出来事の作成が可能になります。たとえばキャラクターが新しいポーズや別の衣装で生成されるようになります。最低5枚の画像で標準的なLoRAを訓練することは可能ですが、20枚以上、必要に応じて最大1000枚まで推奨します。
説明文に関しては、一般的な画像の場合、短くて詳細な文(例:「金髪の女性が椅子に座っている全身写真」)が適しています。アニメの場合、boom(tags)(例:「1girl, blonde hair, full body, on chair」など)を使う必要があります。データセットにおけるタグの運用方法を説明します。Tagはとても詳細である必要があり、LoRAは訓練で使用するベースモデルに依存して動作します。すべての画像に共通するが、タグに含まれていない要素は、LoRAの一部となりてしまいます。これは、顔や小物など、言葉ではうまく説明できない詳細がLoRAに吸収されるためです。この効果により、これらの詳細をアクティベーションタグへと吸収させることができます。アクティベーションタグとは、テキストファイルの先頭に置く固有の単語またはフレーズで、LoRAのプロンプトを簡単に設定できるようになります。
画像はインターネットから集め、手動で説明を付けることもできます。しかし幸いなことに、私が開発した新ツール📊 Dataset Maker Colabを使って、このプロセスの大部分を自動化できます。
以下のステップに従ってください:
1️⃣ 設定:Google Driveに接続されます。プロジェクト名をシンプルに選び、お好みのフォルダ構造を設定してから、左側の浮き上がった再生ボタンをクリックしてセルを実行してください。アクセス許可を求められるので、ガイドを続行するために「許可」をクリックしてください。
- すでに訓練用の画像がある場合、Google Driveの「lora_training/datasets/project_name」(古いフォルダ)または「Loras/project_name/dataset」(新しいフォルダ)にアップロードし、ステップ2をスキップしても構いません。
2️⃣ Gelbooruから画像をスクレイピング:アニメの場合、我々は広大なアートのコレクションを活用してLoRAを訓練します。Gelbooruは、画像のすべてを説明する数千ものbooruタグで画像を分類しています。これにより、後で画像にタグを付ける方法も同様になります。Colabの指示に従ってください。基本的に、特定のタグを含む画像をリクエストします。タグは、あなたのアイデアやキャラクターやスタイルを表しています。このセルを実行すると、結果が表示され、続行するかどうか尋ねられます。満足いく結果が得られたら、yesと入力し、画像がダウンロードされるまで1分ほど待ってください。
3️⃣ 画像の選別:Gelbooruには多数の重複画像があります。そこで、FiftyOne AIを使って重複を検出し、削除対象としてマークします。このセルを実行すると数分かかります。削除はまだ行われません。その後、セルの下にインタラクティブな表示領域が現れます。ここでは、すべての画像がグリッド形式で表示されます。気に入らない画像を選択し、削除対象としてマークできます。Colabの指示に従ってください。低品質または関連のない画像を削除すると効果的です。作業完了後、インタラクティブ領域上のテキストボックスに入力し、Enterキーを押して変更を適用してください。
4️⃣ 画像のタグ付け:アニメ画像にはWD 1.4タガーアイを使ってタグを自動付与し、実写やその他の画像にはBLIP AIを使ってキャプションを生成します。数分かかります。タグ付けの閾値を0.35〜0.5くらいに設定すると良好な結果が得られます。このセルを実行すると、データセット内の最も一般的なタグが表示され、次のステップで役立ちます。
5️⃣ タグの選別:このステップはアニメ用タグにおいてオプションですが、非常に役立ちます。ここでは、LoRAのアクティベーションタグ(トリガーワードとも)を設定できます。スタイルを訓練する場合は、常に効果があるようにしたいので、アクティベーションタグを設定しないことが一般的です。キャラクターを訓練する場合は、私自身はよく共通タグ(体の特徴・髪や目の色など)を削除(プリューン)します。これにより、それらがアクティベーションタグに吸収されます。プリューンはプロンプトの使いやすさを向上させますが、柔軟性は低下します。 一部の人は、すべての衣装タグを1つのタグに統合してキャラクターアウトフィットを一意にしたいと考えますが、私はお勧めしません。過剰なプリューンは一部の詳細に影響を与えます。より柔軟なアプローチとして、タグのマージ(統合)が効果的です。たとえば、「striped shirt, vertical stripes, vertical-striped shirt」のような重複タグを「striped shirt」に統一できます。このステップは何度でも実行できます。
6️⃣ 完了:データセットはGoogle Driveに保存されます。これで何でも自由に使えます。しかし、このガイドの第二部に進み、すぐにLoRAの訓練を始めましょう!
⭐ 第二部:設定と訓練
ここがもっとも難しい部分です。LoRAの訓練に、私の⭐ LoRA Trainer Colabまたは🌟 XL LoRA Trainer Colabを使用します。SD1.5モデル用かSDXLモデル用かによって選択します。この2つのコラボは非常に似ており、すべての設定が1つのセルにまとめられています。多くの設定は変更する必要はありません。ただし、このガイドとColabがそれぞれの設定が何の役に立つのかを説明するため、将来的に変更して遊ぶことができます。
以下が設定項目です:
▶️ 設定:最初の部で使用したプロジェクト名を入力すると、自動的に動作します。ここでは訓練に使用するベースモデルも変更できます。推奨される2つのデフォルトモデルがありますが、カスタムモデルの直接ダウンロードリンクを貼ることも可能です。データセットメーカーで使用したフォルダ構造と同じものにすることを確認してください。
▶️ プロセス: この設定では、データセットがどのように処理されるかが変わります。
解像度は512のままにしてください。これはStable Diffusionの標準値です。これより高いと訓練が極めて遅くなりますが、より細かなディテールが得られます(SDXLはデフォルト1024)。
flip_aug は、より均等に学習するためのテクニックで、すべての画像を増やしたかのように効果を発揮しますが、左右が混同されやすくなるため、ご自身で判断してください。
shuffle_tags はアニメ用タグを使う場合は常に有効にしてください。プロンプトの柔軟性を高め、バイアスを減らす効果があります。
activation_tags は非常に重要です。データセット作成の段階でタグを追加した場合は1に設定してください。これは keep_tokens とも呼ばれます。
▶️ ステップ:ここは注意を払う必要があります。4つの変数が関係しています:画像数、繰り返し回数、エポック数、バッチサイズ。これらが合計ステップ数になります。
合計エポック数または合計ステップ数を指定できます。少し例を挙げてみましょう。ステップ数が少なすぎるとLoRAが不十分になり、使い物になりません。逆に多すぎると過剰に訓練され、画像が歪んでしまう可能性があります。そのため、数エポックごとにLoRAを保存して比較できるようにします。そのため、繰り返しは少ない方が良いと私は推奨します。
LoRAを訓練する方法はさまざまです。現在私が採用している方法は、画像数に応じて250〜1000ステップになるように値を調整することです。スタイルを訓練する場合、より多くのエポック数と小さな学習率が必要になる場合があります。XLモデルで訓練する場合、繰り返し回数は約半分にします。XLの例を挙げます:
- 10枚 × 10回繰り返し × 10エポック ÷ 2バッチサイズ = 500ステップ
- 20枚 × 5回繰り返し × 10エポック ÷ 4バッチサイズ = 250ステップ
- 100枚 × 1回繰り返し × 10エポック ÷ 4バッチサイズ = 250ステップ
- 1000枚 × 1回繰り返し × 6エポック ÷ 8バッチサイズ = 750ステップ
▶️ 学習: 最も重要な設定です。ただし、最初はこれらの設定を変更する必要はありません。いずれにせよ:
UNetの学習率は、LoRAが情報をどれだけ速く吸収するかを決定します。ステップと同様、小さすぎるとLoRAが何も効果を示さず、大きすぎると生成されるすべての画像が不具合になります。幅広い範囲で動作する値が存在します。特にプロンプト内でLoRAの強度を変更可能なので、dimを8〜32の間で設定した場合、ほぼすべての状況で5e-4を推奨します。ゆっくりとゆっくりと焼き上げたい場合、1e-4 や 2e-4が良いでしょう。これらは科学的記数法です:1e-4 = 0.0001。
テキストエンコーダーの学習率は、それほど重要ではないです。特にスタイルに役立ちます。タグをより良く学習させますが、なくても十分学習できます。一般に、UNetの半分または五分の一つが推奨され、1e-4 または 5e-5が良い値です。これらが小さい値だと混乱する場合、Googleで電卓として使ってください。
スケジューラーは時間とともに学習率を調整します。これはあまり重要ではないですが、依然として有益です。私は常に「コサイン(3回再開)」を使用し、LoRAを「新鮮」に保っていると感じます。cosine, constant, constant with warmup を試してみることをお勧めします。どれをとっても大丈夫です。また、ウォームアップ比率も訓練を効率的に開始するのに役立ちます。デフォルト値5%が効果的です。
▶️ 構造:ここでは、冒頭で紹介した2種類のLoRAのタイプを選択できます。また、dim/alphaはLoRAのサイズを表します。大きければ良いというわけではありません。私は自分のキャラクター用に16/8を使い、これは非常に効果的でサイズはわずか18MBです。
▶️ 完了:この大きなセルを実行してLoRAの訓練を開始できます。起動には5分程度かかり、その後訓練ステップが開始されます。合計で1時間未満で完了し、結果はGoogle Driveに保存されます。
🏁 第三部:テスト
ここで再び読んでもらっていいです。嘘をつきました!😅 このガイドは3つの部分からなります。
LoRAを完成させても、本当に良いのかを確認するためにはテストが必要です。Google Drive内の /lora_training/outputs/ フォルダに進み、プロジェクト名のフォルダ内のすべてのファイルをダウンロードしてください。これらは、訓練のさまざまなエポックで保存された異なるLoRAです。それぞれが01, 02, 03などの番号を持っています。
以下は、最適なLoRAの使い方を見つけるための簡単なワークフローです:
最終的なLoRAをプロンプトに0.7や1の重みで入れ、ガイドのタグ付けで確認したよくあるタグのいくつかを含めてください。明確な効果が現れ、訓練した内容に似ているはずです。満足いくまでプロンプトを調整してください。
X/Y/Zプロットを使って、さまざまなエポックを比較します。これはWebUI内の組み込み機能です。生成パラメータの下部に進み、スクリプトを選択します。最初のエポックのLoRAをプロンプトに(例:"lora:projectname-01:0.7")入れ、スクリプトのX値に「-01, -02, -03」のように入力します。X値が「Prompt S/R」モードになっていることを確認してください。これによりプロンプト内の置換が行われ、異なるLoRAの番号を順番にテストすることで品質を比較できます。時間が節約したい場合、2つごとや5つごとのエポックを比較してもOKです。より公平な比較のために、画像のバッチでテストすると良いです。
最も好きなエポックを見つけたら、最適な重みを探索しましょう。X/Y/Zプロットを再び実行し、X値に「:0.5, :0.6, :0.7, :0.8, :0.9, :1」のように入力します。これによりプロンプトの一部が置換され、さまざまなLoRAの重みをテストできます。再度、バッチで比較するのが良いです。完璧なディテールを得つつ、画像が歪まない重みを探します。必要に応じて2と3をX/Yとして一度に行うことも可能です。少し時間がかかりますが、より網羅的なテストになります。
お気に入りの結果が得られたら、おめでとうございます!さらに違う状況、角度、衣装などをテストして、LoRAがトレーニングデータにない新規のものを生成できるかを検証してみてください。
最後に、以下のような失敗の原因があるかもしれません:
LoRAが何の効果も出ない、またはごくわずかの場合、「未熟」または「焼き不足」と呼ばれます。UNetの学習率が低すぎたり、学習時間が不足している可能性があります。プロンプトのミスを確認してください。
LoRAは動くが、望んだ内容と似ていない場合は、やはり「焼き不足」、もしくはデータセットが低品質(画像と/またはタグ)であった可能性があります。一部のコンセプトは非常に訓練しにくいので、見当がつかない場合はコミュニティに助けを求めましょう。
LoRAが歪んだ画像やアーティファクトを生成し、過去のエポックでも改善しない、または「nan」エラーが出る場合、「過熱」または「焼き焼き」であり、学習率や繰り返し回数が高すぎた可能性があります。
LoRAが制限されすぎている場合、「過剰適合(過適合)」と呼ばれます。データセットが小さすぎた、またはタグ付けが不十分だった可能性があります。あるいは、わずかに「焼き焼き」です。
実際に使えるものが得られたら、これで終わりです。ぜひCivitaiにアップロードして、世界中の人々に見せてください。遠慮しないでください!乾杯!
私の新しいウェブサイトもチェックしてみてください。経験豊富なAIアーティストやモデル作成者が安心して自身の作品を共有できる快適な場所です:https://arcenciel.io

