LoRAを作る際に、学習用のデータにキャプションをつけます。このキャプションは、その画像から何を学習させたいかを明確にするもので、学習のクオリティにおいて非常に重要です。ここでは、私が理解しているキャプションについてまとめておきたいと思います。
そもそもキャプションとは
キャプションとは、学習時に画像と関連して付与されるテキスト情報です。その画像が何を表しているかをAIに伝えるためのものです。LoRA制作においては特定の特徴や要素を学習してもらいますので、画像が何を表すものかというキャプションが非常に重要な役割を果たします。
例えば、
black hair, sharp eyes, neutral expression, high cheekbones, narrow chin
というキャプションがあれば、モデルは髪の色や顔の特徴に焦点を当てて学習します。
キャプションの必要性
LoRAの学習では、キャプションの精度の高さが、クオリティに強く影響します。キャプションがない場合や不十分な場合、モデルは学ぶべき要素を正確に捉えられず、意図したものを学習できない可能性が出てきます。たとえば、体型にフォーカスしたい場合には、
slender body, standing, side view, relaxed posture
といった具体的なキャプションを付けることで、重要な要素を正しく学習させることができます。つまり、キャプションは、どの要素に注目するかを明示的に指示するために必要不可欠なものということです。
キャプションの種類
キャプションを一から作成しようとすると、やや手間がかかります。そこでキャプション生成のツールを使用することになると思います。よく使用されるものに、WD14とBLIPがあります。
WD14とは
WD14(Waifu Diffusion 14 Tagger)は、アニメやイラスト画像向けに特化したキャプション生成ツールです。アニメーションやイラスト画像に対して高精度なタグを付けられる傾向があります。たとえば、アニメキャラクターの髪色や表情、ポーズ、さらには背景のディテールまでを正確に把握し、適切なタグを自動生成してくれます。
WD14を使用することで、キャプション作成の作業負荷を軽減でき、特に大規模なデータセットを扱う際に有効です。しかし、画像内の要素が多すぎると、無関係なタグが追加される可能性があるため、キャプションの修正や調整が必要な場合もあります。
BLIPとは
BLIP(Bootstrapped Language-Image Pretraining)は、より汎用的な画像キャプション生成ツールで、様々な画像に対して高い精度でキャプションを生成することができます。リアルな写真やCG画像など、さまざまなタイプの画像に対して柔軟に対応できる点が特徴です。
WD14よりも幅広いジャンルの画像に対応できるため、アニメやイラスト以外にも、実写や3Dアートにも効果的です。
BLIPの強みは、柔軟性と精度の両立にあり、画像のディテールを広範に捉えることができるため、より汎用的なキャプション生成が求められる場合には特に適しています。
このように、WD14とBLIPはそれぞれの強みがありますので、用途に応じて使い分けを行うことが、LoRAのクオリティを上がるために必要になります。SD1.5ではWD14を使うことが多かったように思いますが、SDXLでBLIPを使う機会が増え、FluxではBLIPをメインで使用しています。
キャプションの付け方(編集)
BLIPはによるキャプションでは、画像中のすべての要素を細かくキャプションとして文章化しますが、そのままでは学ばせたい情報以外のキャプションも含まれている為、余計な情報の入ったLoRAになってしまう可能性が出てきます。例えば、衣服や背景などがキャプションに含まれていると、モデルがそれらを学習してしまい、意図しない結果を生むこともあります。したがって、生成されたキャプションを目的に応じて編集し、学ばせたい要素にのみ集中して学習できるようにすることが大切になります。
一例として、人物の顔貌を似せたLoRAを制作する場合において、BLIPが生成したキャプションを以下の手順で編集を行っていきます。
不要な要素を削除する
画像内の服装や背景、小道具など、学習に不要な要素が含まれている場合、それらを取り除きます。
a woman in a red dress standing in front of a tree
というキャプションから、
red dress 、tree
の部分を削除し、
a woman standing
という簡潔なキャプションにすることで、体型やポーズなど、学習したい要素に焦点を絞ることができます。
学ばせたい要素を強調する
学習させたい特定の要素が明確な場合は、それをキャプションに残し、他をできる限り省略します。たとえば、顔の特徴や体型にフォーカスしたい場合、
black hair, sharp eyes, neutral expression, high cheekbones, slender body
といったキャプションにすることで、モデルがそれらの特徴に集中して学習します。
キャプションの簡潔さを保つ
LoRAで特定の特徴を学ばせるためには、シンプルで的確なキャプションが効果的です。似た内容を繰り返しての表現や曖昧な表現を避け、学習させたい要素のみを明示的に記述していきます。これにより、学習精度が向上し、目的に合った結果に近づくことができます。
このようにして、BLIPが生成したキャプションを編集し、LoRAに効果的に学習させるためのキャプションを整えていきます。WD14を使用していた頃のキャプションの考え方と変わっていますので、注意が必要です。
まとめ
以上が今現在の私のキャプションに対する認識です。どうやってキャプションをつければ良いのか、どんな言葉を残していくべきなのか、当初とても悩みましたので、こんな形でもまとめておけば何かの記録になるかなと思います。
もし、皆様の参考になる情報がありましたら幸いです。 (こたじろう)
過去にLoRA関連の記事もありますので、ご参照ください。