こんにちは
今回のテーマは、
「トリガーワード」
申し訳ありません💦 残念ながら(?)今回の解説は、AI生成を始めたばかりの初心者の方には難しい内容になっています。
LoRAを使用して画像を生成されている方はおそらく大まかな意味は理解していると思います、が・・・
LoRAトレーニングを経験された方は分かると思うのですが、「トリガーワード」を指定する項目はあっても、そのワードってトレーニング時には通常のタグと同じように配置されますよね?
今回は、[モデル用語マスタークラス!]というイベントにちなんで、少し違った視点から「トリガーワード」について説明していきたいと思います。
LoRAトレーニングについて学んだ後、これをお読みいただくと少しは理解できると思いますが、イベントが開催されたので順序を変えてこちらを先に説明させていただきます。
1.~「トリガーワード」~
「トリガーワード」とは、モデルを使用する際に、モデルに含まれた効果を引き出すために指定された「ワード」を示します。
おそらく、「トリガーワード」を指定することで、より強く効果を得られるという認識が一般的でしょう。
実際には、「トリガーワード」を指定しなくても、モデルの効果が発揮される場合があります。
特にLoRAモデルにおいては、「トリガーワード」の有無が、LoRAの効果に大きく影響を受けるというのは一つの事実です。
しかし、みなさんが「トリガーワード」という言葉を初めて目にした時に、「トリガーワード」について調べた際に得られる情報の多くはここまでではないでしょうか・・・?
2.~LoRAトレーニング時の「トリガーワード」~
LoRAトレーニングにおいて、一般的には全てのトレーニング【イメージ】に紐づけられた【タグ】を示します。
積極的に(意図的に)表現したい要素を指定して、特定の出力を得るための【タグ】を「トリガーワード」としますので、実際には全てに紐づけた【タグ】だけを示すものではありません。
特定の【タグ】を指定したときに、積極的に(意図的に)出力させたい表現を学習させたものが「トリガーワード」として機能します。
【タグ】と「トリガー」ワードの詳細についての説明は複雑になるので別の機会に・・・
3.~LoRA使用時の「トリガーワード」~
「トリガーワード」を指定した一般的なLoRAでは、全てのトレーニング【イメージ】の要素を抽出するため、モデル作成者が学習に使用した作品の要素が強く反映されます。
もし、全てのトレーニング【イメージ】に紐づけていなくても、複数のトレーニング【イメージ】に同一の【タグ】が指定されていた場合、その要素を出力するための【タグ】が「トリガーワード」になります。
これは、LoRAそのものに対する「トリガーワード」ではありませんが、出力したい要素を強調するという点においては同じ意味合いを示します。
ときどき、LoRAの「トリガーワード」に複数の【タグ】が記載されている場合がありますが、これらの【タグ】は積極的に(意図的に)学習をさせているので、この【タグ】を使用することで、LoRAに学習させた表現が出力しやすくなるということになります。
4.~なぜ「トリガーワード」が必要なのか~
そもそも、LoRAを使用するのに、なぜ「トリガーワード」が存在するのでしょうか?
「トリガーワード」を指定しなくても、LoRAウェイトを変更すればLoRA強度は変更できるにも関わらず、「トリガーワード」というものが存在するのは、トレーニングの構造によるものです。
LoRAトレーニングを行ったことがある方は認識されていると思いますが、タグ付けアルゴリズムに【タグ付け不要】という選択肢があるにもかかわらず、実際にタグ付けをせずにトレーニングを開始しようとすると、エラーメッセージが表示されます。
これは、モデルをトレーニングする際に【タグ】と【イメージ】を紐づけることによって学習させていく必要があるからです。
トレーニング画面で「トリガーワード」を入力してから、タグ付けアルゴリズムを使用してタグ付けを行うと、「トリガーワード」が一番最初のタグとして、全ての【イメージ】に配置されます。
これにより、「トリガーワード」=全てのトレーニング【イメージ】に結びつく【タグ】として認識されることになります。
結果的に「トリガーワード」を指定することで、トレーニングに使用した【イメージ】の要素を全て適用することになります。
「トリガーワード」を指定しないと、LoRAの効果が適用されないというのは、トレーニング時に【タグ】付けされた要素は、【タグ】を指定したときに有効になるように学習されるからです。
5.~実は「トリガーワード」は必須ではない~
LoRAモデルにおいて、トリガーワードというものは必ずしも存在すると思っていませんか?
2.項で説明したように、トリガーワードというのは全てのトレーニング【イメージ】、あるいは積極的に(意図的に)紐づけられた強調された【タグ】を示します。
なので、トレーニング【イメージ】に積極的に紐づけた【タグ】が存在しない場合、それは「トリガーワード」として機能しません。
例えば、スタイルLoRAを作成する場合、「トリガーワード」を指定せずに、具体的な被写体やオブジェクトだけに【タグ】付けを行った場合、作風に関する情報に紐づく【タグ】は存在しないことになりす。
【タグ】付けがされていない部分のモデルデータは、LoRAの重みに基づいてのみ作用するため、「トリガーワード」は不要ということになります。
6.~指定したはずの「トリガーワード」が機能しない~
これは、どちらかと言えば、モデルの作成者側が意識する必要がありますが、考えられる原因としては、トレーニング【イメージ】の学習が不十分である可能性が考えられます。
トレーニング【イメージ】の表現にばらつきがあると、学習時に統一された情報として認識されずに【イメージ】が固定されません。
結果的に「トリガーワード」を指定しても、固定されていない【イメージ】を出力してしまうため、生成時に使用している checkpointモデルの要素が強く反映されます。
結果的に「トリガーワード」が効いていないという状態が発生するのです。
~編集後記~
今回も、最後まで私の記事をお読みいただきありがとうございます。
今回は、ほぼ文章だけの構成となってしまいましたので退屈だったかもしれませんね💧
「トリガーワード」への理解を深めるためには、【LoRAトレーニング】と【タグ付け】について学習されると、よりイメージが掴みやすくなるのですが・・・
いずれ【LoRAトレーニング】と【タグ付け】についても説明させていただきたいと思います。(内容が多くなりすぎるので手を付けられていません💦)
今回もイベント投稿用の記事ということで、上記の基本を説明する前に公開する運びとなってしまいましたが、私の記事をきっかけに、興味を持たれたことを学んで一つずつステップアップしていただけたら幸いです。
















