Anima用LoRAの作り方!「Anima Standalone Trainer」を使って画風を学習させてみよう

Anima用LoRAの作り方まとめ 画像生成AI

今回は画像生成AIのLoRAの作り方に関する話題で

「Anima Standalone Trainer」を使ってAnima用のLoRAを作る方法

をかなり詳しく・丁寧に解説するという内容になっております。

画像生成AIで美少女イラストを生成している方なら「Anima」という人気モデルを使ったことがあると思います。Animaは非常に柔軟な制御が可能なモデルで、しかも学習しているキャラクターや画風も多く・大人向けのイラストも出せるとあってとても便利ですよね。

ただこのAnimaに関してはまだLoRAの作り方の情報が少ないようなので解説を書いておいたほうがいいかなと思いました。実は私は普段あまりLoRAを作らないのですが、自分の鉛筆画の画風をAnimaに学習させたらどうなるかなと興味がわいたので今回試してみることにしました。

このような次第でここでは「Anima Standalone Trainer」というGUIツールを使ってAnima用のLoRAを自作する方法を解説していきますね。

前提知識(LoRAとAnimaについて)

まずはじめに、前提知識としてLoRAとAnimaについてザックリとご説明しておきます。

LoRAとは?

LoRA(=Low Rank Adaptation)とはAIに追加情報を効率よく学習させるための手法のことです。主に画像生成AIの分野でよく用いられており、既存モデルが学習していないキャラクターや画風を覚えさせる際に使われます。

かなり古い記事(2023年)ですがLoRAについては下記の記事でかなり詳しく解説していますので、より詳しく知りたい方はそちらも併せてご覧いただくとよいでしょう。

Animaとは?

Animaはまるでアニメのワンシーンのような美少女イラストを生成できる画像生成AIです。ローカル環境で手軽に実行できる点や、柔軟にイラストを生成できる・Hなイラストの生成にも対応しているといった特徴があり最近では非常に人気のモデルとなっています。

Animaの導入方法や、Animaを使った美少女イラスト生成のやり方等については下記の記事でかなり丁寧に解説していますので、まだAnimaを使ったことがないよという方は先にそちらのほうをご覧いただくと理解が深まるでしょう。

Anima Standalone Trainerについて

公式リポジトリ

Anima Standalone Trainerとは?

Anima Standalone Trainerは、gazingstars123氏が開発・提供しているAnima用のLoRAを作るための無料ツールです。これを使うとAnima用のLoRAを手軽に作ることができます。

今回自作したLoRA「くろくま鉛筆画LoRA」

さて今回、サンプルLoRAとして私が昔描いた鉛筆画の画風をAnimaに学習させてみることにしました。同様の取り組みはSDXLFLUX.1のときも行っているので、それらの結果と比較してみると面白いです。

学習に使った画像

学習には下記のようなダークな画風の鉛筆画を12枚ほど使いました。

くろくま鉛筆画LoRAの学習に使った鉛筆画の例
タイトル:闇のくろくま

普段美少女イラストばかり生成している私ですが、自分で絵を描くときは↑のような真っ黒な鉛筆画を描くのが好きです。アナログで画用紙にガリガリ描くのは楽しいですよ。

自作LoRAを適用した場合のサンプル画像

さて「Anima Standalone Trainer」を使ってAnima用のLoRAを作り、それを適用したところ下記のような美少女イラストを生成できるようになりました。

サンプル1:巨大なモンスターと戦う美少女剣士

Anima+オリジナルのLoRAで生成したイラストの例(巨大なモンスターと戦う美少女剣士)
プロンプト:
masterpiece, best quality, score_7, comic, monotone, dark fantasy, dynamic angle, 1girl, safe. Under the full moon, an anime-girl is battling a gigantic and terrifying monster. The girl faces the monster with a great sword in her hand.

SDXLやFLUX.1でLoRAを作った時とは違って「鉛筆画本来の画風」はあまり出ないようでしたが、「白黒のコミック風にするプロンプト」と非常に相性が良いらしくかっこいい絵が出ました。モンスターの造形は私が描くようなデザインをうまく引き継いでくれているようです。

ちなみにLoRAを使わずに同じ条件(同一プロンプト・同一シード)で生成すると下記のような画像になります。

Animaのみで生成したイラストの例

…なんかかっこよさで言ったら私のLoRAを使わないほうが上かもしれませんが(?)、ともあれちゃんとLoRAが効いていることは分かりますね。

サンプル2:ガールズメタルバンドの猛烈な演奏

Anima+オリジナルのLoRAで生成したイラストの例(ガールズメタルバンドの猛烈な演奏)
プロンプト:
masterpiece, best quality, score_7, comic, monotone, dark, dynamic angle, 4girl, safe. 4 cute chibi anime girls dressed in black are playing heavy-metal music as a band. The vocalist is in the center of the stage, with a guitarist and bassist on either side, and a drummer in the back. The vocalist is screaming furiously into the microphone, while the guitarist and bassist are playing furiously, and the drummer is pounding furiously on the drums. The stage is outdoors and is backlit by intense lightning. There are huge speakers in the background.

かわいくてかっこいいイラストが出ました。プロンプトでは「4人」と指定していますが3人になったり5人になったりと不安定なのはAnima本体のみを使った場合と同様です。

サンプル3:巨大な白狼を従えたミステリアスな姫君

Anima+オリジナルのLoRAで生成したイラストの例(巨大な白狼を従えた姫君)
プロンプト:
masterpiece, best quality, score_7, comic, monotone, black and white, dark fantasy, dynamic angle, 1girl, safe. A beautiful, mystical, anime-style princess is accompanied by a huge white wolf. The princess is wearing a black dress. The princess and the wolf are looking at the viewer. The background is a crescent moonlit night sky, a massive and majestic castle, a beautiful forest, and a magnificent mountain range.

参考:学習のパラメーター等

参考までに、今回のLoRAを作るにあたって使った設定値を一部抜粋して掲載しておきます。下記に書いていないパラメーターはデフォルトのままだと思ってください。

  • 学習に使用した画像:12枚
  • Learning Rate:0.0002
  • Text Encoder LR:0.00001
  • Max Epochs:50
  • Network Dim:16
  • Network Alpha:16

Anima Standalone Trainerの導入方法

ではここからが本題で、まずはAnima Standalone Trainerの導入方法をご説明します。主な手順は次のとおり。

  1. 必要なツール(Git・Node.js)のインストール
  2. 公式リポジトリをクローン
  3. 環境構築用のバッチファイル実行

それぞれ詳しく見ていきましょう。

手順1:必要なツール(Git・Node.js)のインストール

はじめに必要なツールを2つ導入する必要があります。まだ導入してないよという方はインストールを行いましょう。

Git

一つ目はバージョン管理ツールの「Git」です。…まさかこのブログをご覧になるような方でまだ導入してない人はいないと思いますけど、まだだよという方は下記の公式サイトから最新版をダウンロードしてインストールしておきましょう。

Node.js

二つ目は「Node.js」という、Javascriptというプログラミング言語の実行環境が必要です。下記ページの下のほうにインストーラーのダウンロードボタンがあるのでそこからDLしてインストールしましょう。

手順2:公式リポジトリをクローン

次にAnima Standalone Trainerの公式リポジトリをクローン(=複製)します。ツールを導入したいフォルダを右クリック→「ターミナルで開く」を選択すると黒い画面が出るので、そこに下記のコマンドを入力して実行してください。

git clone https://github.com/gazingstars123/Anima-Standalone-Trainer.git

手順3:環境構築用のバッチファイルを実行

最後に、クローンしたフォルダの中にある環境構築用のバッチファイル「setup_env.bat」を実行して環境構築を行います。このバッチファイルを実行すると仮想環境を作ったり必要なパッケージを導入したりする処理が自動で行われます。途中、大きなファイルをダウンロードするのでお使いのネット回線速度にもよりますが処理にはしばらくかかります。気長に待ちましょう。

しばらく待って下記のメッセージが出たら導入完了です!

導入完了時の表示

Anima Standalone Trainerの基本的な使い方

Anima Standalone Trainerの起動方法

Anima Standalone Trainerを起動するには、「training-ui」フォルダの中にある「start_training_ui_anima.bat」を実行します。ブラウザが開いて下記のような画面が出ればOKです。

Anima Standalone Trainerの画面

最初の環境設定

学習を始める前に、Animaのモデルがある場所などを予め指定しておく必要があります。画面左下の「Global Settings」ボタンを押すと下記のようなポップアップが出るので設定を行いましょう。

Anima Standalone Trainer 環境設定
  • DiT Model Path:
    Anima本体のパス。例えばD:\model\anima.safetensorsなど、Animaモデルがある場所を指定します
  • Qwen3 Text Encoder Path:
    テキストエンコーダー「qwen_3_06b_base.safetensors」のパス
  • VAE Path:
    VAE「qwen_image_vae.safetensors」のパス

なお保存ボタンを押す前にポップアップの外をクリックすると記入した内容が消えてしまうので注意してください。

ジョブの作成

設定が済んだらジョブを作成します。画面左上の青い「+New」ボタンを押して好きなジョブ名をつけると、下記のような画面になります。

ジョブの設定画面

色々な設定があるのでひとつずつチェックして必要なら変更を行います。各設定の意味について書くとかなり長くなるため後述しますが、基本的に「Training」タブ・「Dataset」タブ・「Network」タブの設定を行えばOKです。

学習の実行

設定が済んだら右上の青い「Train」ボタンを押すと学習が始まります。お使いのPCの性能や学習の設定にもよりますが学習にはかなり時間がかかる(※サンプルLoRAでは3時間程度)ので気長に待つようにしましょう。

Anima Standalone TrainerによるLoRAの作り方

ではここからが今回の肝となる内容です。先ほどご紹介した「Training」タブ・「Dataset」タブ・「Network」タブのそれぞれの設定項目について詳しくご説明していきますね。

なお下記では設定値の例を紹介することがありますが、それはあくまでもサンプルであり基本的に「この値に設定すればいい」という確実な値はありません。おそらく納得いくLoRAを作るためには試行錯誤が必要になると思うので、思い通りのLoRAが一発でできると思わないほうがいいと思います。粘り強く取り組みましょう。

下記では、特に試行錯誤が必要になる項目に「★」印を付けています。

Trainingタブの各パラメータの意味と設定方法

まずはTrainingタブの各パラメータの意味と設定方法を一つずつ解説します。ただ設定項目が非常に多く全部解説すると記事がとんでもない長さになってしまいますので、ここでは重要なものを抜粋してご説明しますね。

Learning Rate ★

学習率を指定します。学習率とは「AIが一度にどれくらい学習するか(パラメータを更新するか)を調整する歩幅」のようなものです。

この値は一般的にデフォルトの「0.0001」のように非常に小さな値を指定します。ただし最適な学習率は扱うデータやモデルの構造によって異なるため一概に「この数値にすればいい」とは言えません。試行錯誤が必要な部分でしょう。

ちなみにサンプルLoRAではデフォルト値だと学習率が小さすぎてうまくいかなかったので何度か試した結果「0.0002」にしました。

Text Encoder LR

テキストエンコーダーに対する学習率を指定します。一般的にLearning Rateの値よりも小さな値を指定します。デフォルトは「0.00005」ですが、サンプルでは「0.0001」としました。

Optimizer

学習を効率よく行うための手法を選択します。オプティマイザーの種類は色々ありますが、特に理由がなければデフォルトの「AdamW8bit」を使えばOKです。LoRAを作っていて何かこだわりがあるようなら別のオプティマイザーを使うのもいいかもしれません。

LR Scheduler

学習の途中で学習率をどのように変更するかを指定します。デフォルトは「cosine」で、コサインカーブを描きながら学習率を徐々に減らす方式となっています。

Seed

学習に使う乱数のシードを指定します。適当な値を打ち込んでもいいですし、そのままでも問題ありません。

Duration Unit

学習の回数について、後述するエポック数で指定するかそれともステップ数で指定するかを決める項目です。デフォルトの「Epochs」のままでOK。

Max Epochs ★

エポック数は「学習データを何周したか」を指します。この項目では最大で何エポックの学習を行うかを指定します。

具体的に何エポックやればいいのか?という点は場合によるので色々試してほしいのですが、今回作ったサンプルLoRAでは試行錯誤の結果最終的に「50エポック」にしました。

ちなみに最初試しに「5エポック」とか「10エポック」で試しましたがいい結果が得られなかったのである程度のエポック数が必要なようです(※もちろん、学習に使う画像の枚数にもよると思います)。特に5エポックなど少ないエポック数で作ったLoRAを適用したところ、悪夢で見るような画像が生成されたので少なすぎるとダメみたいですね。

Save Every N Epochs

何エポックごとに途中経過のLoRAを保存するかを指定します。途中経過の保存が必要ない場合はMax Epochsと同じ値にしておけばOKです。

Output Name

出来上がったLoRAの名前を指定します。拡張子は必要ありません。

Save Format

どの形式で保存するかを指定します。現在ではAIモデルやLoRAはSafetensors形式で保存するのが一般的なのでデフォルトのままでOKです。

Mixed Precision

学習時の重みの混合精度を指定します。デフォルトの「BFloat16」は精度とメモリ使用量のバランスをうまく取った形式です。デフォルトのままで問題ありません。

Save Precision

最終的なLoRAに保存する際の重みの精度を指定します。これもデフォルトのBFloat16でOKです。

DataLoader Workers

学習時に使うCPUのプロセス数を指定します。デフォルトの「4」のままで問題ありません。


このほかにも設定項目が色々ありますが特に理由がなければデフォルトのままでOKです。

Datasetタブの各パラメータの意味と設定方法

Datasetタブでは学習に使う画像についての設定を行います。「Dataset Folders」の項目では、必要に応じてデータセットを複数追加することもできます。

Resolution(s)

学習に使う画像の最大サイズを指定します。カンマ(,)で区切ることで複数のサイズを指定できます。

Batch Size(s)

学習の際に一度に読み込む画像の枚数を指定します。大きい値を指定したほうが学習の効率がよくなりますがより多くのVRAMが必要です。よくわからない場合はデフォルトの「1」のままにしておけば無難です。VRAM容量が12GB以上など、容量大きめのVRAMを搭載したグラボをお使いの場合は「2」以上にしてもいいかもしれません。

Gradient Accumulation

ザックリいうと「どれくらいまとめて学習を行うか」を指定するためのパラメーターです。この数値を上げると学習が速くなりますがメモリを多く消費するようです。デフォルトの「1」のままで問題ありません。

Image Directory

学習に使用する画像が入ったフォルダを指定します。データセットごとに違うフォルダを指定できます。


なおDatasetタブではキャプションに関する設定項目が色々ありますが、画風LoRAの場合はキャプションは使わなくていいのでここでは説明を省略します。

Networkタブの各パラメータの意味と設定方法

Network Dim (Rank) ★

LoRAによって追加されるニューロンの数を指定します。この値が大きいほど多くの情報を学習できますが、余計な情報まで学習してしまったりLoRAのファイルサイズが大きくなってしまったりします。試行錯誤が必要な部分です。

今回作ったサンプルLoRAではデフォルトの「16」に設定しました。

Network Alpha ★

ザックリいうと、LoRAの保存時に重みが0になって「何も学習していないのと同じ」になってしまうのを防ぐための設定です。これも試行錯誤が必要な値で、サンプルLoRAでは「16」に設定しました。

なお、Network Alphaの値は必ずNetwork Dim (Rank)で設定した値以下にする必要があります(もし両者の値が同じなら効果はOFFになります)。通常はNetwork Dimと同じでかまわないと思いますが調整が必要な場合があるでしょう。

作成したLoRAの保存先

学習途中のLoRAや学習完了時に出来上がるLoRAは下記のフォルダに保存されます。

Anima-Standalone-Trainer\training-ui\jobs\(ジョブ名)\output

作成したLoRAの適用方法(ComfyUI)

学習が終わったら作ったLoRAをさっそく使ってみましょう。ここではComfyUIでLoRAを適用するための方法をご紹介しますね。

LoRAを所定のフォルダにコピー

まず、作ったLoRAをComfyUIの下記フォルダにコピーします。

ComfyUI\models\loras

LoRAを適用するためのワークフローを作成

次にLoRAを適用するためにワークフローを少しだけ変更します。

「Text to Image(Anima)」ノードの下にある「サブグラフに入る」を選択すると下記のようにノード内の処理が展開されます。

ComfyUI Animaの処理内容

この画面で下記のように「LoRAローダーモデルのみ」を追加(=何もないところでダブルクリック→「lora」で検索)して「拡散モデルを読み込む→LoRAローダーモデルのみ→Kサンプラー」となるように接続してください。

ComfyUI LoRAの適用方法

あとは「LoRAローダーモデルのみ」の「lora_name」欄に作成したLoRAを指定して「実行する」ボタンを押せばLoRAを適用した状態で画像を生成できます。

おわりに

以上、Anima用のLoRAの作り方を一通りご紹介しました。LoRAを自作できるようになると生成できる画像の幅がグッと広がって画像生成がますます面白くなると思います。皆さんもぜひこの機会にチャレンジしてみてください。

この記事が画像生成のお役に立てば幸いです。