colabでlora作成

Last-modified: 2025-12-17 (水) 01:28:04

初心者としあき用 簡単無料XL LoRA学習

ここに来ればタダでXL LoRAが作れると聞いた星野鉄あきはこちら 

  • 準備する物 1,Googleアカウント 2,素材画像20~40枚 (初回はトリミングやリサイズなどの加工無しを推奨)
    XL LoRA 赤ちゃんノートブック

    https://colab.research.google.com/drive/1Ypf14AyM7dqNU5j1cRNh4Rb6T-Y8I_Jo?usp=drive_link

    【使い方】まず上のcolabノートブックのリンクを右クリックで新しいウィンドウで開く
    下の説明を見ながら別窓に開いたノートブックを横に並べて画像の赤字の数字の順に操作を進めていきます。

    • ノートブックの右上の青いボタンからGoogleアカウントにログインします。

      jj1.jpg
    • ノートブックをGoogleドライブへコピーします。新しいタブでノートブックのコピーが開かれます。
      元のノートブックはもう必要ないので閉じます、この操作は初回のみ必要となります。


    jj2.jpg


    • ノートブックの名前がコピーであることを確認し、colabで利用するGPUの種類を設定します。
      この操作は一度設定すると記憶されます。


    jj3.jpg



    ※この状態のノートブックをブラウザのブックマークに加えると次回利用するときよりスムーズになります。

    • 用意した素材画像をノートブックが展開できる形にします。
      (同名で拡張子の違う複数のファイルや対応しない形式のファイルがあるとエラーになります。
      名前内に スペース、カンマ、バックスラッシュ、アスタリスク、__2連のアンダーバーは禁止)


    jj4.jpg


    • ノートブックのリンクからGoogleマイドライブを開き
      zipファイルにした素材をマイドライブにアップロードします。

      jj5.jpg

    • ノートブックを下にスクロールさせて必須項目のProject name2箇所を入力し
      その後、全てのセルを実行する操作をします。
      (入力結果が同じになるならどんな入力方法でもいいですが、ミスの少ない方法で説明します。)

      jj6.jpg

    • セルの実行後少しすると、Googleドライブへのアクセス許可を求められるので
      指示に沿って操作し許可します。

      jj7.jpg

    • アクセス許可の操作後40~70分ほどでノートブックの一番下のログにセルの完了表示が出ます。
      (このまま連続で学習を行わない場合はランタイムタブから「ランタイムを接続解除して削除」
      を行うことでGPUの利用時間の消費を抑えることができます。)

      jj10.jpg

    • GoogleマイドライブにあるLoRAをダウンロードします。
      (LoRAのダウンロードが完了したら、ドライブ内のLoRA_trainingフォルダと
      素材画像.zipはゴミ箱に移動することを推奨します。)

      jj8.jpg



    • 初回の学習を終えて、次回利用する場合はGoogleアカウントにログイン後
      ●が9つ集まったGoogleアプリアイコンからドライブを選び、マイドライブ内の
      colab_notebooksフォルダ内のノートブックのコピーを開きます。
      jj9.jpg

    • Google colabの無料枠の利用時間は体感で1日2時間10分、丸1日以上触らないと
      4時間20分まで貯まる、使い切ってしまうと20~24時間利用不能になり制作は1日1~3回となります。
      ※学習ベースモデル数種の選択、学習量のepoc数、途中結果保存のepoc数の3つは
      操作可能となっていますが、もっと詳しくパラメータを弄りたければ
      元になってる Kohya ColabsのXL Lora Trainerノートブックを利用してください。
    • XL Lora Trainerは有料プランのA100(VRAM40GB)推奨で設定されていてOOMを起こします。
      なので赤ちゃんと同じパラメーターに変えてあるノートブックのコピーを置いておきます。
      https://colab.research.google.com/drive/17vzQXdGAkN2nzA2lmwDCEI3aTTKmDzAL?usp=drive_link
      ※Colabの性質上ある日突然エラーで使えなくなることになります、あしからず。

gucci1.jpg
画像1枚もしくは少数からのキャラLoRA学習


  • はじめに
    少ない画像をnanobananaで増やすので、おセンシティブな画像はGoogleに弾かれます
    場合によっては白ビキニすら通りません。そういう場合はあらかじめ隠すか服を着せてください。
    次にnanobananaに読み込ませるための基本的な画像を準備します。
    (キャラクターシートの出力も有効ではありますが無料だと出力サイズに難があるので1枚づつ)

  • 高解像度の全身画像がある場合
    元の画像から、Full body,cowboy Shot,bust up,の3つをトリミングとリサイズで作ります。
    そこからFull bodyの画像を読み込んで正面を作っていきます。
    gucci2.jpg

  • 一部しか見えていない画像の場合
    大きめのキャンバスに元となる画像を貼り付けた画像をペイントツールやサイトで作ります。
    その画像を読み込んで不足している部分に必要な要素の指示を出して
    bust up,cowboy Shot,Full body,を作っていきます。
    gucci3.jpg

    • 解説画像内の⇒の部分のnanobananaでの作業手順
      google ai studioをブラウザで開き
      画像の数字の順に従って操作してPC内の画像を読み込んだ後、指示を入力して画像を生成します。
      (利用上限に達した場合1日でも回復はするが2日待ったほうが個人的に良いと考えています。)
      gucci8.jpg

  • 生成を繰り返して素材を20枚準備します。
    gucci9.jpg

  • 作業が終わったらGoogleドライブのgoogle ai studioフォルダに
    読み込んだ画像を含む作業データが溜まっていくので必要ないならゴミ箱へ送る。
    gucci6.jpg

    • 20枚から作ったLoRAを使ってポーズ、アングル、表情、衣装などのバリエーションを100枚追加して
      元の素材と合わせて120枚の素材zipを作り、赤ちゃんノートブックの学習量の項目2つを書き換えて
      さらに汎用性のあるLoRAを作成します。
      gucci7.jpg

概要

そもそもcolabって何?どうやって使うの?という方はこちら
 → Colab版導入

colabでの学習環境の設定はローカルに比べて複雑で厄介です。
そんな中でもcolabでlora作成できるノートブックがいくつか公開されています。
githubで「lora colab」とか「kohya colab」とかで検索するといくつかヒットします。
VRAMが大きいcolabのGPUをうまく使えればかなりの時短ができます。特に有料枠のA100(ノーマルでVRAM40GB、ハイメモリでVRAM80GB)を使うとかなりの時短になります。
もちろん自前のグラボは不要!ローカルPCのGPUを使わないので、学習の待ち時間中にゲームしたりできますよ!

この項目ではhollowstrawberry氏のkohya-colabを例にcolabでのlora作成について解説します。
初心者でも使いやすいように説明が豊富で、なにより不具合が発生したら早めに直してくれるのでおすすめです。

lora作成に外部サービスを使うという意味ではcivitaiのトレーナーを使う手もあります。
手元に教師画像があるならこちらの方が簡単です。
 → CivitaiでLoRA作成
ただ、colabに比べて「buzzが必要(=実質有料)」「サイトが重い」「混雑状況によっては学習にかなり時間がかかる*1」などデメリットもあります。

使い方

ノートブック作者のhollowstrawberry氏が自ら解説記事を出しています。
少し前のバージョンについての記事ですが、かなり丁寧な解説です。
google翻訳にかけながらlora作成に挑戦してみましょう!



…さすがにリンクを貼るだけだと味気ないので、実際に使った感想や補足を書いていきます。

XL Lora Trainer

すでに教師画像キャプションtxtの用意が完了していることを前提としています。
まだ学習素材の準備が整っていない方はDataset Makerなどを使って用意してください。
正則化画像は不要です。
初めて学習する方を対象に、ほぼノートブックのデフォルト設定を使っています。
すでに学習経験があり自分なりの方法論を確立している方はその設定で使ってください。
今回はXL用を使っていますが、通常のTrainer(1.5・2.0向け)のノートブックもほぼ共通です。
以下の記述は2025/10/18に更新されたノートブックを使用したものです。2025/11/30に動作確認しました。

実行前の準備

あらかじめgoogleアカウントを取得しブラウザでログインしておきましょう。
まず学習素材から手を付けましょう。
学習に使いたい教師画像とそのキャプションを「dataset」というフォルダにまとめます。
そしたら半角英数字でloraの名前のフォルダ*2を作り、その中にdatasetフォルダを入れます。
筆者は空白は何となくエラーが怖いのでアンダーバーを使っています(toshi akiではなくtoshi_aki)。空白を使っても大丈夫なのかもしれませんが未確認です。
では学習素材をドライブにアップロードしましょう。
まずgoogle driveに接続し、マイドライブに「Loras」というフォルダを作ります。
その中にプロジェクトネームのついたフォルダをアップロードしてください。
正しくアップロードされていれば、「マイドライブ→Loras→半角英数字のlora名→dataset教師画像キャプション」という順番になっているはずです。

次にcolab側の準備をしていきます。
https://github.com/hollowstrawberry/kohya-colab のXL Lora TrainerのOpen in Colabをクリックします(Legacyじゃないよ!)。
するとcolabでノートブックが開くので左上の「ファイル」「ドライブにコピーを保存」を押します。
これであなたのドライブにノートブックが保存されました。次回からドライブでノートブックにアクセスできます。
ノートブックに入力した内容は自動保存されるので、記入した設定などは次回も引き継がれます。
ただノートブック自体は自動更新はされません。新バージョンのノートブックがリリースされたら自分でコピーを取りに行く必要があります。

ノートブックの設定

Start Hereの項目内にいろいろ設定を記入していきます。
ノートブック下部にExtrasという項目がありますがそちらは何もしなくて大丈夫です。
この記事内で触れていない設定項目はそのままで構いません。

  • project_name
    • 先ほど作ったloraフォルダ(半角英数字のlora名)の名前をここに書きます。
  • training_model
    • 学習に使いたいモデルを選択します。一通り揃っているのですが、なぜかanimagineはv4ではなくv3になっています。あとIllustriousも0.1しかありません。
    • 別途使いたいモデルがある場合はoptional_custom_training_modelに入力します(プルダウンでのモデル選択は無視されます)。hugging faceのダウンロードリンクを貼ってもいいし、ドライブにモデルがあればパス指定でも構いません。
      hugging faceのモデルがdiffusersならcustom_model_is_diffusersのチェックを忘れないでください。diffusersモデルなのにチェックしてない、あるいはdiffusersモデルじゃないのにチェックしている場合はエラーが出ます。vpredかどうかも忘れずに!
  • caption_extension
    • 自力で教師画像にタグ付けした人はほとんど.txtだと思いますが、もし.captionならそちらを選択してください。
  • shuffle_tagsとactivation_tags
    • shuffle_tagsをオンにすると、つけたタグの順番がシャッフルされます。筆者としては効果があまり分からないのでオフにしてます。
    • activation_tagsは1だと各キャプションの先頭のタグだけ固定して残りをシャッフル、2だと先頭と2番目のタグを固定して他をシャッフルというものです。トリガーワードを固定するために使われます(筆者はシャッフルを使いませんが念のため0にしています)。
  • Steps項目の設定
    • num_repeatsで学習の総ステップ数を決めます。多すぎると過学習になり絵が崩壊、少なすぎると効果の薄いLoraになります。最適なステップ数は熟練者でも悩むところです。
      • 作者推奨の通り2000ステップでやってみたところ、効果の薄いLoraになってしまいました。
        3000ステップあたりから効果が出始めたので、とりあえず3000ステップで試してみてください。
        画像枚数×リピート数×エポック数=総ステップ数なので、3000steps÷10Epochs÷用意した画像枚数=repeats数です。教師画像が20枚なら15repeatsです。
        5000ステップ学習したら特徴がしっかり反映されたLoraになったので、時間とCUに余裕のある人はチャレンジしてもよさそうです。
      • 思ったよりも薄味のLoraになった場合、学習率やdimをいじるよりもまずステップ数を増やしてみましょう。
    • preferred_unitはEpochsのままでいいです。数も10のままにしましょう。途中経過ファイルはEpochs数基準で生成されるので、あまり増やさないほうがいいでしょう。
      • 10Epochsで固定しておけば、10%学習Lora、20%学習Lora…というように、学習進度10%ごとにLoraが出力されるので最適値の検証がしやすいです。
        3000ステップ設定だと300ステップ学習するごとにLoraが出力されるので、過学習を恐れずに最適なステップ数を探せます。
      • preferred_unitでStepsを選択してhow_manyに2000と記入したところ、なぜか2000×バッチ数になってしまいました。Epochsだとこんなことにはならないのですが・・・
  • Learning項目の設定
    • ここもすさまじく厄介な設定項目で、特に学習にハマる人が沼るポイントです。今回はデフォルト値*3のままでいいです。よく分からないまま下手にいじると大変なことになります。
    • Loraが納得のいかない仕上がりなら、この値の調整でもしかしたらうまくいくかもしれません(が、底なし沼です)。
  • Structure
    • LoraかLoconが選べます。Loraのままで結構です。
    • network_dimとnetwork_alphaも推奨値のままで結構です。
      この数値が大きいほどLoraのファイルサイズが大きくなり、学習内容が増えます。かといって大きくしすぎると余計なものまで学習してしまいます。
      Loraが納得のいかない仕上がりなら、この値の調整でもしかしたらうまくいくかもしれません。
      • 推奨値通りに作ると50MB前後になると思います。筆者はdim32・alpha16でやることが多いですが、Loraのサイズは200MB近くになります。dimが4倍なのでLoraのサイズも4倍です。
  • train_batch_size
    • VRAM次第で大きい数値を設定できます。この数値が大きければ大きいほど学習時間が短くなります。
      大きくしすぎるとout of memoryエラーが出て学習がストップします。
    • T4だったらとりあえず5で試してみてください。エラーが出るなら4に減らし、もっといけそうなら6にしてみましょう。
      • 本記事下部にバッチサイズ検証結果が載っています。迷ったら参考にしてください。
  • optimizer
    • いろいろな種類が用意されていますが、今回はデフォルト通りAdamW8bitを使ってみましょう。
    • lora作成におけるスタンダードはAdamW8bitですが、学習率(unet_lr)やステップ数の設定が難しく過学習が発生しやすいので試行錯誤が必要です。
    • adafactorは学習率を自動調整してくれるので使いやすいですが、AdamW8bitに比べて学習の進みが低速で、かなりのステップ数を確保しないと特徴の薄いLoraになるというデメリットがあります。
    • 各optimizerの詳細についてはこちらを参照
       → オプティマイザー

学習スタート

  • 一通り設定が終わったら、左上の「ランタイム」タブの「ランタイムのタイプを変更」をクリックします。
    • CUを持っていない無料ユーザーはT4を選んでください。課金してCUを持っている人はT4・L4・A100から選べます(ハイメモリにする必要はありません)。
    • 「ランタイム」の「リソースを表示」も押しておくと、学習中のVRAMの使用状況や所持CU数が確認できるようになります。
  • Start Hereのコードセルの左側にある再生ボタンのようなマークをクリックするとcolabに接続され、そのまま自動的に最後まで進行します。
    • drive接続の許可を求めるポップアップが表示されるので許可しましょう。
    • スタートから5~10分はセットアップが行われ、それが終わり次第Lora学習が始まります。学習が始まると終了までの予想時間と学習の進捗状況が表示されます。
      • 総ステップ数をtrain_batch_sizeで割った数が表示されます*4。例えば3000ステップを5バッチで動かすと次のように表示されます。1エポック完了、6分11秒経過、あと53分49秒で完成です。
epoch 1/10
epoch is incremented. current_epoch: 0, epoch: 1
steps:  10% 63/630 [06:11<53:49,  7.10s/it, avr_loss=0.121]
saving checkpoint: /content/drive/MyDrive/Loras/〇〇/output/〇〇-01.safetensors
  • Done!の表示が出たら終了です。「ランタイム」の「ランタイムを接続解除して削除」をクリックしてcolabを切断します。
    • ドライブにアップしたフォルダの中にoutputフォルダが作られています。その中に10個のLoraが出力されていれば成功です。「〇〇-10.safetensors」が完成品です(loraの名前は完成後に変更しても問題ありません)。
  • あとは作ったLoraで試しに画像生成してみましょう。デフォルト設定で作った場合は強度1でよさそうでした。
    • step数ごとの進捗状況が気になる方はX/Y/Z plotなどでLoraの効き具合を比べてみましょう。

Dataset_Maker

教師画像収集とキャプション付けもcolabで完結できるツールです。
Gelbooruから画像を収集します。
自力で学習素材の用意やタグ付けができない人はこのツールを試してみてください。

補足事項

コードからcolab切断

学習が終了してもcolabから切断されるわけではないので、課金者はどんどんCUが減ってしまいます*5
そこで、Start Hereのセルの下に新しく

from google.colab import runtime
runtime.unassign()

というコードセルを作り、このコードセルを2番目に実行します。するとStart Hereのセルが終了すると自動的にランタイムが切断されるようになります。

突然エラーが出て動かなくなった

colab学習あるあるです。
学習環境の設定はかなり複雑で、ライブラリの自動更新などで依存関係が崩れるとすぐにエラーが出て動かなくなります。
昨日まで普通に動いていたノートブックが突然作動しなくなるのはよくあることです。
まずはgithubに行きノートブックが更新されていないか確認しましょう。
更新されていなければIssuesを見てみましょう。colabは全員同じ環境になるので誰かがエラー発生報告をしている可能性が高いです。
「ここを変えたらエラー出なくなったよ」といった解決策が共有されている場合もあります。
もしエラー報告がまだなければ、githubアカウントを持っている人はIssuesで相談してみましょう。
要するに作者が対応してくれるまで待つしかないということです。

各GPUの限界バッチ数と速度計測

各GPUのVRAM限界ギリギリのバッチ数を探りつつ、学習にかかる時間を計測してみました。
学習の設定内容次第で使用VRAMは変わるので、この数値はあくまで目安です。実際に学習するときは少なめのバッチサイズで試してください。
1024x1024の画像20枚を15repeats10epochs、train_batch_size以外は全てデフォルト設定で回したときのデータです。
A100ノーマルメモリは非常に速い上にコスパも最高という結果が出ました。課金する価値は十分にあると感じています。
20枚3000steps程度だとVRAM80GBの真価は発揮できないようです。多画像多ステップ学習や大規模学習向けという印象を受けました。個人用途で学習する分にはVRAM40GBのノーマルメモリで十分でしょう。
H100は最速ですがあまりコスパはよくありません。
train_batch_sizeはデフォルトでは16が最大値ですが編集で上限値を増やせます。セル上でダブルクリックするとノートブックを編集できます。

3000stepsT4*6L4A100(40GB)*7A100(80GB)*8H100
限界バッチサイズ715337372
VRAM使用量
/VRAM容量
14.6GB
/15GB
21.7GB
/22.5GB
39.5GB
/40GB
78.5GB
/80GB
78.5GB
/80GB
タイム*91h49min43sec44min6sec10min27sec8min41sec5min46sec
速度比100%249%1050%1285%1903%
消費CU*102.171.260.941.091.73

コメント

  • エラーでるね -- 2025-09-23 (火) 02:25:39
  • 1枚からキャラloraの部分はcolab関係なく学習に有用な話だから学習コツ・体験談とかコピー機学習の項目に移動したほうがいいのでは? -- 2025-09-29 (月) 00:01:45

(Tips)

  • 既存コメントの先頭にあるラジオボタンをONにすると、そのコメントの下にぶら下げ返信する形になります(ツリー構造)。
  • コメントの文中で↵ボタン(下の画像参照)を押すと「&br;」の文字列が挿入されます。これは送信後に改行として機能するので、文章の整形に役立ちます。
    br.png

*1 学習前に目安時間が表示されますがあまりあてになりません。
*2 キャラ名など、作ったloraにつけたいタイトルにするといいでしょう。
*3 unet_lr:3e-4・text_encoder_lr:6e-5
*4 warmup分が加算されるので設定したステップ数より若干多くなります。
*5 不使用状態で一定時間経過すると自動的に切断されるらしいです。
*6 検証はノーマルメモリ
*7 ノーマルメモリ
*8 ハイメモリ
*9 接続から学習開始までの時間は除外し、純粋な3000steps学習時間のみを計測対象とした
*10 タイムに1時間当たりの消費CUを掛けた単純な数値。実際には学習開始まで7分くらいかかるのでこれ以上のCUを消費する。